Например, я создал 2 страницы и 2 таблицы MySQL.
citys.php
& citys.php
Citys
ID City Country Population -------------------------------------- 1 Amsterdam NL 1500000 2 Rotterdam NL 900000 3 Dusseldorf DE 1800000
Комментарии
ID City Name Comment --------------------------------- 1 Dusseldorf Jack Great city! 2 Dusseldorf John Beautiful 3 Rotterdam Emy Love it
В настоящий момент я использую только такие таблицы:
index.php
citys.php
на citys.php
:
<a href='citys.php?cmd=menu&id=";echo $row['id'];echo "'>
И citys.php
использует этот код для отображения данных из MySQL:
<?php include "connect.php"; if(!isset($cmd)) { if($_GET["cmd"]=="menu" || $_POST["cmd"]=="menu") { if (!isset($_POST["submit"])) { $id = $_GET["id"]; $sql = "SELECT * FROM citys WHERE id=$id"; $result = mysql_query($sql); $row = mysql_fetch_array($result); ?> <?php echo $row["City"] ?> <br><br> <?php echo $row["Country"] ?> <br><br> <?php echo $row["Population"] ?>
Пока здесь все не появится и не работает нормально.
Но я хочу также показать комментарии на странице 2. Таким образом, запрос нужно отредактировать, чтобы получить правильные данные из comments
к таблице.
Я попробовал разные примеры из Интернета, которые я редактировал как:
<?php include "connect.php"; if(!isset($cmd)) { if($_GET["cmd"]=="menu" || $_POST["cmd"]=="menu") { if (!isset($_POST["submit"])) { $id = $_GET["id"]; $sql = "SELECT citys.*, comments.* FROM citys, comments WHERE citys.id=$id AND comments.city=citys.city"; $result = mysql_query($sql); $row = mysql_fetch_array($result); ?>
Но ничего не работает.
Кто может помочь?
Редактировать!
Запрос из ответа VIPIN JAIN работает, но остается одна проблема:
Запрос:
$sql = "SELECT * FROM citys LEFT JOIN comments ON comments.city=citys.city WHERE citys.id=$id";
Если в таблице «комментарии» есть 3 строки, этот код показывает только последние два, но не первый:
<?php while($row = mysql_fetch_array($result)) { echo "<br><br>"; echo $row['name']; echo "<br>"; echo $row['comment']; } ?>
И если я попробую, это только показывает первую строку.
<?php echo $row["name"] ?> <br> <?php echo $row["comment"] ?>
Я не знаю, почему первая запись оставлена в цикле.
Использовать этот запрос
$sql = "SELECT * FROM citys LEFT JOIN comments ON comments.city=citys.city WHERE citys.id=$id";
Использовать leftjoin для этого типа работы
select * from citys left join comments on comments.city = citys.city where citys.id=$id