首页 > 解决方案 > 我从数据库 php 中只得到一行

问题描述

我在 search.php 中有以下 PHP 代码,用于从同一文件中的表单收集信息。这是一个搜索引擎,当我在搜索栏中输入一些内容时,即使我应该得到不止一行,我也只能得到一行。

这是php脚本:

<?php

$error = "";
$con=mysqli_connect('localhost', 'root', '');
$db=mysqli_select_db($con, 'vodici');


if(isset($_POST['button'])){    //trigger button click

  $search=$_POST['search'];

  $query=mysqli_query($con,"select distinct * from users where meno like '%{$search}%' || priezvisko like '%{$search}%' || mesto like '%{$search}%' || kraj like '%{$search}%' || rok_narodenia like '%{$search}%' || email like '%{$search}%' ");

if (mysqli_num_rows($query) > 0) {
  while($row = mysqli_fetch_array($query)) {
    $div = "<div style='border: 1px solid black; border-radius: 5px;'>".$row['id'];
    $vysledok = "<h2 style='text-decoration: underline; padding-left: 2%;'>".$row['meno']."  ".$row['priezvisko']."</h2>";
    $mail = "<p style='padding-left : 2%; font-size: 11px;'><strong>Rok narodenia:</strong> ".$row['rok_narodenia']." <br><strong>E-mail: </strong> ".$row['email']."</p>";
    $mesto = "<p style='padding-left: 2%'><strong>Mesto:</strong> ".$row['mesto']." <strong>Kraj:</strong> ".$row['kraj']."</p>";
    $div_end = "</div>";
  }
}else{
    $error = "Nič sme nenašli :/ <br><br>";
  }

}

mysqli_close($con);
?>

这是表格:

<form class="search-form" action="" method="post">
                    <div class="input-group">
                        <input name="search" type="text" class="form-control" placeholder="Vyhľadať...">
                        <div class="input-group-append">
                        <button class="btn btn-secondary" type="submit" name="button"><i class="fa fa-search"></button></i>
                        </div>
                    </div>    
                    </form>
                    <p><?php if(isset($_POST['button']) && $error == "") {
                        while($row = mysqli_fetch_array($query)) {
                            echo $div,$vysledok,$mail,$mesto,$div_end;
                        }
                        }?></p>
                    <p><?php if(isset($_POST['button']) && $error !== "") {echo $error;}?></p>

我可以在这里做什么?我没有想法

谢谢

标签: phphtmlmysqldatabase

解决方案


您只添加了一行。您需要将每一行添加到生成的 html 中。


$result = '';
if (mysqli_num_rows($query) > 0) {
  while($row = mysqli_fetch_array($query)) {
    $div = "<div style='border: 1px solid black; border-radius: 5px;'>".$row['id'];
    $vysledok = "<h2 style='text-decoration: underline; padding-left: 2%;'>".$row['meno']."  ".$row['priezvisko']."</h2>";
    $mail = "<p style='padding-left : 2%; font-size: 11px;'><strong>Rok narodenia:</strong> ".$row['rok_narodenia']." <br><strong>E-mail: </strong> ".$row['email']."</p>";
    $mesto = "<p style='padding-left: 2%'><strong>Mesto:</strong> ".$row['mesto']." <strong>Kraj:</strong> ".$row['kraj']."</p>";
    $div_end = "</div>";
    $result .= $div. $vysledok. $mail.$mesto. $div_end ;
  }
}else{
    $error = "Nič sme nenašli :/ <br><br>";
  }

echo $result;

}


推荐阅读