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]   

> Без описания
landsturm
Отправлено: 31 Декабря, 2011 - 12:48:15
Post Id


Частый гость


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


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




Здравствуйте, объясните как правильнее или лучше будет делать запросы к БД?

$result = mysql_query("SELECT * FROM table");

или

$result="SELECT * FROM table";
$query=mysql_query($result) or die (mysql_error());

Хотел бы ещё узнать, лучше выбирать все ячейки (SELECT *) в БД или лучше перечислить какие именно (SELECT qwe1, qwe2, qwe3)?
 
 Top
Саныч Модератор
Отправлено: 31 Декабря, 2011 - 12:56:49
Post Id



Участник


Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010  
Откуда: Украина, Запорожье


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




Смотря что вы вытаскивать с БД собрались. Если это какие-то важные данные. без которых нет смысла продолжать дальше, то конечно лучше die в случае ошибки. А если это какой-то блок статистики или еще какая-то фигня, вобщем ничего страшного не произойдет, если на странице ее не будет.
По поводу * - я обычно перечисляю, т.к. в будущем в таблице могут появиться еще какие-то поля, которые в конкретном запросе не нужны. Зачем таскать лишнюю информацию.


-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
landsturm
Отправлено: 31 Декабря, 2011 - 13:23:30
Post Id


Частый гость


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


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




$result="SELECT * FROM table";
$query=mysql_query($result) or die (mysql_error());
А как в таком запросе указать идентификатор в виде переменной к какой БД подключаться?
(Добавление)
Хотя я уже разобрался.
(Добавление)
Меня ещё мучает один вопрос.
echo "<span class='name'>$name</span>";
Допустим у нас есть такая строчка, в ней есть переменная. Лучше всю строчку обособлять в двойные ковычки или обособлять в одинарные, а переменную в двойные (echo '<span class='boardname'>".$name."</span>';)?
 
 Top
Bio man
Отправлено: 31 Декабря, 2011 - 14:24:50
Post Id


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


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


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




landsturm пишет:
echo '<span class='boardname'>".$name."</span>';
данный код не будет работать. можно в двойных или с конкатенацией. насчет запроса, использовать * можно только при разработке. все нужные данные нужно перечислять через запятую. если вы устроитесь на работу кодером и напишете такой запрос со *, то ничего хорошего не ждите от руковадителя, заставит переписывать.
 
 Top
landsturm
Отправлено: 31 Декабря, 2011 - 14:32:51
Post Id


Частый гость


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


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




Bio man
Ещё вопрос. Файл config.php, то есть файл с данными для подключения к БД, лучше подключать с помощью require_once?
 
 Top
Pimpys
Отправлено: 31 Декабря, 2011 - 17:54:27
Post Id



Новичок


Покинул форум
Сообщений всего: 28
Дата рег-ции: Нояб. 2011  
Откуда: Украина, Киев


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




У вас много ошибок в коде(Который написан на форуме), хотя вам это уже сказали!
А лутче через рекваир_онце, так как он включает только один раз!
А выбирать всё(*) или частично, это зависит от запроса и потребностей! Тут сами смотрите что вам надо.
Не забывайте экранироватьУлыбка А вообще чем больше ошибок допустите, тем больше опыта! главное их сразу видить, и код проверять! И это войдёт в привычку!Улыбка
И главное понимать что пишите(По тому что учите(Я сам по книгам, учу. Тяжело, у книги не спросить!))
Ну а там поймётеУлыбка
ЗЫ: Начинал с уроков Евения Попова, а сейчас понимаю что его уроки это разводнякУлыбка Хорошо что без платно качал.
Спасибо.


-----
Очисти свою карму — будь везучим!
 
 Top
Estenny
Отправлено: 31 Декабря, 2011 - 18:34:32
Post Id



Гость


Покинул форум
Сообщений всего: 122
Дата рег-ции: Нояб. 2011  
Откуда: Москва


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




Вопрос, раз тема создана: есть аналог mysql_result(), только если тут надо передавать вторым параметром номер строки в БД, то мне надо просто задать WHERE sth = 'sth'? Без указания строки, но чтобы вернул не массив, а просто значение.
 
 Top
snikers987
Отправлено: 01 Января, 2012 - 20:27:30
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


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




Pimpys пишет:

А лутче через рекваир_онце, так как он включает только один раз!

include_once() тоже однократно включает, в случае не возможности подключить генерирует warning, а require_once fatal error.


-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB