Строка эха, когда переменная $ дублируется, но первичный ключ уникален - PullRequest
1 голос
/ 20 июля 2011

Я создаю список магазинов в городах.Поэтому, если в городе есть только один магазин, я хочу, чтобы он отображал только один результат.Когда в городе есть два или более магазинов, я хочу, чтобы он отображал информацию о нескольких магазинах.Вот что у меня есть:

$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 ]

1 голос
/ 20 июля 2011
$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 () извлекает результаты шаг за шагом, поэтому он даст вам ваш результат

1 голос
/ 20 июля 2011

Используйте этот основной цикл:

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

Избавьтесь от mysql_result() части - используйте mysql_fetch_assoc(), это проще.

Кроме того, вы должны использовать библиотеку http://www.php.net/mysqli вместо MySQL в PHP.

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());

Это легче читать.

...