PHP MySQL 搜索并按 html <input> 显示行

标签 php mysql

我有一个 HTML 表单,例如:

<form  action = "get-row.php"  method = "post" >                  
<input type = "text"  name = "mess_username" />
<input type = "submit" name = "submit" />
</form>

我的“get-row.php”就像:

$button = $_POST ['submit'];
$search = $_POST ['mess_username'];

if (!$button) {
    echo "you didn't submit a keyword";
}
else {
    if (strlen($search) <= 1) {
        echo "Search term too short";
    }
    else {
        echo "You searched for <b> $search </b> <hr size='1' >";
    }
}

我现在成功获得了我搜索的值。我的下一个方法是从我的数据库中搜索 $search。我正在尝试:

mysql_connect("server", "user", "pass");
mysql_select_db("my_db");

我的最终“ok”代码在currection后:

$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 = 'SELECT * FROM messbd WHERE mess_username="' . mysql_real_escape_string($search) . '"';

但是 mysql 扩展已已弃用,应由 PDO 或 mysqli 替换。以下是 PDO 和准备好的语句的示例:

$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";
    }
}

关于PHP MySQL 搜索并按 html &lt;input&gt; 显示行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33860608/

相关文章:

php - 在 PHP 中,为什么 true 强制转换为 1 而 false 强制转换为空字符串?

php - 用文本填充的 div 之间的复杂垂直间距

javascript - 用php编写js文件时删除换行符

mysql - 如何获得每个球员最近5场比赛的平均值

php - 多查询和结果连接

MySQL 分组两次

php - 非主键字段出现重复输入错误

mysql - 将变量从 PHP 脚本传递到过程 Mysql

mysql - 从表中删除除一个和其他之外的重复项

php - 数据库触发器更新列后如何进行查询?