5

我正在使用 Sugar Pro 6.1,想知道如何从产品表中检索所有带有 id 的产品。我正在尝试使用以下代码

$sql = "SELECT id, name FROM products order by name"; 
$result = $GLOBALS["db"]->query($sql);
$products = $GLOBALS["db"]->fetchByAssoc($result);

但它总是只返回第一条记录。

是否可以获取所有带有 id 的产品以在 html 下拉列表中显示它们,我想在 javascript 文件中显示该下拉列表,这就是我使用 ajax 调用和在单独的 php 文件中使用上述代码的原因将输出返回给 ajax 调用。

任何帮助将不胜感激!

4

3 回答 3

8

fetchByAssoc() 一次只抓取一条记录。相反,您需要像这样通过调用 fetchByAssoc() 进行迭代......

$sql = "SELECT id, name FROM products order by name"; 
$result = $GLOBALS["db"]->query($sql);
while ( $product = $GLOBALS["db"]->fetchByAssoc($result) ) {
     $products[] = $product;
}
于 2012-08-30T12:59:47.033 回答
6

您需要排除已删除的产品。

$sql = "SELECT id, name FROM products WHERE deleted=0 order by name";
$result = $GLOBALS["db"]->query($sql);
while ( $product = $GLOBALS["db"]->fetchByAssoc($result) ) {
     $products[] = $product;
}
于 2012-08-31T12:08:36.570 回答
2

尽管我同意 Pelish8 发布的答案。但这也是从数据库中获取数据的另一种方式

global $db;
$sql   =    "SELECT id, name FROM products WHERE deleted=0 order by name";
$result    =    $db->query($sql);
while($product    =    $db->fetchByAssoc($result)){
    $products[] = $product;
}
于 2013-09-04T05:50:33.027 回答