2017-05-28 95 views
-1

我想在我的表更新記錄,但我不知道在那裏我缺少提我的索引中的代碼。我確信我的連接是正確的,儘管它應該獲取索引。我已經完成了連接表的插入功能,一切正常。PHP/SQL更新表

這是我update.php

<?php 
$connect = mysqli_connect("localhost", "root", "", "produktai"); 
{ 
$sql = "UPDATE dazai SET sandely='" . $_POST['sandely'] ."' WHERE id='" . $_POST['id'] ."'"; 

    if(!mysqli_query($connect,$sql)) 
    { 
     echo "pakeista"; 
    } 
     else { 
     echo "nepakeista" . mysqli_error($connect); 
    } 
} 
header("refresh:10; url=Dazai.php"); 
?> 

好了,我修改了我的main.php這個。我得到這個錯誤

Array([sandely] => 0 [Keisti] => Keisti)什麼可能是錯的。 0變化到任何數字我插嘴說。

<div class="prekiu_lentele"> 
    <table class="lenetele_prekems"> 
    <form action="update.php" method="post"> 
    <tr> 
    <th>ID</th> 
    <th width="30%">Prekes pavadinimas</th> 
    <th>Gamintojas</th> 
    <th>Spalva</th> 
    <th>Kiekis</th> 
    <th>Blizgumas</th> 
    <th width="10%">Kaina</th> 
    <th>Kategorija</th> 
    <th width="20%">Kiekis sandelyje</th> 
    <th>Ištrinti</th> 
    <th width="20%">Pakeisti</th> 

    </tr> 


</div> 

<?php 
$query = "SELECT * FROM dazai ORDER BY id ASC"; 
$result = mysqli_query($connect, $query); 
if(mysqli_num_rows($result) > 0) 
{ 
while($row = mysqli_fetch_array($result)) 
{ 
?> 

    <tr> 
    <td><?php echo $row['id'];?></td> 
    <td><?php echo $row['pavad'];?></td> 
    <td><?php echo $row['Gamintojas'];?></td> 
    <td><?php echo $row['Spalva'];?></td> 
    <td><?php echo $row['Kiekis'];?></td> 
    <td><?php echo $row['Blizgumas'];?></td> 
    <td><?php echo $row['Kaina'];?>€</td> 
    <td><?php echo $row['Kategorija'];?></td> 
    <td><input type="text" style="width: 50px; margin-right:10px;" name="sandely" value="<?php echo $row['sandely'];?> "</td> 
    <td><a href="delete.php?recordID=<?php echo $row['id'];?>">X</a> 
    <td><input type="submit" name="Keisti" value="Keisti" /></td> 

    </tr> 
</div> 
</form> 
+0

更新查詢中的邏輯沒有意義 – Akintunde007

+0

首先使用print_r檢查您在POST數組中獲得的內容,您可以繼續進一步操作。據「好嘛知道什麼可用數據的過程。我相信你一定會通過urself輕鬆地修復錯誤。...... –

+0

」陣列()「我沒有收到任何那裏。 – deividas

回答

1

您在

<a href="update.php?ID=<?php echo $row['id'];?>" method=post>

發送帶有ID的請求,而你試圖在

$sql="UPDATE dazai SET sandely='$_POST[sandely]' WHERE id='$_POST[id]'";

檢索 id

這就是由於字符串鍵爲區分大小寫的事實而發生。

快速正骯髒的例子: https://ideone.com/KFMD4j

PS:

  1. mysqli_select_db($connect, "produktai");因爲你已經確定在連接mysqli_connect("localhost", "root", "", "produktai");

  2. 除了使用同一個數據庫,不需要,請注意,如果你使用PHP $_POST[sandely]將拋出一個警告的是,因爲這將需要轉換sandely to string因爲您還沒有定義sandely常量變量。改爲使用$_POST['sandely']。 在這種情況下,我會建議使用此查詢代替:

    $sql = "UPDATE dazai SET sandely='" . $_POST['sandely'] ."' WHERE id='" . $_POST['id'] ."'";

    閱讀更多Is it okay to use array[key] in PHP?

  3. 因爲你不使用的手段對POST請求,您應該使用GET而不是POST而僅僅在URL處附加變量。

+0

感謝您指出這些錯誤,但我仍然不知道爲什麼它告訴我,這些錯誤 說明:未定義指數:sandely在C:\ XAMPP \ htdocs中\ Saitas \更新。上行PHP 6 說明:未定義指數:ID在C:\ XAMPP \ htdocs中\ Saitas \ update.php第6行 – deividas

+0

這些可能是由於使用的'sandely'作爲常數而不是字符串爲警告' 「sandely」'(id相同)。 PHP將它轉換爲字符串,但給你這個警告。我編輯了我的答案以添加此。 –

+0

到目前爲止沒有運氣,它不斷給我錯誤的未定義的索引:對於id和sandely。我已經改變了你給我藏漢 – deividas