Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.04.2009, 16:19   #1
Андрей79
Пользователь
 
Регистрация: 15.02.2009
Сообщений: 63
По умолчанию Помогите с запросом SQL пожалуйста

Делаю сайт рецептов. В БД было несколько таблиц - 1 блюда, 1 блюда и т.д. Объединил их в одну таблицу, добавив разные id для сортировки блюд, так вот теперь выдает ошибку при выборке данных из мускула...
Выводилось следующим образом:
Код:
<? 
include $DOCUMENT_ROOT."/templates/config.php"; 

$query="SELECT * FROM 1_bluda WHERE id=1"; 
$result=mysql_query($query); 

echo '<table><tr>'; 

$counter=0; 
$counter2=0; 

/строка 37/ while($r=mysql_fetch_array($result)) 
{ 
    $counter=$counter+1; 
    $counter2=$counter2+1; 

    echo '<td><a href="window.php?a='.$r["name"].'" target="_blank">'.$r["name"].'</a></td>'; 

/Строка 55/    if(mysql_num_rows($result)>15 and mysql_num_rows($result)!=$counter2 and $counter==2) 
    { 
        $counter=0; 
        echo '</tr><tr>'; 
    } 
    elseif(mysql_num_rows($result)!=$counter2 and mysql_num_rows($result)<=15) 
    { 
        echo '</tr><tr>'; 
    } 
} 

if(mysql_num_rows($result)>15 and $counter==1) 
{ 
    echo '<td>&nbsp;</td>'; 
} 

echo '</tr></table>'; 

mysql_close(); 
?>
Теперь нужно выводить из таблицы "all" допустим, id=1 и raznovidnost=2, как это реализовать?
Когда в запросе меняю имя таблицы "1_bluda" на "all", выдает следующую ошибку:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/www/ххххх/htdocs/kulinar4ik/cat/1_bluda/id_1.php on line 37

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/www/ххххх/htdocs/kulinar4ik/cat/1_bluda/id_1.php on line 55
Андрей79 вне форума Ответить с цитированием
Старый 04.04.2009, 16:54   #2
wyvern
Форумчанин
 
Аватар для wyvern
 
Регистрация: 24.03.2009
Сообщений: 215
По умолчанию

приведите структуру таблички
(desc 1_bluda)
wyvern@localhost:~$ sudo emerge --unmerge world
wyvern вне форума Ответить с цитированием
Старый 04.04.2009, 17:00   #3
Андрей79
Пользователь
 
Регистрация: 15.02.2009
Сообщений: 63
По умолчанию

Цитата:
Сообщение от wyvern Посмотреть сообщение
приведите структуру таблички
(desc 1_bluda)
таблица 1_bluda:
id, name, ingredients, deskription

новая таблица (all), в которую объединил все другие:
id, raznovidnost, nacional, dieta, name, ingredients, deskription

Вроде бы нужно только сменить название таблицы в запросе, и по id должно же выводить... Но выдает указанную выше ошибку...
Андрей79 вне форума Ответить с цитированием
Старый 04.04.2009, 17:20   #4
RJ Presto
Пользователь
 
Регистрация: 02.04.2009
Сообщений: 17
По умолчанию

может "all" - какое-то зарезервиваное слово и в $result приходит непонятно что?
попробуй переименовать таблицу в "all_" например
RJ Presto вне форума Ответить с цитированием
Старый 04.04.2009, 17:37   #5
wyvern
Форумчанин
 
Аватар для wyvern
 
Регистрация: 24.03.2009
Сообщений: 215
По умолчанию

еще можно попробовать сделать так
select * from '1_bluda' where.......

не факт, что проблема в этом, но все же...
wyvern@localhost:~$ sudo emerge --unmerge world
wyvern вне форума Ответить с цитированием
Старый 04.04.2009, 19:07   #6
Андрей79
Пользователь
 
Регистрация: 15.02.2009
Сообщений: 63
По умолчанию

Цитата:
может "all" - какое-то зарезервиваное слово и в $result приходит непонятно что?
попробуй переименовать таблицу в "all_" например
Ёпырысыты.... Офигеть. Действительно, помогло ))) +1 с меня.. А нет ли где списка таких словьёв, которые низя в мускуле использовать? Что бы потом проблемм небыло? А то пол дня мучался.. Все уж перепробовал...

Цитата:
еще можно попробовать сделать так
select * from '1_bluda' where.......

не факт, что проблема в этом, но все же...
Проблемма решена) Но тем не менее, спасибо Вам огромное за уделенное время).
Андрей79 вне форума Ответить с цитированием
Старый 05.04.2009, 00:19   #7
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

почитай Грубера (здесь в топе была прилепленная тема с книжками по SQL) - оч.полезно
soleil@mmc вне форума Ответить с цитированием
Старый 05.04.2009, 01:08   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от soleil@mmc
почитай Грубера
+1 Мартин Грубер "Понимание SQL" (Understanding SQL) — это безусловно классика! (кстати, есть тут - Документация по MySQL)

Цитата:
Сообщение от Андрей79
А нет ли где списка таких словьёв, которые низя в мускуле использовать?
вот. конкретно для MySQL:
8.3. Reserved Words

А вообще, открываете _любую_ книжку/сайт по SQL (да хоть тот же сайт MySQL.RU .:. Одобрено лучшими российскими программистами или, лучше, на оригинальном MySQL :: MySQL 5.0 Reference Manual :: 12.2.8 SELECT Syntax )
внимательно читаем, обращаем внимание на агрегатные и системные функции (sum, avg, date, time, now и т.п.) и все КЛЮЧЕВЫЕ слова - НЕ ИСПОЛЬЗУЕМ в качестве имён таблиц и полей!
Пусть в большинстве случаев это перестраховка (мне попадались работающие таблицы с полем SUM, например), но неужели Ваша фантазия не позволит дописать к ключевому слову ЛЮБУЮ букву или цифру, чтобы оно стало гарантированно безопасным (да в большинстве случаев и более понятным.
Вот, в Вашем случае, как понятнее: таблица all или таблица all_recipes?

p.s. максимально допустимая длина идентификатора зависит от СУБД, надо смотреть в описании СУБД.
для MySQL это 64 символа (8.2. Schema Object Names)
согласитесь, что можно написать осмысленный текст :-)
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите пожалуйста с запросом silvereye SQL, базы данных 4 03.09.2008 18:16
Ребята помогите с SQL запросом по перебросу звонков!!! Tanusha SQL, базы данных 13 22.07.2008 16:17
Помогите разобраться с SQL-запросом MasterofCDM БД в Delphi 5 04.07.2008 13:42
SQL. Помогите с запросом. fluxion БД в Delphi 2 27.12.2007 08:01
Помогите с SQL запросом. Monoflextor БД в Delphi 12 29.04.2007 16:53