Задать вопрос
Mesuti
@Mesuti

В чем ошибка вывода данных из бд на страницу?

Привет!
Есть форма поиска
5c0580d8f1b6f224312496.png
и такая таблица в базе данных
5c058094505e0301624903.pngПочему после нажатия на кнопку Поиск, страница перезагружается и ничего не выводит?
В каком направлении копать?
Может не так формируется вывод?
index.php
<?php
// Хостинг
$sql_ipmysql = "localhost";
// Логин
$sql_login = "root";
// Пароль
$sql_password = "";
// База Данных
$sql_database = "base";

// Подключаемся к БД
$conn = new mysqli($sql_ipmysql, $sql_login, $sql_password, $sql_database);

if ($conn->connect_errno) {
    echo "Извините, возникла проблема на сайте";
    echo "Ошибка: Не удалсь создать соединение с базой MySQL и вот почему: \n";
    echo "Номер_ошибки: " . $conn->connect_errno . "\n";
    echo "Ошибка: " . $conn->connect_error . "\n";
    // Вы можете захотеть показать что-то еще, но мы просто выйдем
    exit;
}
?>

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <title></title>
    </head>
    <body>
    
<!-- Форма поиска по базе -->    
<form action="" method="post">
    <input type="text" name="phone" placeholder="Телефон"/><br />
    <input type="text" name="dateadd" placeholder="Дата"/><br />
    <input type="text" name="name" placeholder="Имя"/><br />
    <input type="text" name="place" placeholder="Площадка"/><br />
    <input type="submit" value="Поиск" />
</form>
 
 
<?php

if ($phone){
    $zapros1 = " and `phone` IN ($phone)";
} else {$zapros1="";}

if ($pdateadd){
    $zapros2 = " and `dateadd` IN ($dateadd)";
} else {$zapros2="";}
        
if ($name){
    $zapros3 = " and `name` IN ($name)";
} else {$zapros3="";}
        
if ($place){
    $zapros4 = " and `place` IN ($place)";
} else {$zapros4="";}

$foolzapros="WHERE ".$zapros.$zapros2.$zapros3;

//делаем запрос в базу данных
        
$sql = "SELECT * FROM `items` 
$foolzapros
ORDER BY RAND() LIMIT 1
";
if (!$result = $conn->query($sql)) {
    echo "Извините, возникла проблема в работе сайта.";
    exit;
}

while ($data = $result->fetch_assoc()) {

$text=strtolower($data['name']);  
$text = preg_replace('%[^a-zа-я\d]%i', ' ', $text);
$text=str_replace ('   ',' ',$text);
$text=str_replace ('  ',' ',$text);
$text=str_replace (' ','_',$text);

} echo "

<p>
".$data['phone'].".".$data['dateadd'].".".$data['name'].".".$data['place']."
</p>
"
    
?>
</body>
</html>

  • Вопрос задан
  • 119 просмотров
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
@Cat-in-code
<?php

if (isset($_POST['phone'])){
  $zapros1 = " and 'phone' IN ('".$_POST['phone']."')";
} else {$zapros1="";}

if (isset($_POST['dateadd'])){
  $zapros1 = " and 'dateadd' IN ('".$_POST['dateadd']."')";
} else {$zapros2="";}
        
if (isset($_POST['name'])){
  $zapros1 = " and 'name' IN ('".$_POST['name']."')";
} else {$zapros3="";}

if (isset($_POST['place'])){
  $zapros1 = " and 'place' IN ('".$_POST['place']."')";
} else {$zapros4="";}

$foolzapros="WHERE ".$zapros1.$zapros2.$zapros3;


и т.д. по тексту.
Но вообще, так же посмотрите на то, что вы не добавляете $zapros4 к $foolzapros, не используете переменную $text и обязательно:
https://habr.com/post/148151/
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Decadal
@Decadal
if ($phone){
    $zapros1 = " and `phone` IN ($phone)";


интересно откуда здесь могло бы взяться phone? Где вы используете эти свои параметры, которые указали в форме? где $phone = $_POST['phone'] ?? null;
где это вот всё? пхп так не работает как вы написали.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽