2012-08-31 116 views
2

我有一個數組。Foreach循環與MySQL查詢

$select_crm=mysql_query("select * from party_details where subcaseid='$under_row[partyid]'"); 
$select_array=array($select_crm); 
if(mysql_num_rows($select_crm)>0) 
{ 
    foreach($select_array as $v) 
    { 
    $fetch_crm=mysql_fetch_array($v); 
    echo $fetch_crm['party_name']; 
    echo $fetch_crm['partyid'];`` 
    } 
} 

但它不能正常工作。 $select_crm有兩行,但它只打印一個。

回答

0

您的代碼遍歷僅2上面你行明確創建有一個元素;-)

您弄丟了使用mysql_fetch_assoc陣列。查看the manual page以及您的解決方案的示例代碼。 (當你在那裏時,注意到紅色的大紅色通知;請繼續閱讀!)。

6

$select_array是一個只有一個元素的數組:查詢結果資源。因此foreach循環將只運行一次,只打印第一個項目。

你的循環應該像每一個教程在那裏:

while($fetch_crm = mysql_fetch_assoc($v)) { ... } 

注意fetch_assoc,不fetch_array。如果您不打算使用數字指數,則撥打fetch_array毫無意義。

1

就我而言,你必須這樣做:

$select_crm=mysql_query("select * from party_details where subcaseid='{$under_row['partyid']}'"); 
if(mysql_num_rows($select_crm)>0) 
{ 
    while ($select_array = mysql_fetch_assoc($select_crm)) 
    { 
    echo $select_array['party_name']; 
    echo $select_array['partyid']; 
    } 
} 
1

不使用的foreach,你應該以這種方式使用,

$select_crm= mysql_query("select * from party_details where subcaseid='$under_row[partyid]'"); 
while($result = $db->fetchByAssoc($select_crm)) 
{ 
    echo $result ['party_name']; 
    echo $result ['partyid']; 
} 
0

試試這個

$result = mysql_query("your select query"); 
while($row = mysql_fetch_assoc($result)){ 
echo $row['columnNam1']; 
echo $row['ColumnName2']; 
} 
0

使用此項:

$select_crm=mysql_query("select * from party_details where subcaseid='$under_row[partyid]'"); 
while($row=mysql_fetch_assoc($select_crm)) { 

echo $row['party_name']; 

echo $row['party_id']; 

} 
1

試試這個:

<?php 
$select_crm = 
mysql_query("select * from party_details where subcaseid='$under_row[partyid]'"); 

while($select_array = mysql_fetch_assoc($select_crm)) 
{ 
    echo $select_array['party_name']; 
    echo $select_array['partyid']; 
    } 
?> 

希望這將有助於。 快樂編碼!