2011-07-20 26 views
1

我正在创建城市内的商店列表。因此,在一个城市只有一家商店的地方,我希望它只显示一个结果。当城市内有两家以上的商店时,我希望它在多家商店中显示信息。这是我有:

$result = mysql_query("SELECT * FROM stores where StoreID=$id order by city"); 
if (!$result) { 
die('Invalid query: ' . mysql_error()); 
$id=mysql_result($result,"StoreID"); 
mysql_close(); 
} 

<?php echo "$city"; ?> 
<?php echo "$street"; ?> etc. 

这给了我只有一个结果,我不知道如何修改它来查找多个记录。我是一名PHP/MySql初学者,所以如果这是一个愚蠢的问题或可笑的问题,我非常感谢您的帮助,并表示歉意。预先感谢您的帮助!

回答

1

使用这个基本循环:

<?while($row = mysql_fetch_assoc($result):?> 
    city: <?=$row['city']?><BR> 
    State: <?=$row['state']?><BR> 
<?endwhile;?> 

摆脱mysql_result()部分 - 使用mysql_fetch_assoc()更容易。

此外,您应该使用PHP中的http://www.php.net/mysqli库而不是MySQL。

PS。我喜欢短标签,但如果您愿意,可以更改为长标签。

,而不是另外:

$result = mysql_query("SELECT * FROM stores where StoreID=$id order by city"); 
if (!$result) { 
die('Invalid query: ' . mysql_error()); 

我喜欢:

$result = mysql_query("SELECT * FROM stores where StoreID=$id order by city") or die('Invalid query: ' . mysql_error()); 

它更容易阅读。

1
$result = mysql_query("SELECT * FROM stores where StoreID=$id order by city"); 
if (!$result) { 
    die('Invalid query: ' . mysql_error()); 
}else{ 
    while($row = mysql_fetch_assoc($result)){ 
     echo $row['city']." : ".$row['street']."<br />"; 
    } 

} 

而()是通过一步提取结果一步,所以它会给出你的结果

+0

谢谢你们两个了!我要给它一个镜头。 – Steve