Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   [решено] Проверка наличия поля в таблице БД (http://forum.oszone.net/showthread.php?t=103186)

Artem-Samsung 19-03-2008 16:51 763699

Проверка наличия поля в таблице БД
 
PHP код:

$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 763758

Artem-Samsung,
Надо смотреть количество строк - вроде mysql_num_rows($result) или чтото типа того

Artem-Samsung 19-03-2008 19:08 763799

Типа как ба проверять считает ли оно строчки или нет? Если нет, то поля нет? ))
Чуть недопонял.

rus-4-ever 19-03-2008 19:26 763805

mysql_list_fields — Возвращает список колонок таблицы

resource mysql_list_fields ( string $database_name , string $table_name [, resource $link_identifier ] )

тут разобран пример: http://www.php.net/manual/ru/functio...ist-fields.php

mysql_list_tables — Возвращает список таблиц базы данных MySQL

resource mysql_list_tables ( string $database [, resource $link_identifier ] )

тут разобран пример: http://www.php.net/manual/ru/functio...ist-tables.php

Таким образом ты увидишь какие поля и таблицы есть

Artem-Samsung 19-03-2008 20:25 763835

Спасибо. Освоил эти приемы.
Но мне нужно проверить на наличие именно строчки, а здесь сам заголовок столбика.
Например:
"SELECT `link` FROM `menu` WHERE link='$aaa'"

Здесь как бы хотел проверить в таблице меню, в поле линк есть ли значение которое соответсвует $aaa
Может у меня немножко туго с терминологией) Извиняюсь)

vadimiron 19-03-2008 20:41 763844

Цитата:

Цитата Artem-Samsung
Здесь как бы хотел проверить в таблице меню, в поле линк есть ли значение которое соответсвует $aaa »

Посмотрит ещё раз мой первый пост

И пользуйтесь мануалом PHP, чтобы посмотреть, что делают те или иные функции

Artem-Samsung 19-03-2008 21:23 763881

фантастика))))

PHP код:

$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 763885

Лучше
PHP код:

if ( $num_rows

ибо строк может бить больше одной (возможно и не в вашем случае, но так надежнее)

Artem-Samsung 19-03-2008 21:40 763895

Да, спасибо. Я подправил. Вот полностью скриптик))

PHP код:

$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 
'Перевірте, будь ласка, правельність введення данних'



Время: 07:35.

Время: 07:35.
© OSzone.net 2001-