2009-10-05 76 views
1

這是我PHP函數返回SQL結果

function GetEventsList(){ 
    $result = mysql_query("SELECT * FROM `events`") or trigger_error(mysql_error()); 
    while($row = mysql_fetch_array($result)){ 
    foreach($row AS $key => $value) { $row[$key] = stripslashes($value); } 
    $id = $row['id']; 
    $en = $row['name']; 
    $endt = $row['date']; 
    $push = "<option value=$id>$en - $endt</option>"; 
    return $push; 
    } 
    } 

它唯一的返回1分的結果,當有3個表中

回答

4

那是因爲你從函數在最後回國第一次迭代。嘗試:

function GetEventsList() { 
    $result = mysql_query("SELECT * FROM `events`") or trigger_error(mysql_error()); 
    $push = ''; 
    while ($row = mysql_fetch_array($result)) { 
    foreach($row AS $key => $value) { 
     $row[$key] = stripslashes($value); 
    } 
    $id = $row['id']; 
    $en = $row['name']; 
    $endt = $row['date']; 
    $push .= "<option value=$id>$en - $endt</option>"; 
    } 
    return $push; 
} 

在旁註:如果您使用了很好的格式化/縮進功能,您將更容易發現。您是否確定需要使用stripslashes()

+0

嘿,我該如何糾正,以實現結果即時尋找? – mrpatg 2009-10-05 01:53:38

+0

感謝您的有用信息! – mrpatg 2009-10-05 01:55:38

2

如果我正確地閱讀代碼,則返回$ push;過早退出while循環。只有在收集到所有結果並存儲之後,纔想返回。

0

在你的foreach循環中使用echo $ push;或者將選項元素的每次迭代放入數組中,然後根據需要插入數組。