0

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.

1
  • 3
    I suspect you need to add spaces in your second query around the table name. But you should be able to see exactly what the problem is by checking the return value of mysqli_query(), and looking at mysqli_error() Commented Oct 16, 2013 at 15:39

1 Answer 1

1

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));
}
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.