我想获得要显示的名字,姓氏和县,但是当我尝试在此处连接echo语句时,我收到错误。我怎么能纠正这个?
$query = mysql_query("
SELECT `first_name`, `last_name`,`county`
FROM `contact`
WHERE `first_name` ='". mysql_real_escape_string(trim($_POST['name'])) ."'
");
echo (mysql_num_rows($query) !== 0)? mysql_result($query,0,'first_name'):'Name not found';
?>
这是我收到的消息:
警告:mysql_result():在第14行的C:\ xampp \ htdocs \ ajax_Contact \ name.php中的MySQL结果索引5中找不到last_name.county
答案 0 :(得分:2)
此代码应回答OP关于其当前代码的问题:
$query = mysql_query("
SELECT `first_name`, `last_name`,`county`
FROM `contact`
WHERE `first_name` ='". mysql_real_escape_string(trim($_POST['name'])) ."'
");
(mysql_num_rows($query) !== 0) ? print mysql_result($query,0,'first_name') : print 'Name not found';
?>
另外根据您的错误,请确保此行:
`last_name`,`county`
目前不是
`last_name`.`county`
注意逗号/句点差异。
或者,如果您要显示名字,姓氏和县,请使用:
$query = mysql_query("
SELECT `first_name`, `last_name`,`county`
FROM `contact`
WHERE `first_name` ='". mysql_real_escape_string(trim($_POST['name'])) ."'
");
(mysql_num_rows($query) !== 0) ? print mysql_result($query,0,'first_name')." ".mysql_result($query,0,'last_name')." ".mysql_result($query,0,'county') : print 'Name not found';
?>
最终是为了获得更好的性能和支持的代码使用
$mysqli = new mysqli("your_host", "your_user", "your_password", "your_database");
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$query = "
SELECT `first_name`, `last_name`,`county`
FROM `contact`
WHERE `first_name` ='". mysql_real_escape_string(trim($_POST['name'])) ."'
";
$result = $mysqli->query($query);
while($row = $result->fetch_array()){
$rows[] = $row;
}
if($result->num_rows === 0){
print 'Name not found';
}
foreach($rows as $row){
print $row['first_name']." ".$row['last_name']." ".$row['county'];
}
/* free result set */
$result->close();
/* close connection */
$mysqli->close();
答案 1 :(得分:-1)
你最简单的方法是使用更新版本的MySQL函数 - mysqli是一个非常好的版本。但是如果你必须依赖旧的功能集,那么请阅读文档; mysql_result返回数据,你应该自己在代码中准备它。 另外,我必须同意@MarcB - 使用mysql_fetch_assoc或类似的东西,当oyu只是,并且真的期待一行。
但如果你有时间,合并到mysqli或PDO方法 - 它们更现代(换句话说它们一直是OOP)并且更安全。
答案 2 :(得分:-2)
首先,不要使用mysql _ *()库。它已被弃用且过时。但是如果你必须使用它,那么不要使用mysql_result。效率低下。更好的过程是使用获取函数
获取整行$result = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_assoc($row);
if (mysql_num_rows($result) != 0) {
echo $row['first_name'], $row['last_name'], $row['county'];
}