2013-04-17 98 views
0

我有2个查询。 我正在应用第一个select查询,并使用my_fetch_array通过while循环获取结果,但是,在此期间,我正在使用另一个select查询,但是在那时我收到一个错误。错误while while循环中使用mysql查询获取以前的查询

我不能在这段时间内使用另一个选择吗?

$i = 1; 
$result1 = mysql_query("SELECT x, count(*) FROM table1 group by x ORDER BY count(*) desc"); 

while ($rowRes1= mysql_fetch_array($result1)) 
{ 
echo "<tr>"; 
echo "<td ALIGN=CENTER style=width:5%>" . $i . "</td>"; 
echo "<td ALIGN=CENTER style=width:40%>" . $rowRes1['0'] . "</td>"; 
echo "<td ALIGN=CENTER style=width:10%>" . $rowRes1['1'] . "</td>"; 

$result2 = mysql_query("SELECT x FROM data where x = $rowRes1['0'] ORDER BY y ASC LIMIT 1") 

while ($rowRes2= mysql_fetch_array($result2)) 
{ 
echo "<td ALIGN=CENTER style=width:10%>" .  $rowRes2['0'] . "</td>"; 
} 
$i++; 
} 
+4

一般提示:如果你得到一个错误,告诉我们错误是什么。第二个查询中的$ rowRes1 ['0']'是一个PHP语法问题 - 你不能在这样的双引号字符串中使用带引号的数组键。你也生成可怕的HTML。 'CETER'不是有效的对齐值,并且您的样式没有引用。您的两个查询也可以轻松地重写为单个查询。 –

+0

错误#1:在新代码中使用'mysql_query'。不要这样做。这是一个已被弃用的界面,将在未来版本的PHP中被删除。如果可以,请使用[PDO](http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for-database-access/)。错误#2:错误[SQL转义](http://bobby-tables.com/php)。 – tadman

+0

@MarcB非常感谢您的反馈。我是一名PHP新手,刚刚开始。 CENTER对齐值是一个得到纠正的错字。我还修复了双引号内的引用数组键。然而,你可以在单个查询中写两个查询(如果可能的话),因为我想用它作为参考。 – tony9099

回答

1

PHP无法在双引号字符串中解释包含数组访问器的字符串,如$ rowRes1 ['1']。

将数据存储在另一个变量中,如$ rowRes1Col = $ rowRes1 ['0'];并在字符串中使用它。

+0

这就是我做了什么,它的工作。 – tony9099