2016-03-03 154 views
0
<?php 
$conn = mysqli_connect ("localhost", "B00657633", "Jpr3EjPw") 
    or die ("could not connect: " . mysqli_error($conn)); 
    print "successful connection<br>"; 

    mysqli_select_db($conn, 'B00657633') or die ('db will not open'); 

    header('Location: sql5_2.php'); 

    $query = "UPDATE patient3 SET AGE=68 WHERE POST_CODE='bt667ed'"; 
    $result = mysqli_query($conn, $query) or die ("Query is invalid"); 
    $rownum = mysqli_num_rows($conn) 
$col = mysqli_num_fields($conn); 
echo "<table border='2'><tr><th>POST_CODE</th>"; 
for($i=0; $i<$rownum; $i++){ 
    $rows = mysqli_fetch_row($result); 
    echo "<tr>"; 
    for($j=0; $j<$col; $j++){ 
     echo "<td>" . $rows[$j] . "</td>"; 
    } 
    echo "</tr>"; 
} 
echo "</table>"; 

$rownum = mysqli_affected_rows($conn); 

echo $rownum . " Records have been updated."; 

mysqli_close($conn); 
?> 

這是我的網頁的第一部分,第二部分是如下:使用PHP來更新MySQL的記錄

<?php 
$conn = mysqli_connect ("localhost", "B00657633", "Jpr3EjPw") 
    or die ("could not connect: " . mysqli_error($conn)); 
    print "successful connection<br>"; 
     mysqli_select_db($conn, 'B00657633') or die ('db will not open'); 

    $query="SELECT * FROM patient3"; 
    $result = mysqli_query($conn, $query) or die ("Query is invalid"); 
    $num = mysqli_num_rows ($result); 
    $col = mysqli_num_fields ($result); 

    echo "<table border='2'><tr><th>PATNUM</th><th>PAT_FORENAME</th><th>PAT_SURNAME</th><th>STREET_ADDRESS</th><th>TOWN</th><th>POST_CODE</th><th>AGE</th>"; 
     for($j=0; $j<$num; $j++){ 
    $rows = mysqli_fetch_row($result); 
    echo "<tr>"; 
    for($i=0; $i<$col; $i++){ 
     echo "<td>" . $rows[$i] . "</td>"; 
    } 
    echo "</tr>"; 
} 
echo "</table>"; 

echo " Records have been updated."; 

mysqli_close($conn); 
?> 

無論我嘗試它沒有讓我在更新的任何信息,我SQL。真的不知道我哪裏出錯了,請幫助我。第二部分是顯示我的表格。連接到服務器是好的,但是一旦我點擊刷新,表格中沒有任何變化

+0

用戶是否有權更新表格? – ashin999

+1

你假設你的查詢正在工作。你有沒有啓用錯誤報告? –

+0

你也要去不同的頁面?在運行任何查詢之前 – Mihai

回答

2

編輯:現在我真的找到了測試/查看代碼的時間,我注意到了一些事情。

這裏是更新文件。

<?php 

    $conn = mysqli_connect ("localhost", "B00657633", "Jpr3EjPw") 
     or die ("could not connect: " . mysqli_error($conn)); 
     print "successful connection<br>"; 

     mysqli_select_db($conn, 'B00657633') or die ('db will not open'); 



    $query = "UPDATE patient3 SET AGE=68 WHERE POST_CODE='bt667ed'"; 
    $result = mysqli_query($conn, $query) or die ("Query is invalid"); 

    $rownum = mysqli_affected_rows($conn); 

    echo $rownum . " Records have been1 updated."; 


    header('Location: sql5_2.php'); 

?> 

這裏是sql5_2.php文件。

<?php 
$conn = mysqli_connect ("localhost", "B00657633", "Jpr3EjPw") 
    or die ("could not connect: " . mysqli_error($conn)); 
    print "successful connection<br>"; 
     mysqli_select_db($conn, 'B00657633') or die ('db will not open'); 

    $query="SELECT * FROM patient3"; 
    $result = mysqli_query($conn, $query) or die ("Query is invalid"); 
    $num = mysqli_num_rows ($result); 
    $col = mysqli_num_fields ($result); 

    echo "<table border='2'><tr><th>PATNUM</th><th>PAT_FORENAME</th><th>PAT_SURNAME</th><th>STREET_ADDRESS</th><th>TOWN</th><th>POST_CODE</th><th>AGE</th>"; 
     for($j=0; $j<$num; $j++){ 
    $rows = mysqli_fetch_row($result); 
    echo "<tr>"; 
    for($i=0; $i<$col; $i++){ 
     echo "<td>" . $rows[$i] . "</td>"; 
    } 
    echo "</tr>"; 
} 
echo "</table>"; 

echo " Records have been updated."; 

mysqli_close($conn); 
?> 

在你的代碼中,你正在做一些事情。首先,您試圖通過連接作爲num_rows/num_fields方法的結果集。這些期望實際包含數據的返回值,例如來自select查詢。更新查詢將返回true或false,以及它影響的行數。所以即使在更新它來獲取結果變量之後,它仍然試圖通過布爾值傳遞給方法。

你會發現,我把它改成

mysqli_affected_rows() 

將檢查影響了該查詢通過執行的mysqli_connect對象的行數。從那裏,我們可以使用該變量輸出有多少行受到影響。

另外,您試圖從更新查詢中輸出字段的值,該更新查詢不返回字段。關閉我的頭頂,您將不得不運行具有相同參數的選擇查詢來獲取將要更改的數據集,然後更新該集。這樣,您可以使用第一個選擇查詢中的一組數據來輸出哪些行正在更改。

請記住,通過使用header('Location: ')您將重定向用戶。因此,第一個文件中的任何輸出都不會被髮送到sql5_2.php。

+0

另一個頁面,我怎麼改變呢? – Smith

+0

檢查我編輯的第二個代碼塊。sql5_2.php文件的內容是什麼? – Son

+0

增加$結果仍然沒有區別。 sql5_2.php文件是編碼的第一位下面的代碼 – Smith