2013-12-21 40 views
0

我的代碼:顯示來自不同行的多個值與同一列中的值

<?php 
require_once('auth.php'); 
require_once('connection.php'); 

$value1 = $_POST['value1']; 
$qry=mysql_query("SELECT * FROM table WHERE (`value1` LIKE '%".$value1."%')") or die(mysql_error()); 
if(mysql_num_rows($qry) > 0){ 
while ($result = mysql_fetch_array($qry)){ 
$value1 = $result['value1']; 
$value2 = $result['value2']; 
}}else{die ("can't find ".$value1."");} 
?> 

    <br /> 
    <table width="700" border="0"> 
    <tr> 
     <td colspan="2" align="center"><strong>Info for <?php echo $value1; ?></strong></td> 
    </tr> 
    <tr> 
     <td width="100">Some text:</td> 
     <td width="590"><?php echo $value2;?></td> 
    </tr> 

的代碼是偉大的工作時,只有一個與值1的相同值的行。如果有2,3行或更多行的value1值相同,那麼腳本僅顯示查找到的值中我表中最後一行的值。我希望它顯示來自所有查詢行的條目的單獨表格。 我在網上搜索的幫助,但我能找到的是如何檢索我的數據庫中的值,對我沒有幫助

+0

把你的HTML while循環 – bansi

+0

你或許在尋找這樣的事情裏面:http://pastie.org/8566976? –

+0

我試過了,但是它弄糟了洞頁。我知道這是可能的,但在凌晨5點,在我的頭撞在牆上的那麼多小時之後,我想不出有辦法做到這一點。 – user3124519

回答

1

你應該把你的html塊移到while循環中。試試這個

<br /> 
    <table width="700" border="0"> 
<?php 
if(mysql_num_rows($qry) > 0){ 
    while ($result = mysql_fetch_array($qry)){ 
    $value1 = $result['value1']; 
    $value2 = $result['value2']; 
?> 

    <tr> 
     <td colspan="2" align="center"><strong>Info for <?php echo $value1; ?></strong></td> 
    </tr> 
    <tr> 
     <td width="100">Some text:</td> 
     <td width="590"><?php echo $value2;?></td> 
    </tr> 
<?php 
}}else{die ("can't find ".$value1."");} 
?> 

</table> 

我while循環之前移動<table>代碼,把桌子行循環,在循環後表關閉標籤內。這樣你可以得到所有的行。

如果您不想在沒有行的情況下顯示錶格,則可以將<table ..></table>標籤移動到if語句塊中。

編輯:

if(mysql_num_rows($qry) > 0){ 
?> 
<br /> 
    <table width="700" border="0"> 
<?php 
    while ($result = mysql_fetch_array($qry)){ 
    $value1 = $result['value1']; 
    $value2 = $result['value2']; 
?> 

    <tr> 
     <td colspan="2" align="center"><strong>Info for <?php echo $value1; ?></strong></td> 
    </tr> 
    <tr> 
     <td width="100">Some text:</td> 
     <td width="590"><?php echo $value2;?></td> 
    </tr> 
<?php 
    } 
    echo '</table>'; 
}else{die ("can't find ".$value1."");} 
?> 
1

您正在將返回行的值分配給$ value1和$ value2。因此,循環的每次迭代都會替換這些變量中最後存儲的值。

這將有效地只給你找到的最後一個行值(賦給變量的最後一個值)。

您也需要通過他們將這些值推到一個集合/陣列,並重新循環來構建你的表,或將表代碼放在初始循環中。

相關問題