ВСЕМ доброго дня. прошу внимания и совета программистов. вот код: PHP: <?php $sql = "SELECT comm.id, comm.date, comm.text, film.title, man.name FROM comm, film, man WHERE $id = comm.id_org AND man.id = comm.id_man AND film.id = comm.id_film"; $query = mysql_query($sql, $db); $row= mysql_fetch_array ($query, MYSQL_ASSOC); /* результат в первой строке */ echo "<pre>"; print_r ($row); echo "</pre>"; ?> Вопрос: как в SELECT получить еще один столбец man.name по условию WHERE man.id = comm.id_man_editor ? задумка такая – получить имена (name) людей, которые создали комментарий и редактировали. ВСЕМ спасибо!
если я правильно понял твой вопрос Код (Text): SELECT comm.id, comm.date, comm.text, film.title, man.name, j.name FROM comm, film, man LEFT JOIN ( SELECT id, name FROM man ) AS j ON comm.id_man_editor = j.id WHERE $id = comm.id_org AND man.id = comm.id_man AND film.id = comm.id_film в j.name будет имя, только если comm.id_man_editor равен man.id в этой строчке в противном случае NULL как то так, может напутал чего, просто направление показываю хотя с точки зрения производительности может будет разумнее 2 запроса сделать и обработать в php
SDR, спасибо за ответ. Ваш код выдает ошибку – mysql_fetch_array(): supplied argument is not a valid MySQL result resource in ... Буду разбираться дальше сам, еще раз спасибо.
incomer ну значит у тебя поля id_man_editor в таблице comm нет, название поля я из твоего вопроса брал
странно, phpMyAdmin показывает заполненную колонку id_man_editor . сделаю работу над ошибками SDR, спасибо.
incomer а, ясно в чём дело вот так попробуй: Код (Text): SELECT comm.id, comm.date, comm.text, film.title, man.name, j.name, comm.id_man_editor FROM comm, film, man LEFT JOIN ( SELECT id, name FROM man ) AS j ON comm.id_man_editor = j.id WHERE $id = comm.id_org AND man.id = comm.id_man AND film.id = comm.id_film
ЭВРИКА ))))))))) SDR, тебе респект за то, что ты меня правильно думать заставил моя работа над ошибками : код: PHP: <?php $sql = "SELECT comm.id, comm.date, comm.text, film.title, man.name, X.name FROM comm, film, man, man X WHERE $id = comm.id_org AND man.id = comm.id_man AND film.id = comm.id_film AND X.id = comm.id_man_editor"; $query = mysql_query($sql, $db); $row= mysql_fetch_array ($query); if (!$row) {echo "<b>ошибка ".mysql_errno()."</b>: ".mysql_error();} /*проверка ошибок*/ echo "<pre>"; print_r ($row); echo "</pre>"; ?> 1)где Х – псевдоним; 2) убрал MYSQL_ASSOC , а то он переписывает значение name. Тема закрыта, SDR СПАСИБО!
Simpliest так и было задумано я из вопроса просто подумал, что строки где такой фигни нет - тоже нужны (только с пустым значением) ...man.name, X.name AS x_name
если $row= mysql_fetch_array ($query) , то: Array ( [0] => 1 [id] => 1 [1] => 0000-00-00 00:00:00 [date] => 0000-00-00 00:00:00 [2] => комментарий [text] => комментарий [3] => Название фильма [title] => Название фильма [4] => Иванов [name] => Петров [5] => Петров )
а если $row= mysql_fetch_array ($query, MYSQL_ASSOC) , то: Array ( [id] => 1 [date] => 0000-00-00 00:00:00 [text] => комментарий [title] => Название фильма [name] => Петров )