CDubYaa
CDubYaa

Reputation: 45

Using data from first mysqli query in second query and nesting results

I have multiple tables I am joining to use in results for a second query and nesting the second results inside the first results.

I am using the following code:

$result = mysqli_query($con,"SELECT info.lotto_id, info.name, info.number_balls, info.number_bonus_balls, info.db_name, country.name_eng AS country, currency.name AS currency, currency.symbol AS symbol, next.draw_date AS next_draw, next.jackpot AS next_jackpot
FROM info
LEFT JOIN country ON info.country_id = country.id_country 
LEFT JOIN currency ON info.currency_id = currency.currency_id
LEFT JOIN next ON info.lotto_id = next.lotto_id
WHERE (info.active='1')
ORDER BY next_jackpot DESC");

while($lotto = mysqli_fetch_array($result))

{

    echo "<table border='0' width='600px' align='center'>";
    echo "<tr>";
    echo "<td>";
    echo "<h1>Results for:</h1>";
    echo "</td>";
    echo "<td align='right'>";
    echo "<p><img src='images/". $lotto['lotto_id'] ."_big.png' alt='". $lotto['name'] ." Results'/></p>";
    echo "</td>";
    echo "</tr>";
    echo "</table>";

$result2 = mysqli_query($con,"SELECT * FROM" .$lotto['db_name'].
"ORDER BY date DESC
Limit 3");

while($draw = mysqli_fetch_array($result2))

  {
    echo "<table class='results' align='center'>";
    echo "<tr>";
    $draw['display_date'] = strtotime($draw['date']);
$lotto['cols'] = $lotto['number_balls'] + $lotto['number_bonus_balls'];
    echo "<td class='date' colspan='".$lotto['cols']."'>".date('D M d, Y', $draw['display_date']). "</td>";

if ($draw[jp_code] < "1")
{
    echo "<td class='winner' align='center'>Jackpot Amount</td>";
}
else
{
    echo "<td class='rollover' align='center'>Rollover Amount</td>";
} 

It is giving me the following error: Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in /home/content/95/11798395/html/results/info_mysqli.php on line 59

This relates to my results2 query. Can somebody please suggest what I am doing wrong.

Thank you.

Upvotes: 0

Views: 833

Answers (1)

Glavić
Glavić

Reputation: 43552

Change:

$result2 = mysqli_query($con,"SELECT * FROM" .$lotto['db_name'].
"ORDER BY date DESC
Limit 3");

to:

$result2 = mysqli_query($con, "SELECT * FROM {$lotto['db_name']} ORDER BY date DESC LIMIT 3");
if ($result === false) {
    exit("Error: " . mysqli_error($con));
}

Upvotes: 1

Related Questions