【问题标题】:PHP - MySql SELECT WHERE value = string JSONPHP - MySql 选择 WHERE 值 = 字符串 JSON
【发布时间】:2017-11-11 09:05:41
【问题描述】:

通过 cURL 连接,我可以从放置在远程服务器上的 Json 文件中获取数据。特别是一些产品的代码,感谢foreach

foreach($data['results'] as $key=>$val){ 

$codici_hotel = $val['hotel_code'];
echo $codici_hotel.",";

 }

我可以在视频中看到:

1074d0,19f726,1072ba,107104,183444,112438,15d8ab,1b326e,19d885,189b95,1071bf,107155,193e61,10aab2,138752,18dd7d,19d7f9,117b0d,1071b8,1398c4,107039,110851,107124,110669

现在我需要使用该字符串在本地数据库上运行选择,例如:

$sql = "SELECT * FROM hotels WHERE code = ('$codici_hotel')";

什么是正确的 sql 字符串? 感谢您的帮助

使用的代码更新

 $codici_hotel_arr = array();
foreach($data['results'] as $key=>$val){ 
$codici_hotel_arr[] = $val['hotel_code'];
 }
$codici_hotel =  "'".implode(",",$codici_hotel_arr)."'";
$conn2 = new mysqli($servername, $username, $password, $dbname);
if ($conn2->connect_error) {
    die("Connection failed: " . $conn2->connect_error);
} 
$sql2 = "SELECT name FROM hotels WHERE code IN ('$codici_hotel')";

$result2 = $conn2->query($sql2);

if ($result2->num_rows > 0) {
    // output data of each row
    while($row2 = $result2->fetch_assoc()) {
       $nome_hotel =  $row2["name"] ;

    }
} else {
    echo "0 results";
}
$conn2->close();

    echo $nome_hotel;

【问题讨论】:

    标签: php mysql arrays json where


    【解决方案1】:

    您必须将所有代码转换为包含' 的字符串。然后使用mysql的IN子句。如下更改您的代码

    $codici_hotel_arr = array();
    foreach($data['results'] as $key=>$val){ 
    
    $codici_hotel_arr[] = $val['hotel_code'];
    
     }
    
    $codici_hotel =  "'".implode(",",$codici_hotel_arr)."'";
    $sql = "SELECT * FROM hotels WHERE code IN ($codici_hotel)";
    

    【讨论】:

    • 您必须道歉,但我的请求有误。我没有指定应该为“$codes_hotel”返回的每个产品代码进行 sql 搜索查询。有可能吗?
    • 你测试过我的代码吗?我的代码将返回$codes_hotel中指定的所有代码的所有数据
    • 是的。我已经测试了您的代码,但结果为 0。准确地说,产品代码也可能不存在于我的数据库中。如何在数据库中仅获取 $codici_hotel 的 sql 数据?
    • 你有没有在你的sql查询中把=改成IN
    • 感谢您的报告,我已经用我正在使用的代码更新了帖子。它返回 0 条记录。
    猜你喜欢
    • 1970-01-01
    • 2016-01-25
    • 2016-06-25
    • 2020-11-03
    • 1970-01-01
    • 2020-03-02
    • 2011-11-14
    • 2012-03-17
    • 1970-01-01
    相关资源
    最近更新 更多