2011-08-18 28 views
-1

我打算通過函數來​​完成此操作。我想在數據庫中找到的每個項目要呼應出作爲一個列表使用php函數列出項目

如。物品1
ITEM2
項目3
ITEM4

我知道我在想念的東西,但它是我百思不得其解。現在我只看到一個列表,並在 刷新另一項顯示替換其他項目。 PLZ的幫助和感謝

function get_list() { 
$id = mysql_real_escape_string(@$_GET['id']); 
$get_list = array(); 
$bar = mysql_query(" SELECT bar.* FROM bar WHERE bar.b_id = '$id' ORDER BY rand()"); 
while($kpl = mysql_fetch_assoc($bar)){ 
$get_list[] = array('videoid' => $kpl['videoid'], 
       'name' => $kpl['name'], 
       'description' => $kpl['description'], 
       'type' => $kpl['type'], 
       'bev' => $kpl['bev'],   
); 
} 
foreach ($get_list as $get_list); 
return $get_list; 
} 
?> 
<?php 
$gkp_list = gkp_list(); 
foreach ($gkp_list as $gkp_list); 
if (empty($gkp_list)){ echo 'no video'; } 
else { 
echo '<p>$gkp_list['name']. '<br/></p>';} 
?> 
+1

我不知道爲什麼你有get_list函數內部的空餘的foreach。另外外部foreach很奇怪,我認爲最好使用不同的變量名稱作爲數組值$ gkp_list,例如foreach($ gkp_list as $ val),並且再次在末尾放置一個分號以使foreach成爲空! –

回答

2

這裏有一些主要的語法問題。

function get_list() { 
    $id = mysql_real_escape_string(@$_GET['id']); 
    $get_list = array(); 
    $bar = mysql_query(" SELECT bar.* FROM bar WHERE bar.b_id = '$id' ORDER BY rand()"); 
    while($kpl = mysql_fetch_assoc($bar)){ 
     $get_list[] = $kpl;   
    } 
    return $get_list; 
} 

$gkp_list = get_list(); 
if (empty($gkp_list)) { 
    echo 'no video'; 
} else { 
    foreach ($gkp_list as $gkp_item) { 
     echo '<p>' . $gkp_item['name']. '<br/></p>'; 
    } 
} 
?> 
  1. foreach目的是循環一個數組並做與每個價值的東西。不要使用的foreach如果你用數組作爲一個整體的工作(在這種情況下,它返回)
  2. 的foreach不會在年底有一個分號,它通常有一個大括號({)。
  3. 你並不需要手動所有的數組索引的複製在while循環,因爲所有的指標都是一樣的。
  4. 對於輸出string格式錯誤,您必須小心。使用語法高亮編輯器。
  5. foreach這兩個變量的名稱必須是不同的。一個是指數組,一個是指該鍵的值。