显示具有相同列值的不同行的多个值

时间:2013-12-21 03:17:45

标签: php mysql sql html-table rows

我的代码:

<?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>

当只有一行具有相同的value1值时,代码工作正常。如果有2,3或更多行具有相同的value1值,则脚本仅显示查找值中找到的表中最后一行的值。我希望它显示包含所有查询行的条目的单独表。 我在网上寻求帮助,但我能找到的是如何从我的数据库中检索值,对我没有任何帮助

2 个答案:

答案 0 :(得分:1)

您将返回行中的值分配给$ value1和$ value2。因此,循环的每次迭代都会替换这些变量中的最后存储值。

这实际上只会给你找到的最后一行值(分配给变量的最后一个值。)

您需要将这些值推送到集合/数组中并重新循环它们以构建表,或者将表代码放在初始循环中。

答案 1 :(得分: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>

我将<table>代码移到while循环之前,将表行移动到循环内部,并在循环之后移动表close标记。通过这种方式,您可以获得所有行。

如果您不想在没有行的情况下显示该表,则可以将<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."");}
?>
相关问题