Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-MySQL搜索引擎&;按html显示行<;输入>;_Php_Mysql - Fatal编程技术网

PHP-MySQL搜索引擎&;按html显示行<;输入>;

PHP-MySQL搜索引擎&;按html显示行<;输入>;,php,mysql,Php,Mysql,我有一个HTML表单,如: <form action = "get-row.php" method = "post" > <input type = "text" name = "mess_username" /> <input type = "submit" name = "submit" /> </form> 当前检查后我的最终“确定”代码: $sql = " SELECT * FROM messbd

我有一个HTML表单,如:

<form  action = "get-row.php"  method = "post" >                  
<input type = "text"  name = "mess_username" />
<input type = "submit" name = "submit" />
</form>
当前检查后我的最终“确定”代码:

$sql = " SELECT * FROM messbd WHERE mess_username= '$search' ";
$run = mysql_query($sql);

$foundnum = mysql_num_rows($run);

if ($foundnum == 0) {
    echo "Sorry, there are no matching result for <b> $search </b>";
}
else {
    echo "$foundnum results found !<p>";

    while ($runrows = mysql_fetch_assoc($run)) {
        $mess_username = $runrows ['mess_username'];
        $mess_email = $runrows ['mess_email'];
        $android_app = $runrows ['android_app'];

        echo " $mess_username  <br> $mess_email <br> $android_app ";
    }
}
$sql=“从messbd中选择*,其中mess\u用户名='$search';
$run=mysql\u查询($sql);
$foundnum=mysql\u num\u行($run);
如果($foundnum==0){
echo“对不起,$search没有匹配的结果”;
}
否则{
echo“$foundnum结果已找到!”;
而($runrows=mysql\u fetch\u assoc($run)){
$mess_username=$runrows['mess_username'];
$mess_email=$runrows['mess_email'];
$android_app=$runrows['android_app'];
echo“$mess\u用户名
$mess\u电子邮件
$android\u应用程序”; } }
问题是,我得到的信息是,“没有匹配的结果!”那么那里的更正是什么呢


现在问题解决了&上面的代码已更新。谢谢。

通过此查询,mysql将搜索$search输入,而不是var的relarive值。尝试使用单引号。

通过此查询,mysql将搜索$search输入,而不是var的relarive值。尝试使用单引号。

因为您的
$search
结果将是一个字符串,然后需要在查询中引用该变量。我很确定您正在数据库中查找字符串,看到
echo“您没有提交关键字”
mess_用户名
作为用户的“名称”

假设完全匹配。如果你正在寻找与你的搜索相似的东西,说你正在寻找“脚”并想找到“足球”,然后使用LIKE

还要将
或die(mysql_error())
添加到
mysql_query()
中,以防在查询变量中不引用字符串时出现错误

脚注:

您当前的代码对用户开放。使用,或与


另外,最好对输入使用条件
empty()

即:


如果有人只是单击而不输入任何内容,这可能会给您带来错误。

因为您的
$search
结果将是一个字符串,那么您需要在查询中引用该变量。我很确定您正在数据库中查找字符串,看到
echo“您没有提交关键字”
mess_用户名
作为用户的“名称”

假设完全匹配。如果你正在寻找与你的搜索相似的东西,说你正在寻找“脚”并想找到“足球”,然后使用LIKE

还要将
或die(mysql_error())
添加到
mysql_query()
中,以防在查询变量中不引用字符串时出现错误

脚注:

您当前的代码对用户开放。使用,或与


另外,最好对输入使用条件
empty()

即:


如果有人只是点击而不输入任何内容,这可能会给您带来错误。

您没有引用您的搜索词

$sql = 'SELECT * FROM messbd WHERE mess_username="' . mysql_real_escape_string($search) . '"';
但是mysql扩展已弃用,应该用PDO或mysqli替换。下面是一个PDO和prepared语句的示例:

$options = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION);
$dbh = new PDO('mysql:host=server;dbname=my_db', 'user', 'pass', $options);

$sql = 'SELECT * FROM messbd WHERE mess_username=?';
$sth = $pdo->prepare($sql);
$sth->execute(array($search));
// there is no sure working rowCount, so fetch all and count
$rows = $sth->fetchAll(PDO::FETCH_ASSOC)
if (!$rows) {
    echo "Sorry, there are no matching result for <b> $search </b>";
} else {
    echo count($rows) . " results found !<p>";
    foreach ($rows as $row) {
        $mess_username = $row['mess_username'];
        $mess_email    = $row['mess_email'];
        $android_app   = $row['android_app'];
        echo "$mess_username<br>$mess_email<br>$android_app";
    }
}
$options=array(PDO::ATTR_ERRMODE=>PDO::ERRMODE_异常);
$dbh=newpdo('mysql:host=server;dbname=my_db','user','pass',$options);
$sql='从messbd中选择*,其中mess_username=?';
$sth=$pdo->prepare($sql);
$sth->execute(数组($search));
//没有确定的工作行数,因此获取所有行数并计数
$rows=$sth->fetchAll(PDO::FETCH_ASSOC)
如果(!$行){
echo“对不起,$search没有匹配的结果”;
}否则{
回声计数($rows)。“找到结果!”;
foreach($行作为$行){
$mess_username=$row['mess_username'];
$mess_email=$row['mess_email'];
$android_app=$row['android_app'];
echo“$mess\u用户名
$mess\u电子邮件
$android\u应用程序”; } }
您没有引用搜索词

$sql = 'SELECT * FROM messbd WHERE mess_username="' . mysql_real_escape_string($search) . '"';
但是mysql扩展已弃用,应该用PDO或mysqli替换。下面是一个PDO和prepared语句的示例:

$options = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION);
$dbh = new PDO('mysql:host=server;dbname=my_db', 'user', 'pass', $options);

$sql = 'SELECT * FROM messbd WHERE mess_username=?';
$sth = $pdo->prepare($sql);
$sth->execute(array($search));
// there is no sure working rowCount, so fetch all and count
$rows = $sth->fetchAll(PDO::FETCH_ASSOC)
if (!$rows) {
    echo "Sorry, there are no matching result for <b> $search </b>";
} else {
    echo count($rows) . " results found !<p>";
    foreach ($rows as $row) {
        $mess_username = $row['mess_username'];
        $mess_email    = $row['mess_email'];
        $android_app   = $row['android_app'];
        echo "$mess_username<br>$mess_email<br>$android_app";
    }
}
$options=array(PDO::ATTR_ERRMODE=>PDO::ERRMODE_异常);
$dbh=newpdo('mysql:host=server;dbname=my_db','user','pass',$options);
$sql='从messbd中选择*,其中mess_username=?';
$sth=$pdo->prepare($sql);
$sth->execute(数组($search));
//没有确定的工作行数,因此获取所有行数并计数
$rows=$sth->fetchAll(PDO::FETCH_ASSOC)
如果(!$行){
echo“对不起,$search没有匹配的结果”;
}否则{
回声计数($rows)。“找到结果!”;
foreach($行作为$行){
$mess_username=$row['mess_username'];
$mess_email=$row['mess_email'];
$android_app=$row['android_app'];
echo“$mess\u用户名
$mess\u电子邮件
$android\u应用程序”; } }
可能只有
messbd
数据库的名称吗?我想你的意思可能是messdb
?@JeremyHarris是的
messbd
是我的数据库的名称。谢谢。请尝试使用
mysql\u error
检查错误,或者简单地检查
$foundnum
vriable中包含的内容。如果您的查询没有问题,我想您必须将DB结构添加到问题中。在您的查询中也使用
mysql\u real\u escape\u string
,我认为手动文章可能对您有用。
$search
结果是字符串吗?看起来像是“关键字”。可能什么都没有,但
messbd
是您数据库的名称吗?我想你的意思可能是messdb
?@JeremyHarris是的
messbd
是我的数据库的名称。谢谢。请尝试使用
mysql\u error
检查错误,或者简单地检查
$foundnum
vriable中包含的内容。如果您的查询没有问题,我想您必须将DB结构添加到问题中。在您的查询中使用
mysql\u real\u escape\u string
$sql
,我认为手动
$sql = 'SELECT * FROM messbd WHERE mess_username="' . mysql_real_escape_string($search) . '"';
$options = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION);
$dbh = new PDO('mysql:host=server;dbname=my_db', 'user', 'pass', $options);

$sql = 'SELECT * FROM messbd WHERE mess_username=?';
$sth = $pdo->prepare($sql);
$sth->execute(array($search));
// there is no sure working rowCount, so fetch all and count
$rows = $sth->fetchAll(PDO::FETCH_ASSOC)
if (!$rows) {
    echo "Sorry, there are no matching result for <b> $search </b>";
} else {
    echo count($rows) . " results found !<p>";
    foreach ($rows as $row) {
        $mess_username = $row['mess_username'];
        $mess_email    = $row['mess_email'];
        $android_app   = $row['android_app'];
        echo "$mess_username<br>$mess_email<br>$android_app";
    }
}