[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Выборка информации с базы mysql
kolyabis
Добрый день всем. В данной теме хочу спросить совета у професианалов, как правильно составить выборку с таблицы.

У меня есть 3 файла и три таблцы в базе.
Файлы index.php - в данном файле я реализовывал выборку областей украины. Код такой.

<table width="90%" border="1" align="center">
<tr
align="center">
<td
colspan="8"><strong>Адреси кас міста</strong></td>
</tr>
<tr
align="center">
<td><strong>
Місто/селище</strong></td>
<td><strong>
Район міста</strong></td>
<td><strong>
ст. метро</strong></td>
<td><strong>
Вокзал/станція</strong></td>
<td><strong>
Адреса</strong></td>
<td><strong>
Телефон</strong></td>
<td><strong>
Режим роботи кас</strong></td>
<td><strong>
Примітка</strong></td>
</tr>



<?php
if (isset($_GET['gorod_id']));{
$result = mysql_query("SELECT

`gorod_id`,`rayon_mista`,`stanciya`,`vokzal`,`adress`,`telefon`,`regim`,`primitka` FROM `adress` WHERE gorod_id="
.(int)$_GET['oblast_id']);

while($myrow = mysql_fetch_assoc ($result)){
echo '<tr align="center">
<td>'
.$myrow["gorod_id"].'</td>
<td>'
.$myrow["rayon_mista"].'</td>
<td>'
.$myrow["stanciya"].'</td>
<td>'
.$myrow["vokzal"].'</td>
<td>'
.$myrow["adress"].'</td>
<td>'
.$myrow["telefon"].'</td>
<td>'
.$myrow["regim"].'</td>
<td>'
.$myrow["primitka"].'</td>
</tr>'
;
}
}

?>

Таблица имеет структуру.
-- Структура таблицы `goroda`
--

CREATE TABLE `goroda` (
`id` int(11) NOT NULL auto_increment,
`kod_id` varchar(30) NOT NULL,
`oblast_id` varchar(30) NOT NULL,
PRIMARY KEY (`id`)
)
ENGINE=MyISAM AUTO_INCREMENT=28 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=28 ;


--
-- Дамп данных таблицы `goroda`
--

INSERT INTO `goroda` VALUES (1, '01', 'Автономная республика Крым');
INSERT INTO `goroda` VALUES (2, '05', 'Винницкая');
INSERT INTO `goroda` VALUES (3, '07', 'Волынская');
INSERT INTO `goroda` VALUES (4, '12', 'Днепропетровская');
INSERT INTO `goroda` VALUES (5, '14', 'Донецкая');
INSERT INTO `goroda` VALUES (6, '18', 'Житомирская');
INSERT INTO `goroda` VALUES (7, '21', 'Закарпатская');
INSERT INTO `goroda` VALUES (8, '23', 'Запорожская ');
INSERT INTO `goroda` VALUES (9, '26', 'Ивано-Франковская');
INSERT INTO `goroda` VALUES (10, '32', 'Киевская');
INSERT INTO `goroda` VALUES (11, '35', 'Кировоградская');
INSERT INTO `goroda` VALUES (12, '44', 'Луганская');
INSERT INTO `goroda` VALUES (13, '46', 'Львовская');
INSERT INTO `goroda` VALUES (14, '48', 'Николаевская');
INSERT INTO `goroda` VALUES (15, '51', 'Одесская');
INSERT INTO `goroda` VALUES (16, '53', 'Полтавская');
INSERT INTO `goroda` VALUES (17, '56', 'Ровенская');
INSERT INTO `goroda` VALUES (18, '59', 'Сумская');
INSERT INTO `goroda` VALUES (19, '61', 'Тернопольская');
INSERT INTO `goroda` VALUES (20, '63', 'Харьковская');
INSERT INTO `goroda` VALUES (21, '65', 'Херсонская');
INSERT INTO `goroda` VALUES (22, '68', 'Хмельницкая');
INSERT INTO `goroda` VALUES (23, '71', 'Черкасская');
INSERT INTO `goroda` VALUES (24, '73', 'Черновицкая');
INSERT INTO `goroda` VALUES (25, '74', 'Черниговская');
INSERT INTO `goroda` VALUES (26, '80', 'г.Киев');
INSERT INTO `goroda` VALUES (27, '85', 'г.Севастополь');


2й Файд. region.php - в данном файле я делал выборку именно той области которая, а точнее городов, которые находятся в данной области и устанавливал ссылку на 3-й файл который выводит именно те адреса которые предназначены для данного города который находится в определенной области.
Код 2-го файла.
<table width="70%" border="1" align="center">
<tr
align="center">
<td
width="30%"><strong>Код</strong></td>
<td
width="50%"><strong>Область</strong></td>
<td
width="50%"><strong>Регіон</strong></td>
</tr>
<?php

if (isset($_GET['oblast_id'])){
$result = mysql_query("SELECT `oblast`,`oblast_id`,`gorod_id` FROM `gorod` WHERE oblast_id=".(int)$_GET['oblast_id'] );
while($myrow = mysql_fetch_assoc ($result)){
echo '<tr align="center">
<td>'
.$myrow["oblast_id"].'</td>
<td>'
.$myrow["oblast"].'</td>
<td align="center"><a href="adressa.php?oblast_id='
.$myrow["id"].'">'
. htmlspecialchars($myrow["gorod_id"]).'</a></td>
</tr>'
;
}
}

?>

Структура таблицы.
-- Структура таблицы `gorod`
--

CREATE TABLE `gorod` (
`id` int(11) NOT NULL auto_increment,
`oblast_id` int(11) default NULL,
`oblast` varchar(20) NOT NULL,
`gorod_id` varchar(30) NOT NULL,
PRIMARY KEY (`id`)
)
ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=6 ;


--
-- Дамп данных таблицы `gorod`
--

INSERT INTO `gorod` VALUES (1, 26, 'Київська', 'г.Киев');
INSERT INTO `gorod` VALUES (2, 27, 'АРК Крим', 'г.Севастополь');
INSERT INTO `gorod` VALUES (4, 10, 'Киевская', 'сумы');
INSERT INTO `gorod` VALUES (5, 10, 'Київська', 'васильков');


Но в 2-м файле region.php выборка по городам реализовалась, но не правильно формируется ссылка на 3-й файл.


3-файл. adressa.php тут выводится только адреса для города который выводится с 2-го файла. Только для определенного города. Вот код adressa.php

<table width="90%" border="1" align="center">
<tr
align="center">
<td
colspan="8"><strong>Адреси кас міста</strong></td>
</tr>
<tr
align="center">
<td><strong>
Місто/селище</strong></td>
<td><strong>
Район міста</strong></td>
<td><strong>
ст. метро</strong></td>
<td><strong>
Вокзал/станція</strong></td>
<td><strong>
Адреса</strong></td>
<td><strong>
Телефон</strong></td>
<td><strong>
Режим роботи кас</strong></td>
<td><strong>
Примітка</strong></td>
</tr>



<?php
if (isset($_GET['gorod_id']));{
$result = mysql_query("SELECT

`gorod_id`,`rayon_mista`,`stanciya`,`vokzal`,`adress`,`telefon`,`regim`,`primitka` FROM `adress` WHERE gorod_id="
.(int)$_GET['gorod_id']);

while($myrow = mysql_fetch_assoc ($result)){
echo '<tr align="center">
<td>'
.$myrow["gorod_id"].'</td>
<td>'
.$myrow["rayon_mista"].'</td>
<td>'
.$myrow["stanciya"].'</td>
<td>'
.$myrow["vokzal"].'</td>
<td>'
.$myrow["adress"].'</td>
<td>'
.$myrow["telefon"].'</td>
<td>'
.$myrow["regim"].'</td>
<td>'
.$myrow["primitka"].'</td>
</tr>'
;
}
}

?>


В данном файле не получается сделать выборку по адресам, хоть я указываю что отображать только те WHERE gorod_id=".(int)$_GET['gorod_id']);
Но у меня ничего не выводится, скорей всего потому что ссылка не правильно формируется.

Код таблицы для файла adressa.php

-- Структура таблицы `adress`
--

CREATE TABLE `adress` (
`id` int(11) NOT NULL auto_increment,
`gorod_id` int(11) default NULL,
`rayon_mista` varchar(20) NOT NULL,
`stanciya` varchar(20) NOT NULL,
`vokzal` varchar(30) NOT NULL,
`adress` varchar(50) NOT NULL,
`telefon` varchar(20) NOT NULL,
`regim` varchar(100) NOT NULL,
`primitka` text NOT NULL,
`oblast_id` int(11) NOT NULL,
PRIMARY KEY (`id`)
)
ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=5 ;


--
-- Дамп данных таблицы `adress`
--

INSERT INTO `adress` VALUES (1, 1, 'Солом''янський', 'Вокзальна', '', 'Площа Привокзальна,1', '', 'Цілодобово', '', 26);
INSERT INTO `adress` VALUES (2, 1, 'Голосіївський', 'Видубичі', 'Київ-Московський', 'вул. Саперно-Слобідська,3', '(044)4652124', 'Щоденно з 7:15-19:15, перерва з 13-14 ', '', 26);
INSERT INTO `adress` VALUES (3, 1, 'Голосіївський', 'Видубичі', 'Видубичі', 'вул.Набережна,10', '', 'Щоденно з 7:30-19:30 ', '', 26);
INSERT INTO `adress` VALUES (4, 2, 'нет', 'нет', 'нет', 'нет', 'нет', 'нет', '', 27);

Подскажите пожалуйста, или тыкните меня безграмотного начинающего разработчика где я допустил ошибку.



Спустя 2 минуты, 42 секунды (2.02.2011 - 10:47) nugle написал(а):
Это поповщина, беги на реабилитацию, в этом разделе вверху самом важные темы, почитай!

Спустя 4 минуты, 3 секунды (2.02.2011 - 10:51) kolyabis написал(а):
Не понял что этим было сказано. Какая поповщина и какая тема. Я готов почитать что угодно чтоб исправить эту проблему.

Спустя 29 минут, 29 секунд (2.02.2011 - 11:20) nugle написал(а):
Цитата
Добрый день всем. В данной теме хочу спросить совета у професианалов, как правильно составить выборку с таблицы.

Это поповский код, ссылка Вот на реабилитацию, вот там и поймете в чём проблема

Спустя 5 часов, 2 минуты, 13 секунд (2.02.2011 - 16:22) inpost написал(а):
nugle
Интересно, какая мысль навела тебя на то, что это Поповщина? Название переменной? Я и сейчас называю их $myrow, делов то.

Спустя 5 минут, 5 секунд (2.02.2011 - 16:27) inpost написал(а):
kolyabis
1. Покажи как выглядит адресная строка.
2. Твой запрос к БД: mysql_query("SELECT ..."); замени на exit("SELECT ..."); и посмотри, правильно ли передался параметр $_GET.
Проверить, какие переменные ты передал через $_GET можно следующим кодом:
echo '<pre>';
print_r($_GET);
exit();


Я не вижу вообще у тебя передачи с одного файла в другой каких-то данных.
Только лишь "adressa.php?oblast_id", а где передаётся "gorod_id" я так и не нашел в коде.

Спустя 18 часов, 11 минут, 59 секунд (3.02.2011 - 10:39) kolyabis написал(а):
Спасибо всем за помощь. Я уже разобрался. Проблема из-за моей невнимательности. Кому будет интересна данная тема, пишите, я отвечу и распишу.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.