当$ variable重复但主键是唯一的时,回显行

时间:2011-07-20 00:21:02

标签: php mysql duplicates

我正在创建城市内的商店列表。因此,如果城市中只有一家商店,我希望它只显示一个结果。当城市内有两个或更多商店时,我希望它在多个商店中显示信息。这就是我所拥有的:

$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初学者,所以如果这是一个愚蠢的问题或荒谬的问题,我非常感谢你的帮助并道歉。提前感谢您的帮助!

2 个答案:

答案 0 :(得分: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 :(得分: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 />";
    }

}

while()逐步获取结果,因此它会给你结果