5

I am using Sugar Pro 6.1 and want to know that how can i retrieve all the products with their ids from the products table. I am trying with the following code

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

but it always returns only the first record.

Is it possible to grab all the products with their ids to display them in a html dropdown, i want to display that drop down in a javascript file thats why i am using the ajax call and in a seperate php file i am using the above code that returns the ouput to the ajax call.

Any help will be appreciated!

Sheikh Rahat Ali
  • 1,243
  • 7
  • 36
  • 61

3 Answers3

8

fetchByAssoc() only grabs one record at a time. Instead, you need to iterate thru calling fetchByAssoc() like this...

$sql = "SELECT id, name FROM products order by name"; 
$result = $GLOBALS["db"]->query($sql);
while ( $product = $GLOBALS["db"]->fetchByAssoc($result) ) {
     $products[] = $product;
}
jmertic
  • 2,193
  • 1
  • 12
  • 8
6

You need to exclude products that are deleted.

$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;
}
Pelish8
  • 109
  • 2
  • 8
2

Even though i agree with answer posted by Pelish8. But This is also the another way to fetch data form database

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;
}
Amitesh Bharti
  • 7,266
  • 3
  • 40
  • 45