2011-11-03 49 views
-3
$selectra_result = mysql_query("SELECT * FROM `my_selectra` WHERE user_id='$user_id'") or die(mysql_error()); 

while($row = mysql_fetch_array($selectra_result)) { 
    $product_id = $row['product_id']; 
    $namep[] = $product_name= $row['product_name']; 
    $linkp[] = $product_permalink = $row['product_permalink']; 
    $imgpp[] = $product_image_path = $row['product_image_path'];  
} 

    foreach($namep as $pname => $prodname){ 
     foreach($linkp as $plink => $prodlink) { 
     foreach($imgpp as $ppath => $prodpath) { 

     $res1 = "<a href='$prodlink'><p>$prodname</p></a>"; 
     $res2 = "<a href='$prodlink'><img src='$prodpath'/>"; 

      } 
     }  
     } 
     echo $res2.''.$res1; 

} 

我想使用foreach顯示來自my_selectra表的數據,不幸的是它只顯示一個數據時echo。Foreach PHP只有一個數據出現時回聲

+8

我不' t甚至不知道從哪裏開始... – DampeS8N

+9

有沒有一個標誌爲'哦,親愛的神我的眼睛'? – Polynomial

+0

我有一種感覺,應該有一個'foreach',而不是三個。 –

回答

3

你的代碼非常複雜......你不需要3個數組來抓取你想要的數據,也不需要一個三重嵌套的foreach循環結構。嘗試是這樣的:

$results = array(); 
while($row = mysql_fetch_array($selectra_result)) 
{ 
    $product_id = $row['product_id']; 
    $results[] = array($row['product_name'], $row['product_permalink'], $row['product_image_path']); 
} 

$res1 = $res2 = ''; 
foreach($results as $row) 
{ 
    $res1 .= "<a href='" . $row[1] . "'><p>" . $row[0] . "</p></a>"; 
    $res2 .= "<a href='" . $row[1] . "'><img src='" . $row[2] . "'/>"; 
} 
echo $res1 . $res2; 
+0

感謝兄弟,你救了我:) – user1028189

+1

也許他救了你一次,但我真的感到同情你的僱主。你在你的頭上,在你的深度之外。請尋求專業導師! –

1

您繼續設置每個循環$res1$res2

我覺得你的意思是在循環之前是$res1 = $res2 = '';,然後在$res1 .= '...'; $res2 .= '...';之內循環。

+2

這個答案沒有解決所有問題。 – DampeS8N

1

你的回聲在錯誤的範圍內。將它直接放在$ res2變量的下面。

1

你的代碼有很多雙重聲明和變量轉換。我不確定你是否正確理解了基本的編程範例。說實話,你應該回到基礎。

$selectra_result = mysql_query("SELECT * FROM `my_selectra` WHERE user_id='".intval($user_id)."'") or die(mysql_error()); 

while($row = mysql_fetch_array($selectra_result)) { 
     $product_id = $row['product_id']; 
     $product_name = $row['product_name']; 
     $product_image_path = $row['product_image_path']; 
     $product_permalink = $row['product_permalink']; 

     echo "<a href='$product_permalink'><p>$product_name</p></a>"; 
     echo "<a href='$product_permalink'><img src='$product_image_path'/>"; 
} 

這更接近你以後的樣子。

0

您所查詢的最有可能從數據庫中選擇只有一行(如果ID列是唯一的)。

爲什麼每個數組的循環(foreach)?考慮到所有數組都是在同一個循環(while)中創建的(雖然這不是很清楚,因爲你沒有在提供的代碼中定義變量),所以不需要這樣做......