从Mysql数据库获取信息

时间:2013-03-04 16:55:00

标签: php mysql

我有一个包含数千个邮政编码的数据库,其中第二列显示一个级别(红色,蓝色和黄色之间)。 我已经成功添加了数据库并可以对其进行处理,但返回的信息仅显示数据库的第一行。

我的表格很基本: -

<body>
<form method="post" action="database.php">
  Postcode
  : 
  <input name="postcode" type="text" id="postcode" size="30"><?php echo $postcode ?>
  <br>
<br>
<br>
<input type="Submit" value="Submit">
</form>

</body>

到目前为止我的PHP代码是: -

<?php 
$con = mysql_connect("localhost","###","###"); 
if (!$con) { 
die('Could not connect: ' . mysql_error()); 
} 

mysql_select_db("###", $con); 



$result = mysql_query("SELECT * FROM `TABLE 1` LIMIT 0, 33546 ") 
or die(mysql_error());  



$row = mysql_fetch_array( $result );
// Print out the contents of the entry 

echo "Postcode: ".$row['postcode'];
echo "Level: ".$row['level'];
echo "Floodlevel: ".$row['floodlevel'];


if (!mysql_query($sql,$con)) { 
die('Error: ' . mysql_error()); 
} 
?> 

我希望输入一个邮政编码,如果邮政编码在数据库上,那么显示的级别以及邮政编码。如果数据库中的后置代码为no,则回显一条消息,说明邮政编码未列出。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

您要返回一行,您需要循环显示结果并全部显示。

while($row = mysql_fetch_array($result)){
    echo "Postcode: ".$row['postcode'];
    echo "Level: ".$row['level'];
    echo "Floodlevel: ".$row['floodlevel'];
}

此外,不推荐使用mysql *函数。使用the PHP docs

中描述的mysqli或PDO

如果用户邮政编码存在,则显示一条消息:

$postcode = "E9 7TR";
$result = mysql_query("SELECT * FROM `TABLE 1` WHERE postcode='$postcode' ") 
or die(mysql_error());  

$row = mysql_fetch_array( $result );
if(mysql_num_rows($row) >= 1) // display success message
else // display not found

同样,这是使用不再推荐的旧式mysql *查询,最好使用PDO样式语句。