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 :: Помогите составить запрос к mySQL

 PHP.SU

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


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

> Без описания
alexphp
Отправлено: 15 Мая, 2011 - 20:17:33
Post Id


Новичок


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


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




Имеется таблица users с полями id login и balans
зная логин нужно вытащить значение balans и записать его в переменную $balans
 
 Top
Mr.KreDo
Отправлено: 15 Мая, 2011 - 20:21:02
Post Id



Гость


Покинул форум
Сообщений всего: 65
Дата рег-ции: Апр. 2011  
Откуда: Старый Оскол, Россия


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




Пример

PHP:
скопировать код в буфер обмена
  1.  
  2. $query_search55=mysql_query("SELECT * FROM users_adm WHERE login='$_SESSION[user_admin_sp]' ORDER BY id ASC");
  3. $query_list55=mysql_fetch_array($query_search55);
  4.  
  5. echo "<li>У вас на счету: <b> $query_list55[balance] руб </b></li>";
  6.  

(Отредактировано автором: 15 Мая, 2011 - 20:26:41)

 
 Top
garvey
Отправлено: 15 Мая, 2011 - 20:30:11
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 528
Дата рег-ции: Май 2010  
Откуда: Minsk


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




Mr.KreDo, что вы советуете людям?
1. Зачем в запросе выбирать все колонки, если нужен только balans.
2. Зачем делать ORDER BY, если поле login уникальное?
3. Подставляя переменные в запрос, их нужно экранировать. mysql_real_escape_string
4. mysql_fetch_array возвращает 2 массива (обычный и ассоциативный). Правильнее использовать mysql_fetch_asoc
Есть еще несколько незначительных ошибок. Если хотите, укажу. Итого: очень высокая концентрация ошибок, учитываю всего 3 строки кода.
 
 Top
molchun201
Отправлено: 15 Мая, 2011 - 20:33:30
Post Id



Посетитель


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


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




PHP:
скопировать код в буфер обмена
  1.  
  2. // Выбрать поле balans из users где поле login равно $login
  3. $query = mysql_query("SELECT balans FROM users WHERE login='$login'");
  4. // Результат перебираем из массива
  5. $row = mysql_fetch_assoc($query){
  6. // И выводим его
  7.      echo $row['balans'];
  8. }
  9.  

(Отредактировано автором: 15 Мая, 2011 - 20:34:47)



-----
Обрамляйте код тегами и читайте
 
 Top
garvey
Отправлено: 15 Мая, 2011 - 20:48:39
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 528
Дата рег-ции: Май 2010  
Откуда: Minsk


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




PHP:
скопировать код в буфер обмена
  1. $row = mysql_fetch_assoc($query){
  2.     echo $row['balans'];
  3. }

Можете пояснить эту конструкцию?
 
 Top
molchun201
Отправлено: 15 Мая, 2011 - 20:58:06
Post Id



Посетитель


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


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




garvey пишет:
Можете пояснить эту конструкцию?

а чо тут поеснять собсно? Улыбка

PHP:
скопировать код в буфер обмена
  1.  
  2. // В переменную $row мы закидываем массив mysql_fetch_assoc() с запросом $query
  3. $row = mysql_fetch_assoc($query){
  4. // дальше из массива $row мы в кач-ве параметра используем поле ['balans']
  5. // т.к. в запросе уже абстрактно весит значение этого поля и его выводим
  6.     echo $row['balans'];
  7. }
  8.  


или я что т оне так делаю? Растерялся


-----
Обрамляйте код тегами и читайте
 
 Top
Мелкий Супермодератор
Отправлено: 15 Мая, 2011 - 21:05:11
Post Id



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


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


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




molchun201, ну как бы syntax error.
Вероятно, вы имели в виду
PHP:
скопировать код в буфер обмена
  1. while ($row = mysql_fetch_assoc($query)){
  2.     echo $row['balans'];
  3. }

Либо так корректно:


-----
PostgreSQL DBA
 
 Top
molchun201
Отправлено: 15 Мая, 2011 - 21:08:17
Post Id



Посетитель


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


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




Мелкий угу имел ввиду так:



но по привычке что то переклинило и добавил {} как будто я использую while Закатив глазки Улыбка


-----
Обрамляйте код тегами и читайте
 
 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