使用mysqli multiquery显示搜索结果

htrmnn0y  于 2021-06-24  发布在  Mysql
关注(0)|答案(1)|浏览(208)

如何使用mysqli multiquery显示搜索结果。我想显示列表详细信息表和用户表中的值。这是我的密码:

$searchquery="SELECT * FROM `listing-details` WHERE `listing-address` LIKE '%" . $address . "%' AND `listing-address-street` LIKE '%" . $street . "%' AND `listing-address-barangay-id` LIKE '%" . $barangay . "%'";
                $searchquery.= "SELECT `user.user-username`, `user.user-firstname`, `user.user-lastname`, `listing-details.user-username` FROM `user`, `listing-details` WHERE `listing-details.user-username`=`user.user-username`";

                if (mysqli_multi_query($conn, $searchquery)) {
                  do {
                    if ($result=mysqli_store_result($conn,$searchquery)){
                      while($row=mysqli_fetch_row($result)){ 
                        $listingid  =$row['listing-id'];
                        $username  =$row['user-username'];
                        $listingbedquantity  =$row['listing-bedquantity'];
                        $listingbedtype =$row['listing-bedtype-id'];
                        $listingguestsquantity  =$row['listing-guestsquantity'];
                        $listingplacetype  =$row['listing-placetype-id'];
                        $listingpropertytype  =$row['listing-propertytype-id'];
                        $listingbathroomquantity =$row['listing-bathroomquantity'];
                        $listingaddress  =$row['listing-address'];
                        $listingstreet  =$row['listing-address-street'];
                        $listingbarangay  =$row['listing-address-barangay-id'];
                        $listingamenities  =$row['listing-amenities-basic-id'];
                        $listingsafetyamenities  =$row['listing-amenities-safety-id'];
                        $listingsaphotos  =$row['listing-amenities-safety-photos-id'];
                        $listingspace  =$row['listing-space-id'];
                        $listinglandmark  =$row['listing-landmark'];
                        $listingpreferences  =$row['listing-preferences-id'];
                        $listingphotoset  =$row['listing-photosset-id'];
                        $listingexperience  =$row['listing-experience-id'];
                        $listingfrequency  =$row['listing-frequency-id'];
                        $listingstartdate  =$row['listing-startdate'];
                        $listingrate =$row['listing-rate-id'];
                        $listingprice  =$row['listing-price'];
                        $listingrules  =$row['listing-rules-id'];
                        $listingtitle  =$row['listing-title'];
                        $listingdescription  =$row['listing-description'];
                        $firstname  =$row['user-firstname'];
                        $lastname  =$row['user-lastname'];

                        echo "<ul>\n";
                        echo "<li>"."<a href=\"search.php?id=$listingid\">" . "<h2>" . $listingtitle . "</h2></a></li>\n";
                        echo "<li><h6>" . $listingaddress . ", " . $listingstreet . ", " . $listingbarangay . "</h6></li>";
                        echo "<li><i>" . $listingdescription . "</i></li>";
                        echo "<ul>\n";
                        echo "<li>"."<a href=\"search.php?id=$listingid\">" . "<h2>" . $listingtitle . "</h2></a></li>\n";
                        echo "<li><h6>" . $listingaddress . ", " . $listingstreet . ", " . $listingbarangay . "</h6></li>";
                        echo "<li><i>" . $listingdescription . "</i></li>";
                        echo "<li style='float:right;'>By: " . $firstname . " " . $lastname . "</i></li>";
                        echo "</ul>";
                        echo "<hr width='80%' noshade='1'>";   

                      }
                      mysqli_free_result($result);
                    } 
                  }                                     
                  while (mysqli_next_result($conn));                     
                }

但是,当我开始运行它时,页面会加载,但结果不会显示。其目的是能够显示列表详细信息表中的列表详细信息,该列表详细信息表按用户表中的完整名称列出。两个表将user username列作为公共键。

g0czyy6m

g0czyy6m1#

像许多学习者一样,你使用了错误的工具,仅仅是因为你不知道正确的工具。
您不需要一个多查询(实际上从来都不需要),而是一个连接。
只需将两个monster查询重写为这样的连接

$searchquery="SELECT l.*, u.`user-username`, u.`user-firstname`, u.`user-lastname`
FROM `listing-details` l, user u
WHERE l.`user-username`=u.`user-username`
AND `listing-address` LIKE ...";

另外,你的报价是错误的。

相关问题