虽然没有结果

时间:2011-05-10 20:48:36

标签: php

我在现有脚本中有以下查询 - 但它并不总是返回一个值,即使它应该基于数据库中的内容。它应该抓住的数据库中有很多东西 - 它们就在那里。

看不出有什么问题 - 但我几乎不再这样做了:)看到了什么?

$query = "SELECT id FROM xtags WHERE tag_id = '$tagid' ORDER BY RAND() Limit 2";
$result = mysql_query($query) or die(mysql_error());

while($row = mysql_fetch_array($result)){

            $query = "SELECT * FROM xtable WHERE id = '$row[id]'";
            $result = mysql_query($query) or die(mysql_error());
            $row2 = mysql_fetch_assoc($result);
            echo $row2[title];

}

5 个答案:

答案 0 :(得分:4)

$ result正在循环内部和外部使用,尝试在内部创建一个新变量,而不是重用外部变量。

答案 1 :(得分:2)

您正在重用循环内的$result变量,该变量会覆盖while条件下使用的值。在循环内使用$query$result的其他名称。

答案 2 :(得分:0)

我不知道是否可以,但你使用$ result两次,一次在“while”之前,另一次在“while”之内。

我会亲自拆分字符串和变量$ row。

为什么不使用var_dump()来查看$ row和其他变量???

答案 3 :(得分:0)

我不明白你想要做什么,但试试这个:

$query = "SELECT id FROM xtags WHERE tag_id = '".$tagid."' ORDER BY RAND() Limit 2";
$result = mysql_query($query) or die(mysql_error());

while($row = mysql_fetch_array($result)){

            $query2 = "SELECT * FROM xtable WHERE id = '".intval($row[id])."'";
            $result2 = mysql_query($query2) or die(mysql_error());
            $row2 = mysql_fetch_assoc($result2);
            echo $row2[title];

}

答案 4 :(得分:0)

问题解决了 - 做了一个连接声明。