Поиск и вывод значений из бд

осуществляется поиск, введенного слова по бд. Есть таблицы междометия, частица и бан, в них есть поле mood_id. Также есть таблица mood, есть поле id. Нужно вывести эмоцию, когда например mood.id=mezhdometiya.mood_id.( соответственно частицы и бан).Пока получилось осуществить только поиск по бд.
index.php
<?session_start();?>
<html>

<head>
    <title>Поиск в базе данных</title>
</head>


<body>
    <form action="search.php" method="post">
        <input type="text" name="string">
        <input type="submit" name="submit" value="Найти в БД">
    </form>
    <? print_r($_SESSION['id']);
    unset($_SESSION['id']);
    ?>

</body>

</html>

search.php
<?
session_start();
$params = array (
'host' => 'localhost',
'dbname' => 'emodji',
'user' => 'root',
'password' => '',
);
$dsn = «mysql:host={$params['host']};dbname={$params['dbname']}»;
$db = new PDO($dsn, $params['user'], $params['password']);
$db->exec(«set names utf8»);
?>
<?
$str = $_POST['string'];
$mass = explode(' ', $str);
$count = count($mass);
$sql = «SELECT id, name FROM mezhdometiya WHERE name LIKE '%».$mass[0].«%'»;
$sql = «SELECT id, name FROM chastisa WHERE name LIKE '%».$mass[0].«%'»;
$sql = «SELECT id, name FROM ban WHERE name LIKE '%».$mass[0].«%'»;

$result = $db->query($sql);
$result->setFetchMode(PDO::FETCH_ASSOC);
$result->execute();
$id_mass = array();
$i=1;
while ($row=$result->fetch()) {
$id_mass[$i] = $row['id'];
$i++;
}

$id_count = count($id_mass);
?>
<?
for ($i=1; $i<=$count-1; $i++) {
for ($j=1; $j<=$id_count; $j++) {
$sql = «SELECT id, name FROM mezhdometiya WHERE id=».$id_mass[$j].« AND name LIKE '%».$mass[$i].«%'»;
$sql = «SELECT id, name FROM chastisa WHERE id=».$id_mass[$j].« AND name LIKE '%».$mass[$i].«%'»;
$sql = «SELECT id, name FROM ban WHERE id=».$id_mass[$j].« AND name LIKE '%».$mass[$i].«%'»;

    $result = $db->query($sql);
    $result->setFetchMode(PDO::FETCH_ASSOC);
    $result->execute();
    $id_mass2 = array();
    $row=$result->fetch();
    $temp = $row['id'];
    if($temp!=$id_mass[$j]) {
        $id_mass[$j] = -1;
    }
}

}
?>
<?
$l=1;
for($i=1; $i<$id_count+1; $i++) {
if ($id_mass[$i] == -1) continue;
else {
$_SESSION['id'][$l] = $id_mass[$i];
$l++;
}
}
header('Location: /index.php');
?>

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.