У меня есть 5 таблиц с разными жанрами фильмов. Почему при вводе имени в поиск находит только из последней таблице
<?php
$connection = new PDO("mysql:host=localhost;dbname=mydb", 'root','');
if ( isset($_POST["submit-search"]) )
{
$str = $_POST["search-bar"];
$sth = $connection->prepare("SELECT * FROM horror WHERE NameArtist = '$str'");
$sth = $connection->prepare("SELECT * FROM comeny WHERE NameArtist = '$str'");
$sth = $connection->prepare("SELECT * FROM action WHERE NameArtist = '$str'");
$sth = $connection->prepare("SELECT * FROM fantasy WHERE NameArtist = '$str'");
$sth = $connection->prepare("SELECT * FROM adventure WHERE NameArtist = '$str'");
$sth->setFetchMode(PDO::FETCH_OBJ);
$sth-> execute();
if($row = $sth->fetch())
{
?>
<br><br><br>
<table>
<tr>
<td><?php echo $row->NameArtist. " - "; ?></td>
<td><?php echo $row->NameFilm; ?></td>
</tr>
</table>
<?php
}
else
{
echo "Name does not exist";
}
} ?>
Ответы (1 шт):
Автор решения: Shevchuk Slavik
→ Ссылка
Можете попробовать объединить все запросы с помощью UNION: http://www.mysql.ru/docs/man/UNION.html
$sth = $connection->prepare("
SELECT * FROM horror WHERE NameArtist = '$str'
UNION
SELECT * FROM comeny WHERE NameArtist = '$str'
UNION
SELECT * FROM action WHERE NameArtist = '$str'
UNION
SELECT * FROM fantasy WHERE NameArtist = '$str'
UNION
SELECT * FROM adventure WHERE NameArtist = '$str'
");