簡體   English   中英

如何通過PHP對MySQL的搜索結果進行迭代?

[英]How to iterate on search results from MySQL by PHP?

當我使用

 function __construct()
    {
      // open db
      $this->db = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE);
      if (!$this->db)
        die(mysql_error());

      $this->db->query("SET NAMES 'utf8';");
    }


$result=$this->db->query("SELECT OrgNo, CompanyName FROM ematch WHERE CompanyName LIKE '%$word%';");
           $num=$result->num_rows;
          print $num; 
           $i=0;
            while ($i < $num) 
            {
                 $OrgNo=mysql_result($result,$i,"OrgNo");
                 $CompanyName=mysql_result($result,$i,"CompanyName");
                 $i++;
                 print $OrgNo.' '.$CompanyName.'<br>';
            }

我收到此錯誤:警告:mysql_result():提供的參數不是有效的MySQL結果資源,並且沒有任何結果。

您可以將代碼更改為此:

$result = $this->db->query("SELECT OrgNo, CompanyName FROM ematch WHERE CompanyName LIKE '%$word%';");

while ($row = mysqli_fetch_array($result)) 
{
  print $row['OrgNo'] .'<br />';
  print $row['CompanyName'] .'<br />';
}

假設從query方法返回的$result是結果資源。

您將必須向我們展示您正在使用的DB包裝器/類,但我想對前進的方向有所猜測:

$result = $this->db->query("SELECT OrgNo, CompanyName FROM ematch WHERE CompanyName LIKE '%$word%';");
while($row = mysqli_fetch_array($result)) {
    print $row['OrgNo']." ".$row['CompanyName']."<br>";
}

當您使用自定義數據庫包裝器時,最好使用其一一讀取行的方法,而不要使用mysqli_fetch_array();。

嘗試從SQL語句中刪除分號。

"SELECT OrgNo, CompanyName FROM ematch WHERE CompanyName LIKE '%$word%';"

應該是

"SELECT OrgNo, CompanyName FROM ematch WHERE CompanyName LIKE '%$word%'"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM