php - 改进 PHP 数组以在 AJAX 上使用

标签 php jquery mysql arrays ajax

我使用 AJAX 创建了一个 PHP 文件来填充页面,但我找不到问题的解决方案。

这是我的 PHP 及其输出:

$result = mysql_query("SELECT id, product, picture FROM table1 ORDER BY id DESC");

$products = array();
while($product = mysql_fetch_array($result, MYSQL_ASSOC)) {
    $products[] = ($product);
}

$json = json_encode($products);
$output = isset($_GET['callback']) ? "{$_GET['callback']}($json)" : $json;
echo $output;

这将打印:

[{"id":"5","product":"product5","picture":"picture5.jpg"},
{"id":"4","product":"product4","picture":"picture4.jpg"},
{"id":"3","product":"product3","picture":"picture3.jpg"},
{"id":"2","product":"product2","picture":"picture2.jpg"},
{"id":"1","product":"product1","picture":"picture1.jpg"}]

我想使用另一个查询在此输出上添加字段“In_Stock”以输出如下内容:

[{"id":"5","product":"product5","picture":"picture5.jpg","in_stock":"yes"},
{"id":"4","product":"product4","picture":"picture4.jpg","in_stock":"no"},
{"id":"3","product":"product3","picture":"picture3.jpg","in_stock":"yes"},
{"id":"2","product":"product2","picture":"picture2.jpg","in_stock":"yes"},
{"id":"1","product":"product1","picture":"picture1.jpg","in_stock":"no"}]

我的问题是:是否可以使用数组的值(在第一个 While 内)在另一个表中进行搜索,将此值添加到产品数组中并在上面的输出上保持相同的“布局”?

编辑:

这些是我的表格:

TABLE1

id
product
picture

还有第二个

TABLE2

id  
user
product_id
in_stock

同一产品可能有不同的库存,具体取决于用户...

最佳答案

是的,您可以执行另一个查询,但更改第一个查询以包含您需要的所有数据可能更有意义,如下所示:

 mysql_query("SELECT table1.id, table1.product, table1.picture, table2.in_stock 
              FROM table1 
              LEFT JOIN table2 ON (table1.id = table2.product_id 
              AND table2.user = " . intval($_SESSION['user']) . ") 
              ORDER BY table1.id DESC");

编辑:根据您的评论从 session 中添加用户。我使用 intval 因为我假设您使用整数作为用户的 id,并且我不知道 $_SESSION 值是如何设置的 - 如果它来自用户输入,那么它应该是逃脱了。

顺便说一句,mysql_query 已弃用,您应该查看 mysqli 和准备好的语句。

关于php - 改进 PHP 数组以在 AJAX 上使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24943668/

相关文章:

javascript - 如何在 chart.js 中使用 JSON 数据?

php - 检查下一行是否重复

javascript - 变量上的 jQuery 选择器?

mysql - mssql 到 mysql 查询转换

mysql - 带有虚拟数据的 UNION SELECT

mysql - 计算多个值的不同行数

php - 如何从客户端终止 php 连接?

php - Laravel:表单文件上传失败 - 检测到不正确的类型

javascript - Fullpage.js - 根据 div 是否具有特定类来设置 'setFitToSection' 选项的值

php - 在 CSS 中选择具有相同父项的多个子项