【问题标题】:Querying Array in MYSQL在 MYSQL 中查询数组
【发布时间】:2013-11-20 05:46:14
【问题描述】:

我目前正在使用 Jquery 开发一个拖放项目框。 Jquery 选择框中的项目 ID 并将其作为数组发送到计算页面 (calc.php)。

使用这个数组变量(项目 ID)我希望使用查询/函数从数据库中提取价格。

我觉得我当前的代码有点基础,可能过于复杂,或者更糟糕的是无法正常工作,这一直是个问题。

可拖动的 Jquery

 var full = $("#calcid > .drag").map(function() {
    return $(this).attr("id");
}).get();
var listurl = "calc.php?a="+full;
$("#itemnotice").load(listurl);
},

以下代码列出了“calcid”中的 ID,然后将它们放入数组中。然后将该数组发送到 calc.php 并加载到 div itemnotice(将显示价格)。

calc.php页面如下:

<?php
$grablist = str_split(mysql_real_escape_string(stripslashes($_GET['a'])));
foreach ($grablist as $newlist) {
$costquery = mysql_query("SELECT * FROM `values_catalogue` WHERE `id` IN($newlist)")or die(mysql_error());
$row = mysql_fetch_array($costquery);
$newtotal = $cost_cookie + $row['value'];
}
echo "$newtotal coins";
?>

Calc.php 适用于第一个拖放项目,但之后出现以下错误:

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 ')' 附近使用正确的语法

真的很想简化上面的代码,并感谢您的帮助。

【问题讨论】:

    标签: javascript php jquery mysql arrays


    【解决方案1】:

    假设 ID 是数字,

    $ids = implode(',', $newlist);
    mysql_query("SELECT * FROM `values_catalogue` WHERE `id` IN($ids)");
    

    上面的代码可以工作。

    这里的建议:mysql_* api 已被弃用。切换到 mysqli_* 函数。

    【讨论】:

      【解决方案2】:
       $ids = join(',', $newlist);
       $res=mysql_query("SELECT * FROM `values_catalogue` WHERE `id` IN($ids)");
      

      【讨论】:

        猜你喜欢
        • 2020-08-12
        • 2012-07-04
        • 2014-01-16
        • 2015-02-11
        • 2013-09-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-14
        相关资源
        最近更新 更多