Php и база данных

Andrey22222

Новичок
Делал поиск по таблице test, подключался к базе, собственно само подключение прошло, проверил я этими строчками
$query=mysqli_query($connect, "SELECT * FROM test");
while($row=mysqli_fetch_assoc($query)) echo "<h1>".$row['title']."</h1><p>".$row['text']."</p><br>";
таблица вывелась, но когда начал производить проверку по словам, ничего не происходило, в чем может быть проблема
<form methhod="post">
<input type="text" name="search" class="search"><input type="submit" name="submit" value="поиск">
</form>

<?php
if(isset($_POST['submit'])){
$search=$_POST['search'];
$query=mysqli_query($connect, "SELECT * FROM `test` WHERE `title` LIKE '%$search%' OR `text` LIKE '%$search%' ");
while ($row=mysqli_fetch_assoc($query)) echo "<h1>" .$row['title']."</h1><p>" .$row['text']."</p><br>";
?>
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Проблема в неправильном коде, надо отлаживать скрипт. Как это делать phpfaq.ru/debug
 

Фанат

oncle terrible
Команда форума
Ты же редбином пользовался. Зачем на голый mysqli перелез?
Преподы код не поймут?
 

Фанат

oncle terrible
Команда форума
Ну тогда отлаживай. Мы понятия не имеем, что у тебя в $search.

Я тебе в прошлом топике писал - делать по шагам, и каждый шаг проверять.
Ты, конечно же, на этот совет забил, и помчался, уши по ветру, писать все вместе.
Теперь можешь винить только себя - мы отсюда, с форума, никак не узнаем, где ты, в твоем, коде, на твоем компьютере, растерял свои переменные.
 

Andrey22222

Новичок
Ну тогда отлаживай. Мы понятия не имеем, что у тебя в $search.

Я тебе в прошлом топике писал - делать по шагам, и каждый шаг проверять.
Ты, конечно же, на этот совет забил, и помчался, уши по ветру, писать все вместе.
Теперь можешь винить только себя - мы отсюда, с форума, никак не узнаем, где ты, в твоем, коде, на твоем компьютере, растерял свои переменные.
Почему забил, вы видимо невнимательно читали, я же написал, что подключение идёт, цикл работает, строки выводятся, текст с инпута заносится в переменную, и видимо что-то не так на проверке условия, неправильный синтаксис. В $search заносим любое слово, которое будет сравниваться со строками в таблице. Я же код формы тоже прикрепил к начальном сообщению
 
Последнее редактирование:

Фанат

oncle terrible
Команда форума
, я же написал, что подключение идёт, цикл работает, строки выводятся, текст с инпута заносится в переменную
Это все не имеет никакого отношения к проблемному запросу

Еще раз. Я говорил: Все. Делать. По очереди.
Если не работает запрос SELECT * FROM `test` WHERE `title` LIKE '%$search%' OR `text` LIKE '%$search%' ", то надо заниматься только этим запросом
Без форм. Без вывода. Без инпутов. просто взять переменную $search, внести в нее любое слово и проверять конкретно этот запрос, а не миллион действий перед ним.
Дальше будет два варианта
1. Запрос ничего не вернул. Это значит что в базе нет таких данных. Не "я уверен, что они там есть", а их там нет.
2. Запрос отлично работает. Это значит что в $search у тебя все что угодно, но только не переданное значение. Не "я воображаю, что текст с инпута заносится в переменную", а туда ничего не заносится. или заносится не так. И тебе надо разбираться именно с этим. Причем делать это надо было ДО ТОГО как начинать вообще писать запрос с LIKE

Еще раз.
Все твои действия абсолютно примитивные - вывести форму, сделать запрос в БД, вывести результат. Не бином ньютона, даже пятилетний ребенок справится.
Все твои проблемы оттого что ты пытаешься делать все сразу и не проверяешь результат предыдущего действия.
 
Последнее редактирование:

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Ты запрос на числом SQL писал, с подставленным в него результатом поиска из формы? Выполнял? Что он возвращает?

Что выводится в браузер, если вывести строку запроса, что ты сформировал в PHP? А если ее выполнить в консоли mysql, есть результат?
 

WMix

герр M:)ller
Партнер клуба
Спасибо за помощь, поменял POST на GET и все заработало
Делал поиск по таблице test, подключался к базе, собственно само подключение прошло, проверил я этими строчками
$query=mysqli_query($connect, "SELECT * FROM test");
while($row=mysqli_fetch_assoc($query)) echo "<h1>".$row['title']."</h1><p>".$row['text']."</p><br>";
таблица вывелась, но когда начал производить проверку по словам, ничего не происходило, в чем может быть проблема
<form methhod="post">
<input type="text" name="search" class="search"><input type="submit" name="submit" value="поиск">
</form>

<?php
if(isset($_POST['submit'])){
$search=$_POST['search'];
$query=mysqli_query($connect, "SELECT * FROM `test` WHERE `title` LIKE '%$search%' OR `text` LIKE '%$search%' ");
while ($row=mysqli_fetch_assoc($query)) echo "<h1>" .$row['title']."</h1><p>" .$row['text']."</p><br>";
?>
я поменял бы methhod на method
 

Фанат

oncle terrible
Команда форума
Прямо руки опускаются.
Тычешь-тычешь его в собственнуе какашки, чтобы хоть чему-то научился, но он все равно, мамка с ложечки кашкой накормила - самый полезный коментарий.
 
Сверху