【问题标题】:Search results while loop php搜索结果while循环php
【发布时间】:2013-10-11 12:42:56
【问题描述】:

所以可能有一个非常简单的方法来解决这个问题,但目前我因为某种原因被难住了。我正在做一个实践项目,建立一个基本的社交网络。我创建了一个基本的 php/mysql 搜索功能,供用户通过查询数据库来搜索其他用户,功能如下: 1.用户在自己的个人资料页面上的搜索表单中输入其他用户的名字 2. 这会将他们重定向到“搜索朋友”php 页面,该页面查询数据库并找到与搜索类似的记录。 3. 页面重定向到结果页面,原始用户可以看到其他用户的迷你资料。

我的问题是:如何将 while 循环产生的数据发送到结果页面。

$resulting = mysqli_query($con, "SELECT * FROM $tbl_name WHERE LastName LIKE '%$secondquery%'
                            OR LastName LIKE '%$firstquery%'
                            OR LastName LIKE '%$thirdquery%'
                            OR LastName LIKE '%$fourthquery%'
                            OR FirstName LIKE '%$secondquery%'
                            OR FirstName LIKE '%$firstquery%'
                            OR FirstName LIKE '%$thirdquery%'
                            OR FirstName LIKE '%$fourthquery%'
                            ");
    $counting = mysqli_num_rows($resulting);
    if($counting != 0){

    while($row = mysqli_fetch_array($resulting))
     {
         echo $row['FirstName'] . " " . $row['LastName'] . "<br>";

         }

         mysqli_close($con);
        header("location: results.php");

我想过做类似的事情:

while($row = mysqli_fetch_array($resulting))
     {
        if($n = 1){
         $_SESSION['a'] = $row['FirstName'] . " " . $row['LastName'] . "<br>";
         $n = 2;
        }elseif($n = 2){
        $_SESSION['b'] = $row['FirstName'] . " " . $row['LastName'] . "<br>";
        $n = 3;
        }
         }

         mysqli_close($con);
        header("location: results.php");

然后在结果页面上回显会话,但它过于依赖复制粘贴等,而且我还没有让它工作。任何人对如何最好地解决这个问题有任何想法?

感谢您的帮助!

【问题讨论】:

  • 为什么要将用户重定向到 results.php 而不仅仅是向他/她发送结果?
  • 在 else if 语句中,您必须使用 == 将 $n 与某个值进行比较。
  • 您的代码容易受到 SQL 注入攻击。

标签: php mysql session search while-loop


【解决方案1】:

如果你想在你的站点页面之间共享一些数据,session 是不错的选择,反正如果查询结果太大,可能会消耗大量内存,所以尽量减少查询中的数据选择。所以你可能想使用类似将$resulting更改为$_SESSION[resulting]的东西!

【讨论】:

    【解决方案2】:

    我会这样做:

    当用户点击搜索按钮时,用户在搜索框中输入的信息会使用 $_GET 变量通过 url 发送到结果页面。然后结果页面检索 $_GET 变量并执行查询并显示结果。

    通过 URL 传递搜索查询很方便,因为用户可以通过浏览器历史记录导航回结果页面,或保存书签。这类似于能够复制和粘贴谷歌搜索网址。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-26
      • 1970-01-01
      • 1970-01-01
      • 2014-11-29
      • 2014-12-05
      • 2015-06-02
      • 2016-01-08
      • 2019-12-19
      相关资源
      最近更新 更多