Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
0 / 0 / 1
Регистрация: 11.08.2015
Сообщений: 96

При выборе критерий выводит: "Данных в базе не найдено". Почему не работает?

11.05.2017, 18:53. Показов 2127. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
форма
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<form method="POST" action="input.php">
    <p>Выбор района</p>
    <p>  
       <input type="checkbox" checked name="rayon[]" value="ГГМ">ГГМ<br>
        <input type="checkbox" name="rayon[]" value="ВМЗ">ВМЗ<br>
        <input type="checkbox" name="rayon[]" value="Выя">Выя<br> 
        <input type="checkbox" name="rayon[]" value="Город">Центр<br>
        <input type="checkbox" name="rayon[]" value="Кр.камень">Кр.камень<br>
        <input type="checkbox" name="rayon[]" value="Вагонка">Вагонка<br>
        <input type="checkbox" name="rayon[]" value="Тагилстой">Тагилстой<br> 
        <input type="checkbox" name="rayon[]" value="Северный">Северный<br>
   </p>
   <p>Этаж</p>
   <p>
        <input type="checkbox" name="level[]" value="">любой<br>
        <input type="checkbox" name="level[]" value="1">1<br>
        <input type="checkbox" name="level[]" value="2">2<br> 
        <input type="checkbox" name="level[]" value="3">3<br> 
        <input type="checkbox" name="level[]" value="4">4<br> 
        <input type="checkbox" name="level[]" value="5">5<br> 
        <input type="checkbox" name="level[]" value="cb5">более 5<br>
   </p>
   <p>Площадь</p>
<p>
     <input type="radio" name="area" value="50-80">50-80<br>
     <input type="radio" name="area" value="80-120">80-120<br>
</p>
        
   </p>
   <p><input type="submit" name="sub" value="Выбрать"></p>
  </form>
Обработчик:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
        if (isset($_POST['sub'])) {
            
            $mysqli = new mysqli('localhost', 'admin', '1234', 'choice');
            $mysqli->set_charset("utf8");
            if ($mysqli->connect_error) {
                die('Connect Error (' . $mysqli->connect_errno . ') ' . $mysqli->connect_error);
                
            }
            $rayon = implode("','", $_POST['rayon']);
           
            $level = implode("','", $_POST['level']);
            $area_array = explode('-',$_POST['area']);
            $area_start = $area_array[0];
            $area_end = $area_array[1];
            $sql = "select * from choice_tb where `rayon` in ('" . $rayon . "') and `level` in ('" . $level . "') and `total_area` BETWEEN " .$area_start. " AND " .$area_end ;
            $res = $mysqli->query($sql);
            var_dump($sql);
            if ($mysqli->errno) {
                echo 'Select Error (' . $mysqli->errno . ') ' . $mysqli->error;
            } else {
                if ($res->num_rows) {
                   while ($row = $res->fetch_assoc()) {
                        ?>
                        <p> <a href="view.php?id=<?php echo $row['id']; ?>"><?php echo $row['adress']; ?></a> </p>
                    <?php }
                    
                } else {?>
                    <p>данных в базе не найдено</p>
                <?php
                }
            }
        }
        
        ?>
При выборе критерий выводит: данных в базе не найдено.
В базе поля есть.. В phpmyadmin копирую запрос все проходит отображает поля..
Стоял Денвер, Поставил OpenServer Все также..
Что может быть??
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.05.2017, 18:53
Ответы с готовыми решениями:

Нужно сделать чтобы при выборе в DBList1 пункта в Label 1,2,3 тоже переходила по базе данных
Помогите пожалуйста! Нужно сделать чтобы при выборе в DBList1 пункта в Label 1,2,3 тоже переходила по базе данных. Подскажите пожалуйста...

Почему при выборе switch у меня не работает вывод дерева на экран?!
////////////////////////////////////////////////////// // // // Ñîçäàòü ïðîãðàììó äëÿ...

Почему ошибка при обращении к базе данных ?
Помогите пожалуйста запустить сервлет. Сервлет генерирует после запуска из под Tomcate 4.0 исключение типа...

23
15 / 15 / 7
Регистрация: 17.12.2016
Сообщений: 172
11.05.2017, 19:09
Цитата Сообщение от krayder Посмотреть сообщение
if ($res->num_rows) {
У тебя не выполняется условие, вот и не работает.
А что за условие у тебя? попытался найти аналоги твоей, безуспешно.
0
0 / 0 / 1
Регистрация: 11.08.2015
Сообщений: 96
11.05.2017, 19:13  [ТС]
И что переделать?
0
15 / 15 / 7
Регистрация: 17.12.2016
Сообщений: 172
11.05.2017, 19:26
Цитата Сообщение от krayder Посмотреть сообщение
И что переделать?
Условие которое я тебе показал, и как я уже спрашивал, что ты написал в условии?

Добавлено через 8 минут
Цитата Сообщение от serj0110 Посмотреть сообщение
Сообщение от krayder
И что переделать?
Условие которое я тебе показал, и как я уже спрашивал, что ты написал в условии?
Кажется понял, попробуй так
PHP
1
$row_cnt = $result->num_rows;
а условие
PHP
1
if (!empty($row_cnt))
Прошу прощения, сразу не понял что это, никогда не использовал mysqli_num_rows
0
0 / 0 / 1
Регистрация: 11.08.2015
Сообщений: 96
11.05.2017, 19:43  [ТС]
все также.

Добавлено через 10 минут
Дописал $row_cnt = $result->num_rows;

printf("В выборке %d рядов.\n", $row_cnt);
пишет что 0 рядов в выборке.
0
15 / 15 / 7
Регистрация: 17.12.2016
Сообщений: 172
11.05.2017, 19:49
Цитата Сообщение от krayder Посмотреть сообщение
все также.
Тогда могу дать один совет, но это лично моё мнение.
Прежде чем писать условия на проверку, пиши всё на прямую как должно работать и после каждого условия выводи какое-нибудь сообщение для проверки, что бы узнать где рыть при ошибке.
Не знаю заработает ли мой способ, но попробую написать без ошибок, так как я после каждого куска кода стараюсь тестировать на правильность его логики
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
if ($mysqli->errno) {
                echo 'Select Error (' . $mysqli->errno . ') ' . $mysqli->error;
            } else {
                   $counter = 0;
                   $arr = array();
                   while ($row = $res->fetch_assoc()) {
                       $arr[$counter] = $row;
                       $counter++;
                   }
                   if ( empty($arr) ) { ?>
                       <p>данных в базе не найдено</p>
                   <? } else { ?>
                       foreach($arr as $key => $value) { ?>
                            <p> <a href="view.php?id=<?php echo $arr[$key]['id']; ?>"><?php echo $arr[$key]['adress']; ?></a> </p>
                       <? }
                    } ?>
            }
0
0 / 0 / 1
Регистрация: 11.08.2015
Сообщений: 96
11.05.2017, 19:57  [ТС]
Спасибо за совет.. Все без изменений.. Пишет что в базе данных нет.
0
15 / 15 / 7
Регистрация: 17.12.2016
Сообщений: 172
11.05.2017, 20:00
Цитата Сообщение от krayder Посмотреть сообщение
Спасибо за совет.. Все без изменений.. Пишет что в базе данных нет.
Остаётся последнее, ты не правильно составил запрос)
0
0 / 0 / 1
Регистрация: 11.08.2015
Сообщений: 96
11.05.2017, 20:05  [ТС]
Через Var_damp приходит select * from choice_tb where `rayon` in ('ГГМ','Кр.камень') and `level` in ('3','4') and `total_area` BETWEEN 50 AND 80 В phpmyadmin копирую запрос выполняю все отображает.
0
15 / 15 / 7
Регистрация: 17.12.2016
Сообщений: 172
11.05.2017, 20:08
Цитата Сообщение от krayder Посмотреть сообщение
Через Var_damp приходит select * from choice_tb where `rayon` in ('ГГМ','Кр.камень') and `level` in ('3','4') and `total_area` BETWEEN 50 AND 80 В phpmyadmin копирую запрос выполняю все отображает.
Попробуй проверить вручную $arr после цикла
echo "<pre>";
print_r($arr);
echo "</pre>";
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
11.05.2017, 23:29
Цитата Сообщение от serj0110 Посмотреть сообщение
А что за условие у тебя? попытался найти аналоги твоей, безуспешно.
mysqli_result::$num_rows -- mysqli_num_rows — Получает число рядов в результирующей выборке(из документации)
скажу больше. код krayder писал я. прежде чем выложить проверил, все прекрасно работает. у т.с какой-то полтергейст на компе
0
15 / 15 / 7
Регистрация: 17.12.2016
Сообщений: 172
11.05.2017, 23:38
Цитата Сообщение от fanatikus Посмотреть сообщение
mysqli_result::$num_rows -- mysqli_num_rows — Получает число рядов в результирующей выборке(из документации)
скажу больше.
Документацию читать умею, не сразу нашел как я говорил выше
Цитата Сообщение от serj0110 Посмотреть сообщение
Прошу прощения, сразу не понял что это, никогда не использовал mysqli_num_rows
Цитата Сообщение от fanatikus Посмотреть сообщение
код krayder писал я
Что ты имел ввиду под этим?
0
 Аватар для arava
340 / 135 / 70
Регистрация: 30.06.2014
Сообщений: 717
12.05.2017, 12:30
krayder, попробуйте так, если нету прошу Вас выложить дамп БД
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
        if (isset($_POST['sub'])) {
            
            $mysqli = new mysqli('localhost', 'admin', '1234', 'choice');
            $mysqli->set_charset("utf8");
            if ($mysqli->connect_error) {
                die('Connect Error (' . $mysqli->connect_errno . ') ' . $mysqli->connect_error);
                
            }
            $rayon = implode("','", $_POST['rayon']);
           
            $level = implode("','", $_POST['level']);
            $area_array = explode('-',$_POST['area']);
            $area_start = $area_array[0];
            $area_end = $area_array[1];
            $sql = "select * from choice_tb where `rayon` in ('" . $rayon . "') and `level` in ('" . $level . "') and `total_area` BETWEEN " .$area_start. " AND " .$area_end ;
            $res = $mysqli->query($sql);
            var_dump($sql);
 
                   while ($row = $res->fetch_assoc(MYSQLI_ASSOC)) {  ?>
                        <p> <a href="view.php?id=<?php echo $row['id']; ?>"><?php echo $row['adress']; ?></a> </p>
                    <?php  }
        }
        
        ?>
Добавлено через 3 минуты
krayder, и заметил что нету закрывающей кавычки
PHP
1
$sql = "select * from choice_tb where `rayon` in ('" . $rayon . "') and `level` in ('" . $level . "') and `total_area` BETWEEN " .$area_start. " AND " .$area_end." ;
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
12.05.2017, 14:52
Цитата Сообщение от serj0110 Посмотреть сообщение
Что ты имел ввиду под этим?
вот это
Цитата Сообщение от fanatikus Посмотреть сообщение
прежде чем выложить проверил, все прекрасно работает.
Добавлено через 2 минуты
Цитата Сообщение от arava Посмотреть сообщение
и заметил что нету закрывающей кавычки
в данном случае, она не нужна.
0
0 / 0 / 1
Регистрация: 11.08.2015
Сообщений: 96
12.05.2017, 18:48  [ТС]
Цитата Сообщение от fanatikus Посмотреть сообщение
у т.с какой-то полтергейст на компе
На другом компе запустить?
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
12.05.2017, 19:07
Цитата Сообщение от krayder Посмотреть сообщение
На другом компе запустить?
я уже не знаю, что посоветовать
0
0 / 0 / 1
Регистрация: 11.08.2015
Сообщений: 96
12.05.2017, 19:47  [ТС]
На счет проверки не как не могу сообразить.. Проверить переменную, если есть она то вставить ее в запрос.

Добавлено через 29 минут
if (isset($_POST['rayon'])) {
$rayon = implode("','", $_POST['rayon']);
}
$sql = "select * from choice_tb where `rayon` in ('" . $rayon . "') and `level` in ('" . $level . "') and `total_area` BETWEEN " .$area_start. " AND " .$area_end ;
Так? Не судите строго я недавно начал изучать php.
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
12.05.2017, 19:54
Цитата Сообщение от krayder Посмотреть сообщение
Проверить переменную, если есть она то вставить ее в запрос.
примерно так
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
    <?php
    if (isset($_POST['sub'])) {
        $mysqli = new mysqli('localhost', 'admin', '1234', 'choice');
        $mysqli->set_charset("utf8");
        if ($mysqli->connect_error) {
            die('Connect Error (' . $mysqli->connect_errno . ') ' . $mysqli->connect_error);
        }
        $sql = "select * from `choice_tb`";
        if(isset($_POST['rayon']) || isset($_POST['level']) ){
            $sql .= "  where";
        }
        
        if (isset($_POST['rayon'])) {
            $rayon = implode("','", $_POST['rayon']);
            $sql .= "  `rayon` in ('" . $rayon . "')";
        }
        
        if (isset($_POST['level'])) {
            $level = implode("','", $_POST['level']);
            if(isset($rayon)) {
                $sql .= "  and `level` in ('" . $level ."')";
            } else {
                $sql .= "  `level` in ('" . $level ."')";
            }
        }
 
        if (isset($_POST['area'])) {
             $area_array = explode('-', $_POST['area']);
             $area_start = $area_array[0];
             $area_end = $area_array[1];
             $sql .= " and `total_area` BETWEEN " . $area_start . " AND " . $area_end;
        }
        
        $res = $mysqli->query($sql);
        //var_dump($sql);
 
        while ($row = $res->fetch_assoc()) {
            ?>
            <p> <a href="view.php?id=<?php echo $row['id']; ?>"><?php echo $row['adress']; ?></a> </p>
        <?php
        }
    }
    ?>
если вообще ничего не выбрано, выводит все записи из таблицы.

Добавлено через 4 минуты
Цитата Сообщение от krayder Посмотреть сообщение
Так?
нет.
вы, объявляете переменную $rayon, при условии если существует $_POST['rayon'], а в запросе, она в любом случае.
следовательно, если сработает условие, будет ошибка - "неопределенная переменная"
0
0 / 0 / 1
Регистрация: 11.08.2015
Сообщений: 96
12.05.2017, 20:06  [ТС]
Спасибо за разъяснения.

Добавлено через 4 минуты
Что то странное происходит.. Если район не выбирать, а только этаж, то выводит записи.. Выбираю район и этаж просто пустая страница..

Добавлено через 3 минуты
При выборе только площади выводит ошибку Fatal error: Call to a member function fetch_assoc() on a non-object
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
12.05.2017, 21:05
Цитата Сообщение от krayder Посмотреть сообщение
Что то странное происходит.. Если район не выбирать, а только этаж, то выводит записи.. Выбираю район и этаж просто пустая страница..
я в шоке. прежде чем выложить код, проверил(и без выбора, и с выбором одного из пунктов) все работает.

Добавлено через 1 минуту
вы, ничего от себя не добавляли? чисто мой код?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.05.2017, 21:05
Помогаю со студенческими работами здесь

Почему макрос работает только для тех файлов, которые открыты вручную, а не при выборе, когда вылазит диалоговое окно?
Среда ругается на каждый For Each p In ActiveDocument Sub BatchProcessing() Dim w As Word.Words Dim sec As Word.Section ...

При повторном выводе данных в RichMemo выводит не все! Почему?
Ввожу данные в поля Edit формы 1. Нажимаю кнопку вычислить. Получаю результат расчета. Нажимаю кнопку вывести данные в RichMemo и туда...

Не работает UPDATE при запросе к базе данных
И так, и этак пыталась, запрос ему вроде нравиться, но обновление он полностью игнорирует. при том что с удалением и добавлением нет...

При выборе свича не выводит информацию в консоль
Всем привет!При выборе 3 свича ничего не выводит на экран.В чем проблема? #include &lt;iostream&gt; #include &lt;fstream&gt; #include...

При выборе авто не полностью выводит модель первого автомобиля
Помогите понять ошибку. При выборе авто не полностью выводит модель первого автомобиля. Не могу сообразить в чем дело. #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru