2013-10-22 44 views
0

我不知道我做錯了......otice:未定義的變量:行... uredi.php第19行調用堆棧#TimeMemoryFunctionLocation

我的代碼是:

<?php 

    if (isset($_GET['uredi'])) { 
     $id = $_GET['uredi']; 
     $sql = mysqli_query($link, "SELECT * FROM changelog"); 
     $row = mysqli_fetch_array($sql); 
    } 

?> 
    <div class="container main"> 
     <div class="row"> 
      <div class="page-header"> 
       <h1>Changelog <small><a href="dodaj" title="dodaj"><div class="btn btn-danger btn-xs">Dodaj</div></a></small></h1> 
      </div> 
      <form role="form" action="includes/dodaj-changelog.php" method="post" accept-charset="utf-8"> 
       <textarea name="vsebina"><?php echo $row['vsebina']; ?></textarea> 
       <input type="hidden" name="id" value="<?php echo $row['id']; ?>"> 
       <button type="submit" style="margin-top: 20px" class="btn btn-primary">Dodaj</button> 
      </form> 
     </div> 
    </div> 

它總是給我錯誤:注意:未定義的變量:在第19行的C:\ wamp \ www \ ocene \ uredi.php中的行調用堆棧#TimeMemoryFunctionLocation 10.0000142728 {main}().. \ uredi.php:0「>

但$行被定義...

+0

是'$ row = mysqli_fetch_array($ sql)'line 19? –

+0

第19行:」> – Miha

+0

'$ row'只在'isset($ _ GET [ 'uredi'])'是真的。但是你正在使用變量,無論它是否設置。 – andrewsi

回答

1

你的問題是,你只定義$row如果$ _GET [ 'uredi'] isset - 在這種情況下,變線19:

<input type="hidden" name="id" value="<?php echo (isset($row['id'])) ? $row['id'] : ''; ?>"> 

...與同爲你其他變量。如果您需要字段的默認值,請將其置於該代碼的''部分。

1

注意,只在if塊中定義$row,只有在訪問'uredi.php?uredi=SOMETHING'或將uredi作爲GET參數以其他方式傳遞時纔會執行。

爲什麼你需要if塊,以及uredi參數代表什麼?

0

如果你改變什麼: <form ... action="includes/dodaj-changelog.php" ... >

<form ... action="includes/dodaj-changelog.php?uredi=<?php echo $row['id'];?>" ... >,其餘保持不變。

當你提交你的表單時,它以某種方式「忘記」它正在處理的sql表中的哪一行,使用$_GET['uredi'];時得到的數據,這樣我就保證再次獲得uredi(這個id--唯一值你的表格標識你需要的特定行)並在執行SELECT時保持它。

試試看吧。它爲我工作更新查詢方案。

相關問題