I'm trying to perform a single query to the db, in which I am using an array of IDs to insert in the WHERE clause. So far I've had mixed results, and this is the closest I've gotten to achieve what I am looking for.
$prodId = array(17754, 17755, 17756);
$ids = implode(",",$prodId);
$qry = "SELECT clean_url AS url FROM xcart_clean_urls WHERE resource_id IN ($ids) ";
$resultTst = db_query($qry);
while ($result_row = db_fetch_array($resultTst)) {
$urls[] = $result_row;
if ( $urls ) {
echo $urls[0]['url'] . '<br>';
echo $urls[1]['url'] . '<br>';
echo $urls[2]['url'] . '<br>';
}
}
THE RESULTS I GET (I get the actual urls):
urlforid17754
urlforid17754
urlforid17755
urlforid17754
urlforid17755
urlforid17756
How can I perform the same functionality, but only retrieve the 3 urls once?
Thank you all.
You are trying to echo 3 rows each time through the loop. Move them out of the loop or just echo $result_row
. If you don't need the echo then just use $urls
after the loop. The URL seems to be in the url
column so echo that:
while ($result_row = db_fetch_array($resultTst)) {
echo $result_row['url'];
$urls[] = $result_row;
}
//to see what $urls contains
print_r($urls);
I don't know what you want $urls
to contain, but if you only want a single dimension then use this inside the loop instead:
$urls[] = $result_row['url'];