SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 08.06.2008 17:57:03

star-ik
Участник
Зарегистрирован: 06.06.2008
Сообщений: 14

Вывод списка городов из таблицы

В БД есть таблица со списком фирм, количество строк порядка 100000, количество городов около 50.
Необходимо вывести на экран наименование городов "city", т.е. повторяющиеся названия не выводить.

$create_table = "CREATE TABLE `firms` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`city` text NOT NULL ,
`cod` VARCHAR(3 ) NOT NULL ,
`phon` VARCHAR( 7 ) NOT NULL ,
`firm` text NOT NULL ,
`address` text NOT NULL ,
`info` text NOT NULL
) ENGINE = MYISAM ;";

Неактивен

 

#2 08.06.2008 18:34:33

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: Вывод списка городов из таблицы

Сначала надо скорректировать структуру таблицы, чтобы выборка не была медленной.
Зачем город у Вас типа TEXT?
ALTER TABLE firms MODIFY city varchar(50);
то же относится к firm и address
ALTER TABLE firms ADD KEY(city);


Требуемый запрос:
SELECT DISTINCT city from firms;

Неактивен

 

#3 08.06.2008 19:19:18

star-ik
Участник
Зарегистрирован: 06.06.2008
Сообщений: 14

Re: Вывод списка городов из таблицы

Структуру поменял, запрос выполнил

Код:

<?php
$sql = mysql_query("SELECT DISTINCT `city` FROM `firms`;");
if (!$sql) {
  die('Неверный запрос: ' . mysql_error());
}
?>

, а как вывести список городов?

Неактивен

 

#4 08.06.2008 23:17:54

LazY
_cмельчак
MySQL Authorized Developer and DBA
Зарегистрирован: 02.04.2007
Сообщений: 849

Re: Вывод списка городов из таблицы


<?php
$sql = mysql_query("SELECT DISTINCT `city` FROM `firms`;");
if (!$sql) {
  die('Неверный запрос: ' . mysql_error());
}
else {
    while ($row = mysql_fetch_assoc($sql)) {
        echo "$row[city]";
    }
}
?>
 

Неактивен

 

#5 16.06.2008 14:03:02

Morfz
Участник
Зарегистрирован: 16.06.2008
Сообщений: 1

Re: Вывод списка городов из таблицы

а как теперь сделать так, чтобы город можно было выбирать из списка?
<select name="select">
    <option>"Город"</option>
</select>

Неактивен

 

#6 17.06.2008 14:45:29

LazY
_cмельчак
MySQL Authorized Developer and DBA
Зарегистрирован: 02.04.2007
Сообщений: 849

Re: Вывод списка городов из таблицы

Грубо, что-то типа вот такого:


<?php
$sql = mysql_query("SELECT DISTINCT `city` FROM `firms`;");
if (!$sql) {
    die('Неверный запрос: ' . mysql_error());
}
else {
    $optionlist = '';
    while ($row = mysql_fetch_assoc($sql)) {
        $selected = ($_POST['select'] == $row['city']) ? ' selected' : ''; // это я Вам добавил, чтобы ваш список не терял выбранное значение при недозаполненной форме
        // если исползьзуете не $_POST, а $_GET - замените
        $optionlist .= "\t<option$selected>$row[city]</option>\n";
    }
}

echo "
<select name=\"select\">
$optionlist
</select>"
;

?>
 

А вообще с вопросами по PHP лучше обращайтесь в соответствующий раздел портала webew.ru.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson