2012-08-10 46 views
-2

我試圖呼應了一定的成效 這裏$阿迪亞是一個包含多個值 和$ VAR3還包含多個值 而是一個數組,當我呼應它,它顯示只有一個值PHP回聲在while循環的多變量

請找出我在做什麼錯

$query1= mysql_query("SELECT * FROM table WHERE col2 in ($aditya)"); 

while($var1=mysql_fetch_array($query1)) 
{ 

$var2=$var1['col1']; 
$var3=$var1['col2']; 
$var4=$var1['col3']; 

$name=mysql_query("SELECT f_name FROM table2 WHERE f_id=$var2"); 
$tname=mysql_fetch_array($name); 



    echo "</br>"."</br>"."<a style='color:blue' href=something.php?f_id=$var2 target=_BLANK >".$name['f_name']."</a>"." "."$var3"." "."("."$var4".")"; 

} 
+0

如果$阿迪亞是數組,那麼你應該改變你的SQL查詢這個樣子, $ QUERY1 =請求mysql_query(「SELECT * FROM表WHERE中(COL2」 .implode(」 ,',$ aditya)。「)」); – 2012-08-10 06:34:44

+0

轉儲while循環內的數組以查看它們包含的內容; '的print_r($ VAR1)' – Vishal 2012-08-10 06:34:58

+0

@MuthuKumaran ..我這樣做,在一個單獨的查詢 $阿迪亞=破滅( '',$ ids_array); – 2012-08-10 06:44:59

回答

0

最有可能的問題來自於您的查詢。 把echo $query1; exit;並嘗試在phpmyadmin如果你有這樣的。 看你從查詢得到什麼其他的方法是將:

echo $var1['col1'].", ".$var1['col2'].", ".$var1['col3']; 

在while()看到什麼ü從查詢得到。 這個問題不在肯定的回聲裏。

更新2

$query1 = (" 
    SELECT unique_ids, GROUP_CONCAT(whatuwant) 
    FROM table 
    WHERE col2 in ($aditya) 
    GROUP BY unique_ids 
"); 
+0

我認爲你應該把它作爲評論。 – Mageek 2012-08-10 06:32:17

+0

我會在一分鐘內編輯它作爲一個答案 – Martin 2012-08-10 06:33:41

+0

@馬丁這樣做,這是呼應,但它是相同的ID兩個差異屬性呼應單獨的記錄,我想連接這一點。 19,文本1,1 19,文本2,1 我想是19,文本1(1),文本2(1) – 2012-08-10 06:40:52

0

如果$阿迪蒂亞確實是一個數組,那麼它不可能使用它,你是在您的查詢的方式。 MySQL中期望的一個逗號分隔的元素列表,所以你可以在發生內爆PHP數組並把它喂到查詢:

$query1= mysql_query("SELECT * FROM table WHERE col2 in (" . implode(',', $aditya) . ")"); 

除此之外,你可能要考慮給你的變量更有意義的名稱,因爲你只會混淆自己和其他編程人員在你的項目上工作,如果你把它們命名爲$ var1,$ var2等。只是一個提示。

0

所以,很多事情可能是錯在這裏

A. $aditya沒有正確定義。如果它的一個數組,那麼你需要將它與implode結合,如果諾伊確認應該是其正確格式化

期望輸出這樣

SELECT * FROM table WHERE col2 IN (250, 220, 170); 

B. $name不是一個數組所以$name['f_name']是行不通的。您使用使用$tname['f_name']而不是

C.我認爲您需要更新您的問題與您的代碼的確切錯誤,因爲許多事情可以運行,我們無法遠程測試,例如。做一個表名table甚至存在擺在首位