首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Php搜索结果

Php搜索结果
EN

Stack Overflow用户
提问于 2018-09-29 04:59:39
回答 1查看 0关注 0票数 0

我想用3个表显示数据库中的一些数据:

1 =用户,2 =商店,3 =产品

我有2个注册用户,他们每个添加1个产品,

在我的索引页面中,我搜索了:

代码语言:javascript
复制
<?php
$conn = mysqli_connect("localhost", "root", "root", "dbname");

if(mysqli_connect_errno()){
    echo "Failed to connect: " . mysqli_connect_error();
}


error_reporting(0);
$output = '';

if(isset($_GET['q']) && $_GET['q'] !== ' '){

$searchq = $_GET['q'];

$q = mysqli_query($conn, "SELECT * , ( 6371 * acos( cos( radians(40.639339) ) * cos( radians( lat ) ) * cos( radians( lon ) - radians(22.853514) ) + sin( radians(40.639339) ) * sin( radians( lat ) ) ) ) AS distance FROM products WHERE item LIKE '%$searchq%' HAVING distance < 20 ORDER BY distance LIMIT 0 ,20;") or die(mysqli_error());

$q2 = mysqli_query($conn, "SELECT products.*, stores.* FROM products INNER JOIN stores ON products.userid=stores.userid;") or die(mysqli_error());

$c = mysqli_num_rows($q);
if($c == 0 ){
$output = 'No search results for <b>"' . $searchq . '"</b>';
} else {
    while (($row = mysqli_fetch_array($q)) && ($row2 = mysqli_fetch_array($q2))) {  
        $userid = $row['userid'];
        $item = $row['item'];
        $lat = $row['lat'];
        $lon = $row['lon'];
        $price = $row['price'];
        $storename = $row2 ['storename'];
        $imagepath = $row['imagepath'];
        $distance = $row['distance'];
        $description = $row['description'];
        echo "<div>";
        echo "<h3>$item</h3>";
        echo "<h3>$price</h3>";
        echo "<h3>$storename</h3>";
        echo "<img src='$imagepath' width=60>";
        echo "<h3>$description</h3>";
        echo "<span>$distance</span> | <a href='http://www.google.com/maps/place/$lat,$lon' target='_blank'>Προβολή Χάρτη</a> | <a href='public_view.php?ID={$row['userid']}'>Ιστοσελίδα καταστήματος</a>";         
        echo "</div>";
        echo "<br>";
        }}}
    else {
    header("location: ./");
    }
    print("$output");
mysqli_close($conn);
?>

当我执行它时,我从我的位置获得最接近的项目,但是连接方法不起作用。它返回了错误的值。

这是正确的方法还是2变量(q-q2)必须在一个?

EN

回答 1

Stack Overflow用户

发布于 2018-09-29 14:39:10

更改SQL查询

代码语言:javascript
复制
"SELECT * FROM products AS pr JOIN stores AS st ON pr.userid=st.userid"

编辑:

我建议你这样做:

代码语言:javascript
复制
SELECT * , ( 6371 * acos( cos( radians(40.639339) ) * cos( radians( lat ) ) * cos( radians( lon ) - radians(22.853514) ) + sin( radians(40.639339) ) * sin( radians( lat ) ) ) ) AS distance FROM products AS pr JOIN stores AS st ON pr.userid = st.userid WHERE pr.item LIKE '%$searchq%' HAVING distance < 20 ORDER BY distance LIMIT 0 ,20
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100002808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档