Php 搜索查询不显示结果
我有一个搜索引擎,但问题是搜索引擎不显示搜索结果,与数据库的连接正确。以下是代码: PHP: HTML:Php 搜索查询不显示结果,php,mysql,search,Php,Mysql,Search,我有一个搜索引擎,但问题是搜索引擎不显示搜索结果,与数据库的连接正确。以下是代码: PHP: HTML: 提前感谢大家 您没有实际处理查询结果。 您必须从返回的结果集中获取每一行,然后使用html输出中返回的字段 试试这个:- if (isset($_POST['search'])) { $searchq = $_POST['search']; $searchq = preg_replace("#[^0-9a-z]#i", "", $searchq); $query =
提前感谢大家 您没有实际处理查询结果。 您必须从返回的结果集中获取每一行,然后使用html输出中返回的字段 试试这个:-
if (isset($_POST['search'])) {
$searchq = $_POST['search'];
$searchq = preg_replace("#[^0-9a-z]#i", "", $searchq);
$query = mysql_query(
"SELECT * FROM tReference
WHERE sReference LIKE '%$searchq%' OR
sSearch LIKE '%$searchq%' OR
sSort LIKE '%$searchq%'") or die("La Recherche est impossible");
if (mysql_num_rows($query) == 0) {
$output = "Aucun Résultat Pour Cette Recherche!";
//English Trans : No results have been Found!
} else {
$output .= '<div><ul>';
while ( $row = mysql_fetch_object($query) ) {
$output .= '<li>';
$output .= '<a target="_blanc" href="refrences.php?reference=' . $row->sReference . '" ';
$output .= '" title="' . $row->sReference . '">' . $row->sReference . '</a>';
$output .= '</li>';
}
$output .= '</ul></div>';
}
}
完成了,伙计们,多亏了这一切,解决方案如下:
if (isset($_POST['search'])) {
$searchq = $_POST['search'];
$searchq = preg_replace("#[^0-9a-z]#i", "", $searchq);
$query = mysql_query(
"SELECT * FROM tReference
WHERE sReference LIKE '%$searchq%' OR
sSearch LIKE '%$searchq%' OR
sSort LIKE '%$searchq%'") or die("La Recherche est impossible");
if (mysql_num_rows($query) == 0) {
$output = "Aucun Résultat Pour Cette Recherche!";
} else {
$output .= '<div><ul>';
while ( $row = mysql_fetch_assoc($query) ) {
$sReference = $row['sReference'];
$output .= '<li>';
$output .= '<a target="_blanc" href="refrences.php?reference="' . $sReference . '" ';
$output .= '" title="' . $sReference . '">' . $sReference . '</a>';
$output .= '</li>';
}
$output .= '</ul></div>';
}
}
感谢@RiggsFolly,也感谢你们所有人。你们的代码毫无意义。首先,我建议您在单独的安全页面上使用面向对象的PHP。那么您的代码应该更像:
//secure.php
<?php
function db(){
return new mysqli('host', 'user', 'password', 'database');
}
?>
//reference.php
include 'secure.php'; $output = '';
if(isset($_POST['sub'])){
$db = db(); $searchq = $_POST['search'];
// What is this for? --->>> $searchq = preg_replace('/[^0-9a-z]/i', "", $searchq);
$query = $db->query("SELECT * FROM tReference WHERE sReference LIKE '%$searchq%' || sSearch LIKE '%$searchq%' || sSort LIKE '%$searchq%'");
if($query->num_rows < 1){
die('Aucun Résultat Pour Cette Recherche!');
}
else{
while($row = $query->fetch_assoc()){
$sref = $row['sReference'];
$output.= "<li><a target='_blank' href='refrences.php?reference=$sref' title='$sref '>$sref</a></li>";
}
$query->free(); $db->close();
}
<div id='searchd'>
<div class='searchc'>
<form action='reference.php' method='post'>
<input type='text' name='search' placeholder='Recherhcer...' />
<input type='submit' value='Ok' name='sub' />
<div class='clear'></div>
</form>
</div>
<ul id='output'><?php echo $output; ?></ul>
</div>
您只获得行数,而不是实际结果。这只是一个数字,不是数组$sReference=$count['sReference'];这是行不通的。你需要得到实际的结果。或者更好的方法是使用。不要使用mysql,因为它们已被弃用。尽快使用mysqli_*或PDO。@t提醒大家这是可行的,但我面临的另一个问题是,如何只得到一个结果,而不是所有匹配的结果不应该[^0-9a-z]I be/[^0-9a-z]/i?我认为第一条语句可以正常工作致命错误:无法将stdClass类型的对象用作数组有一个错误,我建议您向OP解释他/她犯了错误的地方,或者您是如何解决问题的。@sailacrimosa我看到它时已将其修复的,您一定是在我更改它之前复制了它。请重新复制并重试Hanks。不要害怕把结果作为一个对象,它更容易参考和理解。另一个满意的客户!哈哈,很高兴它成功了,赛义夫,干杯-@RiggsFolly是的,我忘了将抓取作为对象返回,因为我正在尝试修复它,Fred-ii-非常感谢much@SaifLacrimosa不客气,我没做什么,但最终结果才是最重要的。和平
if (isset($_POST['search'])) {
$searchq = $_POST['search'];
$searchq = preg_replace("#[^0-9a-z]#i", "", $searchq);
$query = mysql_query(
"SELECT * FROM tReference
WHERE sReference LIKE '%$searchq%' OR
sSearch LIKE '%$searchq%' OR
sSort LIKE '%$searchq%'") or die("La Recherche est impossible");
if (mysql_num_rows($query) == 0) {
$output = "Aucun Résultat Pour Cette Recherche!";
} else {
$output .= '<div><ul>';
while ( $row = mysql_fetch_assoc($query) ) {
$sReference = $row['sReference'];
$output .= '<li>';
$output .= '<a target="_blanc" href="refrences.php?reference="' . $sReference . '" ';
$output .= '" title="' . $sReference . '">' . $sReference . '</a>';
$output .= '</li>';
}
$output .= '</ul></div>';
}
}
//secure.php
<?php
function db(){
return new mysqli('host', 'user', 'password', 'database');
}
?>
//reference.php
include 'secure.php'; $output = '';
if(isset($_POST['sub'])){
$db = db(); $searchq = $_POST['search'];
// What is this for? --->>> $searchq = preg_replace('/[^0-9a-z]/i', "", $searchq);
$query = $db->query("SELECT * FROM tReference WHERE sReference LIKE '%$searchq%' || sSearch LIKE '%$searchq%' || sSort LIKE '%$searchq%'");
if($query->num_rows < 1){
die('Aucun Résultat Pour Cette Recherche!');
}
else{
while($row = $query->fetch_assoc()){
$sref = $row['sReference'];
$output.= "<li><a target='_blank' href='refrences.php?reference=$sref' title='$sref '>$sref</a></li>";
}
$query->free(); $db->close();
}
<div id='searchd'>
<div class='searchc'>
<form action='reference.php' method='post'>
<input type='text' name='search' placeholder='Recherhcer...' />
<input type='submit' value='Ok' name='sub' />
<div class='clear'></div>
</form>
</div>
<ul id='output'><?php echo $output; ?></ul>
</div>