SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 26.02.2012 16:44:39

viderga
Участник
Зарегистрирован: 26.02.2012
Сообщений: 6

(php) запрос на выборку

есть 3 таблицы:
number (id_number, number, id_itaj, id_mesta)
itaj (id_itaj, klass)
mesta (id_mesta, mesta)

цель: нужно чтобы запрос выдал соответствующие данные из поля number, по выбранным данным klass и mesta из соответствующих таблиц.
с помощью этого кода выбираем данные:
<?php
include "conf.php";
echo '<form action="sos.php" method=post>';

$w = 'select * from itaj';
$w = mysql_query($w) or die(mysql_error());
echo "Класс: ";
echo "<select class=input type=text name='pred'>";
    while ($row = mysql_fetch_array($w)) {
        $klass = $row['klass'];
        $id_itaj = $row['id_itaj'];
        echo "<option value='$id_itaj'>";
        echo $klass;
  }
echo "</select><br>";

$s = "select * from mesta";

$s = mysql_query($s) or die(mysql_error());
echo "Количество мест: ";
echo "<select class=input type=text name='zap'>";
    while ($rows = mysql_fetch_array($s)) {
        $mesta = $rows['mesta'];
        $id_mesta = $rows['id_mesta'];

        echo "<option value=$id_number>";
        echo $mesta;
    }
echo "</select><br>";
echo "<input type=submit value=просмотр></form>";
?>

это запрос:

<?php
include "conf.php";

$nn = $_POST["number"];
$querys = ('SELECT number.number
FROM number, mesta, itaj
WHERE number.id_mesta=mesta.id_mesta and number.id_itaj=itaj.id_itaj and
number.id_number="'.$nn.'"'); 
$querys = mysql_query($querys) or die(mysql_error()); 

echo "<table border=\"1\" width=\"70%\" bgcolor=\"lavenderblush\">";   
echo "<tr><td><B>номер комнаты</B></td>";

while ($myrow = mysql_fetch_array($querys)){
var_dump($myrow);
$number=$myrow['number'];

echo "<tr>";
echo "<td>$number</td>";
echo "</tr>";
}
echo "</table>";
echo "$nn";

Не выдает номера из таблицы Number. что не так? Заранее спасибо:*

Неактивен

 

#2 26.02.2012 16:57:57

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: (php) запрос на выборку

Давайте временно отделим php от sql.

Что значит "Не выдаёт номер из таблицы number"? Возвращается пустая выборка или ошибка выполнения запроса?

инструкции
$querys = ('SELECT number.number
FROM number, mesta, itaj
WHERE number.id_mesta=mesta.id_mesta and number.id_itaj=itaj.id_itaj and
number.id_number="'.$nn.'"'); 
$querys = mysql_query($querys) or die(mysql_error()); 

замените вот так:

$query ='SELECT number.number
FROM number, mesta, itaj
WHERE number.id_mesta=mesta.id_mesta and number.id_itaj=itaj.id_itaj and
number.id_number="'.$nn.'"';
print $query;
$querys = mysql_query($query) or die(mysql_error()); 

И будет хорошо, если приложите дамп таблиц.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 27.02.2012 11:49:58

viderga
Участник
Зарегистрирован: 26.02.2012
Сообщений: 6

Re: (php) запрос на выборку

да, пустая выборка. Если использовать ваш вариант, то выдает: SELECT number.number FROM number, mesta, itaj WHERE number.id_mesta=mesta.id_mesta and number.id_itaj=itaj.id_itaj and number.id_number=""   и опять же пустую таблицу..
Не знаю что такое дамп таблиц. приложила бы экспортированные таблицы но тут файлы не отправить hmm

Неактивен

 

#4 27.02.2012 12:05:47

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: (php) запрос на выборку

Воот, мы приближаемся к истине.

SELECT number.number FROM number, mesta, itaj WHERE number.id_mesta=mesta.id_mesta and number.id_itaj=itaj.id_itaj and number.id_number=


Этот запрос некорректный, посколько после number.id_number= должно какое-то число стоять.

Так что копайте в сторону переменной $nn, которая берет своё значение из $_POST

$nn = $_POST["number"];


Что-то мне подсказывает, что в массиве $_POST нету переменной с ключом "number", отсюда и проблема. Попробуйте распечатать содержимое массива $_POST в начале скрипта.

Экспортированные таблицы - это и есть дамп. Файлы, к слову, можно прикрепить, но это сейчас не нужно, проблема не в этом.

Отредактированно deadka (27.02.2012 12:08:30)


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

Board footer

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