请参阅下面的我的php代码,第一个可以正常工作。它将回显数据库中的所有数据(基于文本字段中的值)。如果有多个值,它将打印在行分隔的所有数据。这将直接打印到没有桌子的网页。
另一个代码应该在表格中打印多个案例中的所有数据(基于文本字段中的值),但由于某种原因,它只会打印一个结果。即使数据库中有更多数据。 有什么建议可以解决这个问题吗?
下面的代码,第一个代码(有效):
<?php
mysql_connect("","","");
mysql_select_db("");
$search_value = $_GET['value'];
$search_value2 = $_GET['value2'];
$query = "select * from data where data1 like '$search_value' and data2 like '$search_value2'";
$run = mysql_query($query);
while($row=mysql_fetch_array($run)){
$data1 = $row['data1'];
$data2 = $row['data2'];
echo "<h1>$data1</h1>";
echo "<h1>$data2</h1>";
}
?>
另一个(只打印一行表)
<?php
mysql_connect("","","");
mysql_select_db("");
$search_value = $_GET['value'];
$search_value2 = $_GET['value2'];
$query = "select * from data where data1 like '$search_value' and data2 like '$search_value2'";
$run = mysql_query($query);
while($row=mysql_fetch_array($run)){
{
print('<tr>');
print(' <td>');
print $row["data1"];
print('</td>');
print(' <td>');
print $row["data2"];
print('</td>');
print('</tr>');
print ("\n");
}
mysql_free_result($run);
}
?>
感谢任何帮助。
答案 0 :(得分:0)
您正在使用mysql_free_result()
在while
的第一个周期后立即清除整个结果集。
只需删除此行:mysql_free_result($run);
另外,我建议您使用1行打印,而不是9行。
while($row=mysql_fetch_array($run)){
echo '<tr><td>'.($row['data1']).'</td><td>'.($row['data2']).'</tr>';
}