Задавайте вопросы, мы ответим
Вы не зашли.
Простите пожалуйста за лишнее беспокойство и скорее всего глуповатый вопрос: можно ли делать в одном скрипте (странице) вывод из двух таблиц бд?
у меня выводятся данные из одной таблицы ровно и красиво на страничке, теперь же дополнительно мне нужно вывести ещё и из второй. Подскажите пожалуйста, как примерно это делается?
вот самое начало моей странички, откуда всё начинается:
<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
Неактивен
А разве приведенный вами же вариант не работает?
Неактивен
К сожалению, никак не хочет.
Выдаёт ошибку на вот этих строках:
$myrow = mysql_fetch_array($result); while ($myrow = mysql_fetch_array ($result)) {
Которые как раз относятся ко второму соединению с бд.
Неактивен
А зачем вы дважды делаете $myrow = mysql_fetch_array($result);?
При первой же выборке вы так не делаете. а здесь зачем?
первая строка лишняя
// $myrow = mysql_fetch_array($result);
while ($myrow = mysql_fetch_array ($result)) {
Неактивен
Я это делаю (на сколько понимаю для дилетанта) для того, чтобы извлечь всю информацию в массив, и уже из него извлекать чтоб показать на экране, в табличку вывести.
И в первом случае это из одной таблицы, а во втором-из другой. Или я что-то недопоняла)
ps- попробовала, ошибка теперь на следующей строке.
Отредактированно Blondy (24.04.2010 21:12:06)
Неактивен
А какая ошибка?
Неактивен
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)) {
Неактивен
Найдите место, где определяется $result — ошибка возникает уже там.
Попробуйте сразу после определения $result вывести результат
mysql_error().
Неактивен
А вы не могли бы подсказать как использовать
mysql_error() ?
что подставлять в скобки? я абсолютный новичок, честное слово не делала такой вывод раньше поэтому не знаю как это.
Неактивен
print(mysql_error());
Неактивен
Спасибо большое!
вот что вышло:
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)) {
Неактивен
имя таблицы нужно взять в обратные кавычки
$result =mysql_query("SELECT * FROM `komplekt-spraw` WHERE dlyanazw = '$krit'",$gb);
Неактивен
Огромнейшее вам спасибо!!!!
Всё идеально заработало)
Вот так и пропускаются мелочи, которые своим взглядом не видно)
Неактивен