2011-03-13 73 views
1

我在教自己的PHP和MySQL,我试图从我的数据库中检索一些信息并将其放入表中。MySQL结果不显示在表中?

到目前为止只有表列标题显示出来,并且没有信息显示每列。它也需要花费时间来显示PHP文件。

请你指出我的代码有问题。

<?php 
mysql_connect("localhost",$username,$password); 
mysql_select_db($dbname) or die("Unable to select Database"); 
$query = "SELECT * FROM table_1"; 
$result = mysql_query($query); 
$numcount = mysql_num_rows($result); 
echo "<h2>$numcount rows in table_1.</h2>"; 
mysql_close(); 
?> 

<table border="0" cellspacing="4" cellpadding="2"> 
<tr> 
<th><font face="Futura">Type |</font></th> 
<th><font face="Futura">Name |</font></th> 
<th><font face="Futura">Street |</font></th> 
<th><font face="Futura">Address1 |</font></th> 
<th><font face="Futura">Address2 |</font></th> 
<th><font face="Futura">Town |</font></th> 
<th><font face="Futura">County |</font></th> 
<th><font face="Futura">Postcode |</font></th> 
<th><font face="Futura">Number |</font></th> 
<th><font face="Futura">Latitude,Longitude</font></th> 
</tr> 

<?php 
$i=0; 
while ($i < 843) { 
$type = mysql_result($result,$i,"type"); 
$name = mysql_result($result,$i,"name"); 
$street = mysql_result($result,$i,"street"); 
$addr1 = mysql_result($result,$im,"address1"); 
$addr2 = mysql_result($result,$im,"address2"); 
$town = mysql_result($result,$im,"town"); 
$county = mysql_result($result,$im,"county"); 
$postcode = mysql_result($result,$im,"postcode"); 
$number = mysql_result($result,$im,"number"); 
$latlong = mysql_result($result,$im,"latlong"); 
} 
?> 

<tr> 
<td><font face="Futura"><?php echo $type;?></font></td> 
<td><font face="Arial, Helvetica, sans-serif"><?php echo $name;?></font></td> 
<td><font face="Arial, Helvetica, sans-serif"><?php echo $street;?></font></td> 
<td><font face="Arial, Helvetica, sans-serif"><?php echo $addr1;?></font></td> 
<td><font face="Arial, Helvetica, sans-serif"><?php echo $addr2;?></font></td> 
<td><font face="Arial, Helvetica, sans-serif"><?php echo $town;?></font></td> 
</tr> 
<?php 
$i++; 
?> 
<? 
echo "</table>"; 
?> 
</body> 
</html> 

回答

0

对于初学者来说,由于$ i没有在循环内部增加,因此会产生无限循环。如果你增加$ i,它应该解决这个问题。什么是$ im?

代码应该是这样的:

<?php 
$i=0; 
while ($i < 843) { 
    $type = mysql_result($result,$i,"type"); 
    $name = mysql_result($result,$i,"name"); 
    $street = mysql_result($result,$i,"street"); 
    $addr1 = mysql_result($result,$i,"address1"); 
    $addr2 = mysql_result($result,$i,"address2"); 
    $town = mysql_result($result,$i,"town"); 
    $county = mysql_result($result,$i,"county"); 
    $postcode = mysql_result($result,$i,"postcode"); 
    $number = mysql_result($result,$i,"number"); 
    $latlong = mysql_result($result,$i,"latlong"); 

?> 

<tr> 
<td><font face="Futura"><?php echo $type;?></font></td> 
<td><font face="Arial, Helvetica, sans-serif"><?php echo $name;?></font></td> 
<td><font face="Arial, Helvetica, sans-serif"><?php echo $street;?></font></td> 
<td><font face="Arial, Helvetica, sans-serif"><?php echo $addr1;?></font></td> 
<td><font face="Arial, Helvetica, sans-serif"><?php echo $addr2;?></font></td> 
<td><font face="Arial, Helvetica, sans-serif"><?php echo $town;?></font></td> 
</tr> 
<?php 
    $i++; 
} // this is where the loop is ending. 
?> 
<? 
mysql_close(); // close mysql connection after reading data 
echo "</table>"; 
?> 
+0

$ IM刚刚被实现为一个拼写错误, $ i在我提供的代码片段底部附近递增。 – 2011-03-13 23:01:40

+0

但是$ i在while循环内没有增加 – 2011-03-13 23:03:26

+0

请注意,您正在循环外增加$ i。使用上面的代码来修复它。 – Rasika 2011-03-13 23:04:01

2
  1. mysql_result()的作品,当你做mysql_close()之前?

  2. 为什么不在这里使用mysql_fetch_row()?

随着对@XcodeDev更多INFOS编辑:

当你需要一个单一的结果,例如可以使用mysql_result():

$query = mysql_query("SELECT COUNT(id) FROM users"); 

然后

$count = mysql_result($query, 0); 

当你预计一行结果与几个数据,使用

$result = mysql_fetch_row($query); => $result[0], $result[1], $result[2] etc 

或者

$result = mysql_fetch_assoc($query); => $result['type'], $result['name'] etc 

当你期望结果的几行几个数据,使用

while ($result = mysql_fetch_row($query)) { 
    => $result[0], $result[1], $result[2] etc 
} 

或者

while ($result = mysql_fetch_assoc($query)) { 
    => $result['type'], $result['name'] etc 
} 
+1

@XcodeDev你应该习惯这种用法。 mysql_fetch_row或我的选择是mysql_fetch_array总是更好。没有必要定义或计算$ i。 – Kemal 2011-03-13 23:08:54

+0

@Ahmet凯末尔我对PHP/MySQL是全新的我只是按照教程。我现在会研究它。 – 2011-03-13 23:12:36