2017-10-05 115 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