Проверка наличия таблицы

-faqer-

Я только учусь
Проверка наличия таблицы

Подскажите плс каким образом можно проверить наличие в определенной базе таблицы с определенным названием
Я в начале сделал так
PHP:
if (mysql_num_rows(mysql_query("SELECT * FROM table")) != 0) {echo "Таблица table есть в базе"; exit;}
echo "Таблицы table нет в базе"
Но потом понял, что если таблица есть, но она пустая, то уже некоректно будет
Подскажите есть для решения моей задачи функция в мускуле
Заранее спасибо
 

Larson

Новичок
PHP:
$sql = "SELECT id FROM table";
$result = @mysql_query($sql);
if (@mysql_num_rows($result) > 0)
{
    echo "Таблица table есть в базе"; 
} 
else
{
     echo "Таблицы table нет в базе";
}
 

-faqer-

Я только учусь
2 Larson
Не не катит если таблица есть, но в ней нет ни одной строки, то выдаст то же что при отсутствии таблицы, т.е ничего
Я сделал в конце концов так
PHP:
if (@mysql_num_rows(mysql_query("SHOW INDEX FROM table"))) == 1){Делаем то-то;}
 

Demiurg

Guest
-faqer- , а если в таблице нет индексов ?
Тебе ForJest дал решение, его и используй.
 

Larson

Новичок
Блин, ну ты даешь, я еще должен угадывать что тебе катит, а что нет.
Это твой вариант не катит, т к индексов может и не быть.
 

jet21

Guest
mysql_list_tables ( string database [, resource link_identifier])
mysql_tablename (resource result, int i)
 

tony2001

TeaM PHPClub
народ, хва извращаться решение уже давно найдено.
самое первое - самое верное.
 

-faqer-

Я только учусь
2 Larson
Ну тогда точнее наши оба не катят
мна-мна....
Просвятите
А что значит нет индексов????
 

-faqer-

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

jet21

Guest
Автор оригинала: -faqer-
И еще одно уточнение, я сразу не сказал.
я проверяю, чтоб не было таблиц, созданных именно мной, а те которые я создаю, всегда имеют индекс, т.к. я просто не знаю, как это создать таблицу без индексов.
Просвятите плс
Так ты ж наверняка делаешь id primary key auto_increment
А это уникальный индекс
 

Апельсин

Оранжевое создание
> я просто не знаю, как это создать таблицу без индексов.
:)
просто их не создавать :)
т.е. не указывать ни primary key, ни unique(), ни index(), ни key(), ни fulltext() ..
 

-faqer-

Я только учусь
2 Апельсин
Спасибо, вразумил (или, если я не ошибаюсь вразумила)
Т.е. у меня вопрос возник при такой ситуации
Создаются таблицы для логов к разным событиям с названиеями допустим log_post_err, log_search, log_search_err и т.д. т.е при создании новой таблицы не хочется, чтоб затерлась уже существуюющая с данными
Для моих целей вроде метод
if (@mysql_num_rows(mysql_query("SHOW INDEX FROM table"))) == 1){Делаем то-то;} подходит
Всем спасибо!!!
 

Larson

Новичок
А ты пробовал создать таблицу, если она существует?

CREATE TABLE IF NOT EXISTS ....
 

-faqer-

Я только учусь
2 Demiurg
Не временные тут не покатят
Мне так кажется

2 Larson
Не мне надо там сообщение вывести вобщем там целый ПРОЦЕСС

Всем спасибо
 
Сверху