Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Стиль выполнения запросов

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Как правильно?
Maksim337
Отправлено: 08 Ноября, 2009 - 18:18:39
Post Id


Частый гость


Покинул форум
Сообщений всего: 255
Дата рег-ции: Июнь 2009  


Помог: 0 раз(а)




Встречал в разных php скриптах на mysql разные построения запросов.
PHP:
скопировать код в буфер обмена
  1. mysql_query("SELECT `per_start`,`perexod` FROM `users` WHERE `usr` = '".mysql_real_escape_string($_GET['usr'])."'")

Где и как используються двойные, одиничные кавычки и ` ?
Например так тоже видел?
PHP:
скопировать код в буфер обмена
  1. mysql_query(" SELECT * FROM table WHERE name='$name'")

Дак скажите пожалуйста как правильно чем пользоваться? И что лучше работать будет?
 
 Top
Ch_chov
Отправлено: 08 Ноября, 2009 - 18:30:18
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




 
 Top
valenok
Отправлено: 09 Ноября, 2009 - 10:01:47
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




название полей и таблиц заключать в апострофы `table`.`field`
названия функций и ключевых слов писать большими буквами WHERE NOW() < `field`
строки заключать в одинарные кавычки `field` = 'myvalue'


-----
Truly yours, Sasha.
 
My status
 Top
Мелкий Супермодератор
Отправлено: 09 Ноября, 2009 - 15:12:17
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




valenok пишет:
названия функций и ключевых слов писать большими буквами WHERE NOW() < `field`

А не подскажете, зачем? мускул на регистр внимания не обращает, вроде, а капсятина эта некрасиво выглядит...


-----
PostgreSQL DBA
 
 Top
Viper
Отправлено: 09 Ноября, 2009 - 15:15:25
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




Мелкий пишет:
А не подскажете, зачем? мускул на регистр внимания не обращает, вроде, а капсятина эта некрасиво выглядит...


форматирование кода. когда у вас пару тысяч строк кода в одно файле, вы замучаетесь искать запрос.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
Мелкий Супермодератор
Отправлено: 09 Ноября, 2009 - 15:23:37
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Пробовал на тысяче строк кода в одном файле - проблема только в том, чтобы понять, как оно вообще вертится... Запросы видно сразу, путаюсь только если они в блоке довольно тесто расположены.

В общем, глобального смысла, как с ассоциативными массивами (то что ключи в кавычки брать надо), нету. Простое форматирование кода, так же как и перенос скобок {}


-----
PostgreSQL DBA
 
 Top
Maksim337
Отправлено: 09 Ноября, 2009 - 21:39:40
Post Id


Частый гость


Покинул форум
Сообщений всего: 255
Дата рег-ции: Июнь 2009  


Помог: 0 раз(а)




Ch_chov хорошая статья а я на нее не натыкалсяУлыбка спасибо большое...
 
 Top
Maksim337
Отправлено: 10 Ноября, 2009 - 20:18:54
Post Id


Частый гость


Покинул форум
Сообщений всего: 255
Дата рег-ции: Июнь 2009  


Помог: 0 раз(а)




Подскажите как правильно оформить выборку из многих таблиц.... Что-то типа того
PHP:
скопировать код в буфер обмена
  1. SELECT `name`.`user`, `surname`.`user`, `money`.`market` FROM `user`, `market` WHERE `id`='$_POST[id]'

Если я правильно понял такое можно вообще, и как это все в функцию mysql_query закатать?

(Отредактировано автором: 10 Ноября, 2009 - 20:21:17)

 
 Top
Enjoy
Отправлено: 10 Ноября, 2009 - 22:40:34
Post Id



Новичок


Покинул форум
Сообщений всего: 14
Дата рег-ции: Окт. 2009  
Откуда: Белгород


Помог: 0 раз(а)




Мелкий пишет:
В общем, глобального смысла, как с ассоциативными массивами (то что ключи в кавычки брать надо), нету.

Не понял, можно пример такого случая?

Maksim337 пишет:
Подскажите как правильно оформить выборку из многих таблиц.... Что-то типа того
SELECT `name`.`user`, `surname`.`user`, `money`.`market` FROM `user`, `market` WHERE `id`='$_POST[id]'
Если я правильно понял такое можно вообще, и как это все в функцию mysql_query закатать?

Сначала указываются имена таблиц, а потом полей - user.name

(Отредактировано автором: 10 Ноября, 2009 - 22:56:59)

 
 Top
Maksim337
Отправлено: 10 Ноября, 2009 - 23:01:21
Post Id


Частый гость


Покинул форум
Сообщений всего: 255
Дата рег-ции: Июнь 2009  


Помог: 0 раз(а)




PHP:
скопировать код в буфер обмена
  1. $select="SELECT `table`.`dom`, `table`.`halabuda`, `table2`.`dom`,`table2`.`halabuda` FROM `b` AS `table`,`o` AS `table2` WHERE `country`='$country'";
  2. $resource=mysql_query($select);
  3. $data=mysql_fetch_assoc($resource);


Выдает такую ошибку


Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in M:\home\localhost\www\Tests\subdomain.localhost\buildings\Untitled-16.php on line 15

Тоесть выборка из базы не происходит... Что не так?
 
 Top
valenok
Отправлено: 11 Ноября, 2009 - 08:12:28
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




Отсутсвует отладка.
с.м. http://phpfaq[dot]ru/debug


-----
Truly yours, Sasha.
 
My status
 Top
Maksim337
Отправлено: 11 Ноября, 2009 - 09:53:13
Post Id


Частый гость


Покинул форум
Сообщений всего: 255
Дата рег-ции: Июнь 2009  


Помог: 0 раз(а)




valenok отладка это конечно замечательно, но если я и так знаю где ошибка, и прошу посмотреть правильно составления запроса. так как я в этом новенький. А ошибка в том что в условии тоже нужно через псевдонимы работать...
(Добавление)
CODE (text):
скопировать код в буфер обмена
  1. SELECT `t`.`dom`, `t`.`halabuda`, `t2`.`dom_n`,`t2`.`halabuda_n` FROM `b` AS `t`,`o` AS `t2` WHERE `t2`.`country`='Petya'
  2. Array
  3. (
  4.     [dom] => domina
  5.     [halabuda] => halupa
  6.     [dom_n] => 10
  7.     [halabuda_n] => 10
  8. )
  9.  

Вот теперь все работаетУлыбка
Всем спасибо за внимание и помощь Ch_chov,valenok,Enjoy!
Кстати потом выскочила такая проблема что выводилось только [dom] => 10
[halabuda] => 10 просто одинаковые имена полей и заменялось на последнее... Ну нужно было изменить имена полей. Может такая проблема multi-select`a еще у кого-то будет. Надеюсь эта тема кому-то поможетУлыбка
 
 Top
valenok
Отправлено: 11 Ноября, 2009 - 20:09:54
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




Само собой понятно где ошибка в php коде.
Только если язык вдруг меняется с php на mysql это не значит что конец отладке и дальше прибегнуть к магии. SQL запрос тоже нужно отлаживать если он не работает.


-----
Truly yours, Sasha.
 
My status
 Top
Maksim337
Отправлено: 12 Ноября, 2009 - 17:38:26
Post Id


Частый гость


Покинул форум
Сообщений всего: 255
Дата рег-ции: Июнь 2009  


Помог: 0 раз(а)




Новый вопрос появился, делаю выборку из трех таблиц одним SELECT . Таблицы небольшие по 5 полей примерно. Так вот вопрос может сделать три селекта отдельных ? Нагрузка и скорость выполнения где больше?
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB