SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 24.04.2010 14:45:33

Blondy
Участник
Зарегистрирован: 20.03.2010
Сообщений: 14

вывод данных из двух таблиц

Простите пожалуйста за лишнее беспокойство и скорее всего глуповатый вопрос: можно ли делать в одном скрипте (странице) вывод из двух таблиц бд?
у меня выводятся данные из одной таблицы ровно и красиво на страничке, теперь же дополнительно мне нужно вывести ещё и из второй. Подскажите пожалуйста, как примерно это делается?

вот самое начало моей странички, откуда всё начинается:

Код:

<form method="post" action="nomenklat.php">
    <fieldset>
    <legend>Выберите критерии для просмотра номенклатур</legend>
    <select name="krit">
    <option value="САУ_КЦ">САУ КЦ</option>
    <option value="2">ПКУ ДО-01</option>
    <option value="3">САУ РГС</option>
    <option value="4">САУ ТП УКПГ</option>
    <option value="5">САУ и Р ТП ГСП</option>
    <option value="6">АСДУ н/м</option>
    <option value="7">САУ и К ГНС</option>
    <option value="8">ПКУ ОГ</option>
    <option value="САУ_ВО">САУ ВО</option>
    <option value="10">САУ ГПА</option>
    </select>
    </fieldset><p>
    <fieldset> 
    <legend>Информация о дополнительных модулях</legend>
    <input type="radio" name="luch" id="yes" value="11"/>Показать модули <p>
<input type="radio" name="luch" id="no" value="12"/>Только базовый комплект<p></p>
    </fildset>
    <input type="submit" value="Просмотр" /> 
    </fieldset>
    </form>

И дальше используется:

Код:

$krit = mysql_real_escape_string($_POST['krit']);
$result =mysql_query("SELECT * FROM nomenklatura WHERE krnazwanie = '$krit'");
while ($myrow = mysql_fetch_array ($result)) {
printf("
  <tr>
    <td>%s</td>
  </tr>
  <tr>
    <td>%s</td>
  </tr>
   <tr>
    <td>%s</td>
  </tr>
   <tr>
    <td>%s</td>
  </tr>
   <tr>
    <td>%s</td>
  </tr>
   <tr>
    <td>%s</td>
  </tr>
   <tr>
    <td>%s</td>
  </tr>


 ",$myrow['krnazwanie'],$myrow['plnazwanie'],$myrow['slowa'],$myrow['opisanie'],$myrow['haracteristika'],$myrow['nazwobes'],$myrow['nazkompl']); 
}                           

//отсюда и начинаются проблемный вопрос- как дополнить выше работающее - результатом работы радио-кнопки, то есть извлечь теперь данные из другой таблицы?
$luch = mysql_real_escape_string($_POST['luch']);
 if ($luch == '11')
 $result =mysql_query("SELECT * FROM komplekt-spraw WHERE dlyanazw = '$krit'",$gb);
$myrow = mysql_fetch_array($result);
while ($myrow = mysql_fetch_array ($result)) {
printf("
  <tr>
    <td>%s</td>
  </tr>
  <tr>
    <td>%s</td>
  </tr>
   <tr>
    <td>%s</td>
  </tr>
   <tr>
    <td>%s</td>
  </tr>
   <tr>
    <td>%s</td>
  </tr> 
 ",$myrow['kodkompl'],$myrow['dlyanazw'],$myrow['nazkompl'],$myrow['haracteristika'],$myrow['cena']);
}
?>

На всякий случай структура табличек что мне нужны, вот такая:
http://s56.radikal.ru/i153/1004/ee/3f7f3f6a7654.jpg
http://s61.radikal.ru/i171/1004/c0/bad5a95d59f9.jpg

Неактивен

 

#2 24.04.2010 20:00:02

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: вывод данных из двух таблиц

А разве приведенный вами же вариант не работает?

Неактивен

 

#3 24.04.2010 20:20:17

Blondy
Участник
Зарегистрирован: 20.03.2010
Сообщений: 14

Re: вывод данных из двух таблиц

К сожалению, никак не хочет.
Выдаёт ошибку на вот этих строках:

Код:

$myrow = mysql_fetch_array($result);
while ($myrow = mysql_fetch_array ($result)) {

Которые как раз относятся ко второму соединению с бд.

Неактивен

 

#4 24.04.2010 20:49:48

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: вывод данных из двух таблиц

А зачем вы дважды делаете $myrow = mysql_fetch_array($result);?
При первой же выборке вы так не делаете. а здесь зачем?
первая строка лишняя

// $myrow = mysql_fetch_array($result);
while ($myrow = mysql_fetch_array ($result)) {

Неактивен

 

#5 24.04.2010 21:10:48

Blondy
Участник
Зарегистрирован: 20.03.2010
Сообщений: 14

Re: вывод данных из двух таблиц

Я это делаю (на сколько понимаю для дилетанта) для того, чтобы извлечь всю информацию в массив, и уже из него извлекать чтоб показать на экране, в табличку вывести.
И в первом случае это из одной таблицы, а во втором-из другой. Или я что-то недопоняла)

ps- попробовала, ошибка теперь на следующей строке.

Отредактированно Blondy (24.04.2010 21:12:06)

Неактивен

 

#6 24.04.2010 21:23:01

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: вывод данных из двух таблиц

А какая ошибка?

Неактивен

 

#7 24.04.2010 21:55:37

Blondy
Участник
Зарегистрирован: 20.03.2010
Сообщений: 14

Re: вывод данных из двух таблиц

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in Z:\home\mysite\www\nomenklat.php on line 102

А на строке 102 у меня как раз идёт уже

Код:

while ($myrow = mysql_fetch_array ($result)) {

Неактивен

 

#8 24.04.2010 22:06:46

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: вывод данных из двух таблиц

Найдите место, где определяется $result — ошибка возникает уже там.
Попробуйте сразу после определения $result вывести результат
mysql_error().

Неактивен

 

#9 24.04.2010 22:20:21

Blondy
Участник
Зарегистрирован: 20.03.2010
Сообщений: 14

Re: вывод данных из двух таблиц

А вы не могли бы подсказать как использовать
mysql_error() ?
что подставлять в скобки? я абсолютный новичок, честное слово не делала такой вывод раньше поэтому не знаю как это.

Неактивен

 

#10 24.04.2010 22:31:46

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: вывод данных из двух таблиц

print(mysql_error());

Неактивен

 

#11 24.04.2010 22:38:33

Blondy
Участник
Зарегистрирован: 20.03.2010
Сообщений: 14

Re: вывод данных из двух таблиц

Спасибо большое!
вот что вышло:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-spraw WHERE dlyanazw = 'САУ_КЦ'' at line 1
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in Z:\home\mysite\www\nomenklat.php on line 103


А на строке 103 у меня
while ($myrow = mysql_fetch_array ($result)) {

Неактивен

 

#12 24.04.2010 22:41:19

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: вывод данных из двух таблиц

имя таблицы нужно взять в обратные кавычки
$result =mysql_query("SELECT * FROM `komplekt-spraw` WHERE dlyanazw = '$krit'",$gb);

Неактивен

 

#13 24.04.2010 22:51:29

Blondy
Участник
Зарегистрирован: 20.03.2010
Сообщений: 14

Re: вывод данных из двух таблиц

Огромнейшее вам спасибо!!!!
Всё идеально заработало)
Вот так и пропускаются мелочи, которые своим взглядом не видно)

Неактивен

 

Board footer

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