我这里有
<table align="center">
<tr>
<td>ID No</td><td>:</td>
<td><input type="text" name="idno" size="10px" maxlength="15px" ></td>
<td><input type="submit" value="Search ID No." name="search"></td>
</tr>
</table>
<?php
include('connect.php');
$sql="select * from stud where ID_No='$_POST[idno]';";
$result=mysql_query($sql);
$s=mysql_fetch_array($result);
$addr = $s[Home_addr];
echo"$addr";
?>
如何获取整个地址?
此脚本仅返回数据库中的第一个单词。
迭代mysql_fetch_array
<?php
include('connect.php');
$sql="select * from stud where ID_No='$_POST[idno]';";
$result=mysql_query($sql);
while($s=mysql_fetch_array($result))
{
$addr = $s[Home_addr];
echo"$addr";
}
?>
对不起,跑题了。但请不要将 $_POST 数组中的用户输入直接放入查询中。您需要先通过 mysql_real_escape_string() 传递它,否则您将容易受到 SQL 注入攻击。
此外,关联数组的键是字符串,因此请引用它们:
$s['Home_addr']
不
$s[Home_addr]
在后者中,PHP 将首先尝试将Home_addr视为常量,但当找不到时,它将退回到将其视为字符串,因此它确实有效,但它不可靠,可能更慢,而且完全错误。
您需要遍历数据:
<?php
include('connect.php');
$idno = (integer) $_POST['idno'];
$sql="select * from stud where ID_No='$idno';";
$result=mysql_query($sql);
while ($s=mysql_fetch_array($result)) {
$addr = $s['Home_addr'];
echo "$addr";
}
?>
另外,请不要使用mysql_*
函数来编写新代码。它们不再维护,社区已开始弃用过程。看到红框了吗?相反,您应该了解预准备语句并使用PDO或MySQLi。如果您无法决定哪个,本文将为您提供帮助。另请参阅为什么我不应该在 PHP 中使用 mysql 函数?