Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
Всегда онлайн
 Аватар для MrOnlineCoder
1084 / 788 / 295
Регистрация: 07.04.2013
Сообщений: 2,703
MySQL

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

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

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

Code
1
2
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
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.05.2015, 16:13
Ответы с готовыми решениями:

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

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

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

8
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
02.05.2015, 18:29
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
1084 / 788 / 295
Регистрация: 07.04.2013
Сообщений: 2,703
05.05.2015, 15:13  [ТС]
fanatikus, спасибо. Но мне нужно вывести text того поля, в котором key=$received
0
Заблокирован
05.05.2015, 15:46
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
Всегда онлайн
 Аватар для MrOnlineCoder
1084 / 788 / 295
Регистрация: 07.04.2013
Сообщений: 2,703
05.05.2015, 16:02  [ТС]
Trukl, пишет Не найден, хотя в таблице запись есть.
0
Заблокирован
05.05.2015, 16:12
PHP
1
if($result->num_rows === 0) echo 'Не найден!';
1
Всегда онлайн
 Аватар для MrOnlineCoder
1084 / 788 / 295
Регистрация: 07.04.2013
Сообщений: 2,703
05.05.2015, 17:14  [ТС]
Trukl, после исправления пишет Чет не те с запросом
0
Заблокирован
05.05.2015, 17:26
Цитата Сообщение от MrOnlineCoder Посмотреть сообщение
Trukl, после исправления пишет Чет не те с запросом
И ЧиТо еСчо от меня трэба?
Как по мне так всё понятно. Ищи где накосячил выше по коду.
0
Всегда онлайн
 Аватар для MrOnlineCoder
1084 / 788 / 295
Регистрация: 07.04.2013
Сообщений: 2,703
05.05.2015, 18:58  [ТС]
Trukl, спасибо, проблему добил сам.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.05.2015, 18:58
Помогаю со студенческими работами здесь

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

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

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

Выдать сообщение, если элемент не найден в БД
Как сделать проверку поиска при oborudovanieBindingSource.Position = oborudovanieBindingSource.Find(&quot;Наименование&quot;, name);, если не...

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


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru