Показать полную графическую версию : [решено] Проверка наличия поля в таблице БД
Artem-Samsung
19-03-2008, 16:51
$aaa = 'fiasdasdlms';
$result = mysql_query("SELECT `link` FROM `menu` WHERE link='$aaa'");
if ($result == true) {
echo 'hello';
}
else {echo 'error';}
Такого элемента в поле link не существует, но все равно выводит на экран 'Hello'
Что я делаю не так? Я первый раз занимаюсь проверкой на наличии в БД поля или элемента в этом поле.
Вообщем, я успешно написал скрипт, где добавляется в БД таблица, поля там разные в таблицах и элементы.
Сейчас же пытаюсь сделать так, что бы поля не заменялись друг на друга, если вдруг пользователь админки напишет элемент который уже существует.
Еще, если не сложно подскажите как проверить на существование таблицы и поля.
Спасибо
vadimiron
19-03-2008, 17:50
Artem-Samsung,
Надо смотреть количество строк - вроде mysql_num_rows($result) или чтото типа того
Artem-Samsung
19-03-2008, 19:08
Типа как ба проверять считает ли оно строчки или нет? Если нет, то поля нет? ))
Чуть недопонял.
rus-4-ever
19-03-2008, 19:26
mysql_list_fields — Возвращает список колонок таблицы
resource mysql_list_fields ( string $database_name , string $table_name [, resource $link_identifier ] )
тут разобран пример: http://www.php.net/manual/ru/function.mysql-list-fields.php
mysql_list_tables — Возвращает список таблиц базы данных MySQL
resource mysql_list_tables ( string $database [, resource $link_identifier ] )
тут разобран пример: http://www.php.net/manual/ru/function.mysql-list-tables.php
Таким образом ты увидишь какие поля и таблицы есть
Artem-Samsung
19-03-2008, 20:25
Спасибо. Освоил эти приемы.
Но мне нужно проверить на наличие именно строчки, а здесь сам заголовок столбика.
Например:
"SELECT `link` FROM `menu` WHERE link='$aaa'"
Здесь как бы хотел проверить в таблице меню, в поле линк есть ли значение которое соответсвует $aaa
Может у меня немножко туго с терминологией) Извиняюсь)
vadimiron
19-03-2008, 20:41
Здесь как бы хотел проверить в таблице меню, в поле линк есть ли значение которое соответсвует $aaa »
Посмотрит ещё раз мой первый пост
И пользуйтесь мануалом PHP, чтобы посмотреть, что делают те или иные функции
Artem-Samsung
19-03-2008, 21:23
фантастика))))
$result = mysql_query("SELECT link FROM menu WHERE link='$link'", $db);
$num_rows = mysql_num_rows($result);
if($num_rows == 1) {
echo 'go';
}
else {
echo 'error';
}
Strange_V
19-03-2008, 21:29
Лучше
if ( 0 < $num_rows)
ибо строк может бить больше одной (возможно и не в вашем случае, но так надежнее)
Artem-Samsung
19-03-2008, 21:40
Да, спасибо. Я подправил. Вот полностью скриптик))
$result = mysql_query("SELECT link FROM menu WHERE link='$link'", $db);
$num_rows = mysql_num_rows($result);
if (isset($category) && isset($menu) && isset($link) && isset($editor) && isset($cont)) {
if($num_rows == 0) {
mysql_query(" CREATE TABLE $_POST[link]
(`id` INT( 3 ) NOT NULL AUTO_INCREMENT ,`link` VARCHAR( 255 ) NOT NULL ,
`editor` VARCHAR( 255 ) NOT NULL , `title` VARCHAR( 255 ) NOT NULL , `cont` TEXT NOT NULL , PRIMARY KEY ( `id` ));");
mysql_query(" INSERT INTO $_POST[link] ( `id` , `link` , `editor` , `title` , `cont` )
VALUES ('', 'index', '$_POST[editor]', 'Головна сторінка', '$_POST[cont]');");
mysql_query("INSERT INTO `menu` ( `id` , `title` , `link` , `category` , `m` )
VALUES ('', '$_POST[menu]', '$_POST[link]', '$_POST[category]', '$_POST[number]');");
echo 'Данні успішно додані до БД';
}
else {
echo 'Такий ідентифікатор вже існує.';
}
}
else echo 'Перевірте, будь ласка, правельність введення данних';
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.