Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP: базы данных
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
MrOnlineCoder
Всегда онлайн
613 / 504 / 209
Регистрация: 07.04.2013
Сообщений: 2,083
Завершенные тесты: 2
1

Найти элемент в таблице. Если не найден - выполнить другой код

02.05.2015, 16:13. Просмотров 870. Ответов 8
Метки нет (Все метки)

Здравствуйте! У меня есть таблица links.
Структура
Код
id - INT(11) - Auto_increment
key - VARCHAR(255)
text - TEXT
И например вот есть такие значения:

Код
id | key | text
0    1b1    hello
Мне нужно, если в таблице есть поле, где key равняется $received, то вывести его на экран. Если нету, вывести на экран ошибку.

Я набросал:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
if($_POST["thekey"] == "") {
        exit("Enter code!");
    } else {
        
    $received = $_POST["thekey"];
        $connection = mysqli_connect('localhost','root','111','mybasa');
 
    mysqli_query($connection,"SET NAMES 'cp1251'");
    mysqli_query($connection,"SET CHARACTER SET 'cp1251'");
    
    $result = mysqli_query($connection,"SELECT id FROM links WHERE key = '$received'");
    if(mysqli_num_rows($result) == 0) {
        die("Not found!");
    } else {
     echo $received;
    }
 
    }
Но мне пишет

Цитата Сообщение от MySQL Error
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, object given in /home/u957092631/public_html/searchlink.php on line 13
Not found!
Хотя в таблцие запись есть.
Что делать и как исправить?
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.05.2015, 16:13
Ответы с готовыми решениями:

Как выполнить код если процесс найден (if) или не найден (else)
вот пример! using System; using System.Collections.Generic; using System.ComponentModel;...

Как сделать при поиске в таблице (через AdoQuery) вывод ошибки, если элемент не был найден?
таблица подключена через ADOQuery1, а столбец поиска мы указываем через радиоруп.void __fastcall...

Выполнить определённый сценарий, если найден заданный процесс
Здравствуйте. Есть батничек tasklist | Find /i "Process.exe" || (goto Else) т.е. если Process.exe...

Если элемент найден, то удалить его и следующий за ним элемент из массива
Сформировать массив x, упорядоченный по убыванию. Определить, содержит ли он заданное число. Если...

Если элемент найден, то удалить его и стоящий перед ним элемент
всем привет, подскажите как сделать чтобы, чтобы удалялся перед найденым, стоящий перед ним...

8
fanatikus
1262 / 1200 / 565
Регистрация: 17.11.2012
Сообщений: 5,387
02.05.2015, 18:29 2
PHP
1
2
3
4
5
6
7
$result = mysqli_query($connection,"SELECT id FROM links WHERE key = '".$received."'");
$row = mysqli_fetch_row($result);
    if(!$row) {
        die("Not found!");
    } else {
     echo $received;
    }
0
MrOnlineCoder
Всегда онлайн
613 / 504 / 209
Регистрация: 07.04.2013
Сообщений: 2,083
Завершенные тесты: 2
05.05.2015, 15:13  [ТС] 3
fanatikus, спасибо. Но мне нужно вывести text того поля, в котором key=$received
0
Trukl
Заблокирован
05.05.2015, 15:46 4
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
if($_POST["thekey"] == "") {
        exit("Enter code!");
    } else {
        
    $received = $_POST["thekey"];
    $connection = mysqli_connect('localhost','root','111','mybasa');
 
    mysqli_query($connection,"SET NAMES 'cp1251'");
    mysqli_query($connection,"SET CHARACTER SET 'cp1251'");
    
    $result = mysqli_query($connection,"SELECT `id` FROM `links` WHERE `key` = '$received'");
    if($result->num_rows == 0) echo 'Не найден!';
    elseif($result->num_rows > 0){      
        while ($row = $result->fetch_assoc()){
        echo $row['id']."<br>";
        }
    }
    else echo 'Чёт не то с запросом!';
 
    }
0
05.05.2015, 15:46
MrOnlineCoder
Всегда онлайн
613 / 504 / 209
Регистрация: 07.04.2013
Сообщений: 2,083
Завершенные тесты: 2
05.05.2015, 16:02  [ТС] 5
Trukl, пишет Не найден, хотя в таблице запись есть.
0
Trukl
Заблокирован
05.05.2015, 16:12 6
PHP
1
if($result->num_rows === 0) echo 'Не найден!';
1
MrOnlineCoder
Всегда онлайн
613 / 504 / 209
Регистрация: 07.04.2013
Сообщений: 2,083
Завершенные тесты: 2
05.05.2015, 17:14  [ТС] 7
Trukl, после исправления пишет Чет не те с запросом
0
Trukl
Заблокирован
05.05.2015, 17:26 8
Цитата Сообщение от MrOnlineCoder Посмотреть сообщение
Trukl, после исправления пишет Чет не те с запросом
И ЧиТо еСчо от меня трэба?
Как по мне так всё понятно. Ищи где накосячил выше по коду.
0
MrOnlineCoder
Всегда онлайн
613 / 504 / 209
Регистрация: 07.04.2013
Сообщений: 2,083
Завершенные тесты: 2
05.05.2015, 18:58  [ТС] 9
Trukl, спасибо, проблему добил сам.
0
05.05.2015, 18:58
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.05.2015, 18:58

Удалить записи из таблицы product_to_category, если product_id не найден в таблице product
Запрос для cms opencart Есть таблица product (хранит в себе product_id), таблица categoty (хранит...

Выдать сообщение, если элемент не найден в БД
Как сделать проверку поиска при oborudovanieBindingSource.Position =...

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


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.