2015-09-23 152 views
0

我在另一个内部运行一个,但第二个只运行一次为什么以及如何修复它。我也尝试过,但只能再次运行一次。PHP - Loop内部循环第二个循环只运行一次

$sql = "SELECT DISTINCT season FROM search WHERE link = '$getid' Order by id asc"; 
$result = mysql_query($sql, $conn) or trigger_error("SQL", E_USER_ERROR); 
while ($list = mysql_fetch_assoc($result)) 
{ 
    $season = $list['season']; 
    $sql = mysql_query("SELECT * FROM search WHERE link = '$getid' and season = '$season'"); 
    $episodes = mysql_num_rows($sql); 
    echo '1st'; 
    $sqls = "SELECT * FROM search WHERE link = '$getid' and season = '$season' Order by id asc"; 
    $results = mysql_query($sqls, $conn) or trigger_error("SQL", E_USER_ERROR); 
    while ($lists = mysql_fetch_assoc($results)) 
    { 
     $episode = $lists['episode']; 
     echo'2nd'; 
    } 
} 
+0

你应该把你的mysql_fetch_assoc的条件之外,以提高性能为每次循环,mysql_fetch_assoc正在每次评估的时间。但我确定这不是真正的问题。 – cylua2

+0

您是否有多个匹配$结果的行。还要检查$结果的行数。 注意:现在它的时间去mysqli @lmBigNoob –

+0

$集的价值是什么? – Engin

回答

3

要覆盖变量,使用不同的:

$sql = "SELECT DISTINCT season FROM search WHERE link = '$getid' Order by id asc"; 
$result = mysql_query($sql, $conn) or trigger_error("SQL", E_USER_ERROR); 
while ($list = mysql_fetch_assoc($result)) 
{ 
    $season = $list['season']; 
    $sql2 = mysql_query("SELECT * FROM search WHERE link = '$getid' and season = '$season'"); 
    $episodes = mysql_num_rows($sql2); 
    echo '1st'; 
    $sqls = "SELECT * FROM search WHERE link = '$getid' and season = '$season' Order by id asc"; 
    $results2 = mysql_query($sqls, $conn) or trigger_error("SQL", E_USER_ERROR); 
    while ($lists2 = mysql_fetch_assoc($results2)) 
    { 
     $episode = $list2['episode']; 
     echo'2nd'; 
    } 
} 
+0

这不是问题看起来更好看我不包括变量 – ImBigNoob