2011-06-01 123 views
0

我在我的PHP EOF中使用。PHP EOF只顯示循環中的一個結果

問題是,它只顯示來自mySQL循環的一個項目。

它只顯示最後的結果。

這在EOF中是否有必要?或者我可以避免這個問題?

感謝

function getYiBAdminBanner() { 
global $site; 
global $dir; 
$queryYiBmenu = "SELECT * FROM `(YiB)_cPanel_Menu` WHERE Type = 'top'"; 
$resultYiBmenu=mysql_query($queryYiBmenu) or die("Errore select menu: ".mysql_error()); 
$countYiBmenu = mysql_num_rows($resultYiBmenu); 
while($rowYiBmenu = mysql_fetch_array($resultYiBmenu)) { 
$menu = "<div id=\"menu\" style=\"display:none;\"><li><a href=\"".$site['url'].$rowYiBmenu['linkHref']."\" onMouseOut=\"javascript: $('#menu').hide('9000');\"><img class=\"imgmenu\" src=\"".$site['url'].$rowYiBmenu['linkIcon']."\">".$rowYiBmenu['linkTitle']."</a></li></div>"; 
} 
if($countYiBmenu <= 0){ 
$menu = "No Modules Installed"; 
} 
$bannerCode .= <<<EOF 
<div style="width:520px; background-color: #EEE; height:30px;"> 
{$menu} 
</div> 
EOF; 
return $bannerCode; 
} 
+0

請問您可以發佈您的代碼嗎? – 2011-06-01 21:11:05

+0

你是通過mySQL結果還是文件循環? – wired00 2011-06-01 21:12:39

+0

我正在循環查看mySQL結果。沒有代碼可以顯示。問題很簡單。我應該發佈兩頁代碼嗎? @Felix Kling我不認爲你需要這樣的事情。 – 2011-06-01 21:18:36

回答

2

編輯:基於您的代碼示例:儘量$menu .= <your result>$menu = $menu . <your result>而非$menu = <your result>。但它目前還不清楚,如果你期望多個結果或不

如果你是通過一個MySQL的結果循環查詢,你應該做這樣的事情:

$query = sprintf("SELECT firstname, lastname, address, age FROM friends WHERE firstname='%s' AND lastname='%s'", 
    mysql_real_escape_string($firstname), 
    mysql_real_escape_string($lastname)); 

// Perform Query 
$result = mysql_query($query); 

while ($row = mysql_fetch_assoc($result)) { 
    echo $row['firstname']; 
    echo $row['lastname']; 
    echo $row['address']; 
    echo $row['age']; 
} 

http://php.net/manual/en/function.mysql-query.php

如果你是循環通過文件的內容,你應該做這樣的事情:

<?php 
$file = fopen("welcome.txt", "r") or exit("Unable to open file!"); 
//Output a line of the file until the end is reached 
while(!feof($file)) 
    { 
    echo fgets($file). "<br />"; 
    } 
fclose($file); 
?> 

http://www.w3schools.com/php/php_file.asp

php manual fopen

我希望幫助,但你的問題不是如何/在您使用EOF非常清楚。

+0

我的循環方式與您在第一個解決方案中所做的相同。我只有一行顯示。所以我然後用這種方式將變量賦值給EOF {變量}。它只顯示一個結果,最後一個。它沒有顯示mySQL循環給出的所有結果 – 2011-06-01 21:25:55

+0

'我只有一行顯示' - 你的意思是'我只有一個COLUMN來顯示'嗎?而且你有許多行循環,但只有最後一行顯示?你真的需要發佈與循環相關的代碼。如果沒有看到代碼,「調試」你的問題基本上是不可能的,因爲你會提到「EOF」,但我不知道那是什麼。我想可能你每次循環都會重新分配變量。您可能需要將變量存儲爲數組,如下所示:'$ myVariable [] = $ row [「YOURCOLUMNAME」];' – wired00 2011-06-01 21:31:51

+0

...如果在循環中有這樣的內容:'$ myVariable = $ row [「YOURCOLUMNNAME」];'當然,每當你遍歷結果行時,變量將被最後一行覆蓋,直到你到達最後並且它被設置爲最後一個結果。因此,您可能需要'$ myVariable [] = $ row [「YOURCOLUMNAME」];'設置爲一個數組。 – wired00 2011-06-01 21:35:11