我在我的网站上使用PHP搜索功能,它目前只显示我的SQL数据库中的一个结果 - 我希望它显示site_keywords中包含的所有结果!
这是我目前在我的页面上使用的PHP代码
<?php
mysql_connect("danieljosephdesignsc.ipagemysql.com", "searchdata", "danieljoseph");
mysql_select_db("my_db");
if(isset($_GET['search'])) {
$search_value = $_GET['value'];
$query = "select * from sites where site_keywords like '%$search_value%'";
$run = mysql_query($query);
while($row=mysql_fetch_array($run)){
$title = $row['site_title'];
$link = $row['site_link'];
$desc = $row['site_desc'];
}
}
?>
以下是我体内的内容:
<?php echo "<div><a href='$link'><h2>$title</h2></a><p>$desc</p><a href='$link'>$link</a></div>";?>
如果您需要更多信息,请与我们联系。对此的任何帮助将不胜感激。
由于
答案 0 :(得分:1)
你的问题是你没有在循环中回应结果。
你需要这样的东西:
while($row=mysql_fetch_assoc($run)){
$title = $row['site_title'];
$link = $row['site_link'];
$desc = $row['site_desc'];
echo "<div><a href='$link'><h2>$title</h2></a><p>$desc</p><a href='$link'>$link</a></div>";
}
重要提示:
您使用的是已弃用的代码。对于以mysql_
开头的任何函数都是如此。这意味着您的代码将不再适用于较新版本的php,如果您在查询中调用任何变量,则可能不安全。您确实需要使用mysqli或PDO使用 预备语句 进行查找。
自PHP 5.5.0起,此扩展程序已弃用,并将在中删除 未来。相反,应该使用MySQLi或PDO_MySQL扩展。 另请参阅MySQL:选择API指南和相关常见问题解答以获取更多信息 信息。该功能的替代方案包括:
mysqli_connect() PDO::__construct()
答案 1 :(得分:0)
问题在于这段代码:
while($row=mysql_fetch_array($run)){
$title = $row['site_title'];
$link = $row['site_link'];
$desc = $row['site_desc'];
}
即使您获得了多个结果,每个结果也会覆盖前一个结果的值。所以最后你只有一行。尝试将结果保存到数组中,然后在体内迭代它。
答案 2 :(得分:0)
$rows =array();
while($row=mysql_fetch_array($run)){
$rows[] =$row;
}
foreach($rows as $row){
$title = $row['site_title'];
$link = $row['site_link'];
$desc = $row['site_desc'];
echo "<div><a href='$link'><h2>$title</h2></a><p>$desc</p><a href='$link'>$link</a></div>";
}