2017-10-05 109 views
0

我有一個表單填充與查詢結果的字段,並允許我更新任何字段。我的問題是,任何給定的字段將只顯示該記錄的該列中的第一個單詞。如果我在字段中輸入某些內容,它會「更新」記錄,但只顯示第一個單詞。這是我的。從查詢填充表單字段只顯示第一個字

<html> 
<body> 
<?php 
$con = mysql_connect("localhost","db_username","db_pw"); 
{ 
} 
mysql_select_db("db_name",$con); 
if (isset($_POST['update'])){ 
$UpdateQuery = "UPDATE db_table SET Name='$_POST[Name]', Email='$_POST[Email]', ID='$_POST[ID]', Notes='$_POST[Notes]' WHERE ID='$_POST[Hidden]'"; 
mysql_query($UpdateQuery, $con); 


}; 

$sql = "SELECT * FROM db_table "; 
$mydata = mysql_query($sql,$con); 

echo "<table border='1'> 
<tr> 
<th>Name</th> 
<th>Email</th> 
<th>Member Number</th> 
<th>Notes</th> 
</tr>"; 

while($row = mysql_fetch_array($mydata)) 
{ 
echo "<form action=updaterec.php method=post>"; 
echo "<tr>"; 
echo "<td>" . "<input type=text name=Name value=" . $row['Name'] . " ></td>"; 
echo "<td>" . "<input type=text name=Email value=" . $row['Email'] . " ></td>"; 
echo "<td>" . "<input type=text name=ID value=" . $row['ID'] . " ></td>"; 
echo "<td>" . "<input type=text name=Notes value=" . $row['Notes'] . " ></td>"; 
echo "<td>" . "<input type=hidden name=Hidden value=" . $row['ID'] . " ></td>"; 
echo "<td>" . "<input type=submit name=update value=update" . " ></td>"; 
echo "</form>"; 
echo "</tr>"; 
} 
echo "</table>"; 
mysqli_close($con); 
?> 
</body> 
</html> 
+3

鮑比桌是爲你而來http://bobby-tables.com/ – miknik

+0

這將在密碼保護目錄。我將是唯一使用它的人。 – PCMedicJAX

回答

0

的問題是因爲你沒有包裹在雙引號中的價值,正在爲<input name=john smith>代替<input name="john smith">,這將整個包住值的輸入字段,然後成爲有效生成的HTML。

所以,因爲你使用雙引號,你需要使用\" ...

value=" . $row['Name'] . " 

...應該成爲...

value=\"" . $row['Name'] . "\" 

你應該一直檢討源PHP在瀏覽器(而不僅僅是完成的dom)中生成問題後生效的代碼。

我也看看逃脫你的價值觀。

完整的解決方案:

while($row = mysql_fetch_array($mydata)) 
{ 
    echo "<form action=updaterec.php method=post>"; 
    echo "<tr>"; 
    echo "<td><input type=text name=Name value=\"" . htmlentities($row['Name']) . "\" ></td>"; 
    echo "<td><input type=text name=Email value=\"" . htmlentities($row['Email']) . "\" ></td>"; 
    echo "<td><input type=text name=ID value=\"" . htmlentities($row['ID']) . "\" ></td>"; 
    echo "<td><input type=text name=Notes value=\"" . htmlentities($row['Notes']) . "\" ></td>"; 
    echo "<td><input type=hidden name=Hidden value=\"" . htmlentities($row['ID']) . "\" ></td>"; 
    echo "<td><input type=submit name=update value=\"update\" ></td>"; 
    echo "</form>"; 
    echo "</tr>"; 
} 

附加:另外,單引號可以幫助避免混淆,當你不需要解析變量。

echo '<td><input type="text" name="Name" value="' . htmlentities($row['Name']) . '" ></td>'; 
+1

完美的工作謝謝。 – PCMedicJAX