2013-10-16 186 views
0

我有多个表加入到结果中用于第二个查询并在第一个结果中嵌套第二个结果。在第二个查询中使用来自第一个mysqli查询的数据并嵌套结果

我使用下面的代码:

$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>"; 
} 

这是给我下面的错误:警告:mysqli_fetch_array()预计参数1被mysqli_result,在/ home /含量定的boolean /11798395分之95/ html/results/info_mysqli.php on line 59

这与我的results2查询有关。有人可以建议我做错了什么。

谢谢。

+3

我怀疑你需要在周围的表名你的第二个查询添加空格。但是你应该能够通过检查mysqli_query()'的返回值并查看'mysqli_error()'来查看问题究竟是什么。 – andrewsi

回答

1

变化:

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

到:

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