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
Форумы портала PHP.SU :: Версия для печати :: Помогите составить запрос к mySQL
Форумы портала PHP.SU » » Работа с СУБД » Помогите составить запрос к mySQL

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

1. alexphp - 15 Мая, 2011 - 20:17:33 - перейти к сообщению
Имеется таблица users с полями id login и balans
зная логин нужно вытащить значение balans и записать его в переменную $balans
2. Mr.KreDo - 15 Мая, 2011 - 20:21:02 - перейти к сообщению
Пример

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.  
3. garvey - 15 Мая, 2011 - 20:30:11 - перейти к сообщению
Mr.KreDo, что вы советуете людям?
1. Зачем в запросе выбирать все колонки, если нужен только balans.
2. Зачем делать ORDER BY, если поле login уникальное?
3. Подставляя переменные в запрос, их нужно экранировать. mysql_real_escape_string
4. mysql_fetch_array возвращает 2 массива (обычный и ассоциативный). Правильнее использовать mysql_fetch_asoc
Есть еще несколько незначительных ошибок. Если хотите, укажу. Итого: очень высокая концентрация ошибок, учитываю всего 3 строки кода.
4. molchun201 - 15 Мая, 2011 - 20:33:30 - перейти к сообщению
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.  
5. garvey - 15 Мая, 2011 - 20:48:39 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $row = mysql_fetch_assoc($query){
  2.     echo $row['balans'];
  3. }

Можете пояснить эту конструкцию?
6. molchun201 - 15 Мая, 2011 - 20:58:06 - перейти к сообщению
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.  


или я что т оне так делаю? Растерялся
7. Мелкий - 15 Мая, 2011 - 21:05:11 - перейти к сообщению
molchun201, ну как бы syntax error.
Вероятно, вы имели в виду
PHP:
скопировать код в буфер обмена
  1. while ($row = mysql_fetch_assoc($query)){
  2.     echo $row['balans'];
  3. }

Либо так корректно:
PHP:
скопировать код в буфер обмена
  1. $row = mysql_fetch_assoc($query);
  2. echo $row['balans'];
8. molchun201 - 15 Мая, 2011 - 21:08:17 - перейти к сообщению
Мелкий угу имел ввиду так:



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

 

Powered by ExBB FM 1.0 RC1