2012-04-22 122 views
0

無法獲得此代碼的工作。該語句正常工作直接放在桌子上,只是沒有當從PHP文件執行:PHP MySql更新多行

<strong>Multi Update</strong><br> 

    <?php 
    $host="localhost"; // Host name 
    $username="user_name"; // Mysql username 
    $password="Password"; // Mysql password 
    $db_name="dbname"; // Database name 
    $tbl_name="tablename"; // Table name 

    // Connect to server and select databse. 
    mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
    mysql_select_db("$db_name")or die("cannot select DB"); 

    $sql="SELECT 
     mik1vm_product.product_id, 
     mik1vm_product.product_sku, 
     mik1vm_product.product_name, 
     mik1vm_product.product_in_stock, 
     mik1vm_product.product_in_stock_cardiff 
    FROM $tbl_name"; 
    $result=mysql_query($sql); 

    // Count table rows 
    $count=mysql_num_rows($result); 
    ?> 
    <table width="500" border="0" cellspacing="1" cellpadding="0"> 
    <form name="form1" method="post" action=""> 
    <tr> 
    <td> 
    <table width="500" border="0" cellspacing="1" cellpadding="0"> 


    <tr> 
    <td align="center"><strong>Product Id</strong></td> 
    <td align="center"><strong>SKU</strong></td> 
    <td align="center"><strong>Name</strong></td> 
    <td align="center"><strong>In Stock</strong></td> 
    <td align="center"><strong>In Stock Cardiff</strong></td> 
    </tr> 
    <?php 
    while($rows=mysql_fetch_array($result)){ 
    ?> 
    <tr> 
    <td align="center"><? $product_id[]=$rows['product_id']; ?><? echo $rows['product_id']; ?></td> 
    <td align="center"><input name="product_sku[]" type="text" id="product_sku" value="<? echo $rows['product_sku']; ?>"></td> 
    <td align="center"><input name="product_name[]" type="text" id="product_name" value="<? echo $rows['product_name']; ?>"></td> 
    <td align="center"><input name="product_in_stock[]" type="text" id="product_in_stock" value="<? echo $rows['product_in_stock']; ?>"></td> 
    <td align="center"><input name="product_in_stock_cardiff[]" type="text" id="product_in_stock_cardiff" value="<? echo $rows['product_in_stock_cardiff']; ?>"></td> 
    </tr> 
    <?php 
    } 
    ?> 
    <tr> 
    <td colspan="4" align="center"><input type="submit" name="Submit" value="Submit"></td> 
    </tr> 
    </table> 
    </td> 
    </tr> 
    </form> 
    </table> 
    <?php 
    // Check if button name "Submit" is active, do this 
    if($Submit){ 
    for($i=0;$i<$count;$i++){ 
    $sql1="UPDATE $tbl_name SET product_sku='$product_sku[$i]', product_name='$product_name[$i]', product_in_stock='$product_in_stock[$i]' , product_in_stock_cardiff='$product_in_stock_cardiff[$i]' WHERE product_id='$product_id[$i]'"; 
    $result1=mysql_query($sql1); 
    } 
    } 

    if($result1){ 
    header("location:test.php"); 
    } 
    mysql_close(); 
    ?> 

的頁面加載罰款,所有的數據是否正確。但只是不更新​​數據庫。

在此先感謝您的幫助。

UPDATE

行,所以我想我是有點過這裏的標誌,很顯然,我是新來的PHP所以請耐心等待。

我修改了代碼:

<strong>Multi Update</strong><br> 

    <?php 
    $host=""; // Host name 
    $username=""; // Mysql username 
    $password=""; // Mysql password 
    $db_name=""; // Database name 
    $tbl_name=""; // Table name 


    // Connect to server and select databse. 
    mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
    mysql_select_db("$db_name")or die("cannot select DB"); 

    $sql="SELECT 
     mik1vm_product.product_id, 
     mik1vm_product.product_sku, 
     mik1vm_product.product_name, 
     mik1vm_product.product_in_stock, 
     mik1vm_product.product_in_stock_cardiff 
    FROM $tbl_name"; 
    $result=mysql_query($sql); 

    // Count table rows 
    $count=mysql_num_rows($result); 
    ?> 
    <table width="500" border="0" cellspacing="1" cellpadding="0"> 
    <form name="form1" method="post" action=""> 
    <tr> 
    <td> 
    <table width="500" border="0" cellspacing="1" cellpadding="0"> 


    <tr> 
    <td align="center"><strong>Product Id</strong></td> 
    <td align="center"><strong>SKU</strong></td> 
    <td align="center"><strong>Name</strong></td> 
    <td align="center"><strong>In Stock</strong></td> 
    <td align="center"><strong>In Stock Cardiff</strong></td> 
    </tr> 
    <?php 
    while($rows=mysql_fetch_array($result)){ 
    ?> 
    <tr> 
    <td align="center"><? $product_id[]=$rows['product_id']; ?><? echo $rows['product_id']; ?></td> 
    <td align="center"><input name="product_sku[]" type="text" id="product_sku" value="<? echo $rows['product_sku']; ?>"></td> 
    <td align="center"><input name="product_name[]" type="text" id="product_name" value="<? echo $rows['product_name']; ?>"></td> 
    <td align="center"><input name="product_in_stock[]" type="text" id="product_in_stock" value="<? echo $rows['product_in_stock']; ?>"></td> 
    <td align="center"><input name="product_in_stock_cardiff[]" type="text" id="product_in_stock_cardiff" value="<? echo $rows['product_in_stock_cardiff']; ?>"></td> 
    </tr> 
    <?php 
    } 
    ?> 
    <tr> 
    <td colspan="4" align="center"><input type="submit" name="Submit" value="Submit"></td> 
    </tr> 
    </table> 
    </td> 
    </tr> 
    </form> 
    </table> 
    <?php 
    // Check if button name "Submit" is active, do this 

    if(isset($_POST['Submit']) && $_POST['Submit'] == 'Submit'){ 
     for($i=0;$i<$count;$i++){ 
      $sql1="UPDATE $tbl_name SET product_sku='$product_sku[$i]', product_name='$product_name[$i]', product_in_stock='$product_in_stock[$i]' , product_in_stock_cardiff='$product_in_stock_cardiff[$i]' WHERE product_id='$product_id[$i]'"; 
      $result1=mysql_query($sql1); 
     } 
    } 


    if($result1){ 
    header("location:test.php"); 
    } 
    mysql_close(); 
    ?> 

現在是給錯誤:

在初始頁面加載:E:未定義的變量:SQL1在test.php的74行

但當頁面提交時有負載:

注意:未定義的變量:product_sku在70行的test.php中

說明:未定義變量:PRODUCT_NAME在test.php的上線路70

說明:未定義變量:product_in_stock在test.php的上線路70

說明:未定義變量:product_in_stock_cardiff在test.php的線70上

這樣的例子不勝枚舉......

的最後一行:

注意:未定義的變量:product_in_stock_cardiff在/test/test.php在線70 UPDATE mik1vm_product SET product_sku = '',PRODUCT_NAME = '',product_in_stock = '',product_in_stock_cardiff = '' WHERE的product_id = '74'

+0

你可以在EOF上忽略?>。錯誤報告和顯示錯誤設置是否正確?任何錯誤或警告可見? – Hajo 2012-04-22 15:29:46

+0

獲取任何錯誤? '$ product_sku'甚至'$ Submit'在哪裏設置? – 2012-04-22 15:31:01

+0

不存在任何錯誤,在提交頁面重新加載時,即使更新之前已更改,數據也會從DB恢復爲值。所以我只能假設有一個錯誤,但我找不出什麼。 – Paul 2012-04-22 15:36:31

回答

0

我沒有看到你$提交變量被設置在任何地方。嘗試

if(isset($_POST['Submit']) && $_POST['Submit'] == 'Submit'){ 
    for($i=0;$i<$count;$i++){ 
     $sql1="UPDATE $tbl_name SET product_sku='$product_sku[$i]', product_name='$product_name[$i]', product_in_stock='$product_in_stock[$i]' , product_in_stock_cardiff='$product_in_stock_cardiff[$i]' WHERE product_id='$product_id[$i]'"; 
     $result1=mysql_query($sql1); 
    } 
} 

在未來,你將能夠避免錯誤就是這樣,用設置:

ini_set('error_reporting', E_ALL); 

或者在php.ini文件中的相應設置。

+3

你假設OP有一個名爲「Submit」的元素,其值爲「Submit」。這是一個很大的假設。 – 2012-04-22 15:37:18