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]   

> Без описания
Tox
Отправлено: 10 Апреля, 2012 - 12:37:14
Post Id



Посетитель


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


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




Есть бд, я решил вывести полностью столбец из таблицы. Все сработало, но почему-то значения дублируются:
PHP:
скопировать код в буфер обмена
  1. $q = mysql_query("SELECT column FROM table WHERE условие");
  2. for ($s=0; $s<mysql_num_rows($q); $s++){
  3. print_r($n);
  4. }

А в выводе:

CODE (htmlphp):
скопировать код в буфер обмена
  1. (
  2.     [0] => 2556
  3.     [column] => 2556
  4. )
  5. (
  6.     [0] => 460
  7.     [column] => 460
  8. )
  9. и т.д.

В чем ошибка?


-----
In Console We Trust. Code hard. Or die.
 
 Top
krokus
Отправлено: 10 Апреля, 2012 - 12:42:52
Post Id


Новичок


Покинул форум
Сообщений всего: 61
Дата рег-ции: Нояб. 2010  


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




print_r($n); из цикла выведи
 
 Top
etoYA
Отправлено: 10 Апреля, 2012 - 12:48:05
Post Id



Участник


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


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




Tox пишет:
for ($s=0; $s<mysql_num_rows($q); $s++){
$n = mysql_fetch_array($q);

Что это за извращение? Используй цикл for только тогда, когда это действительно необходимо.


(Добавление)
Tox, и зачем тебе в цикле?

(Отредактировано автором: 10 Апреля, 2012 - 12:48:54)

 
 Top
Tox
Отправлено: 10 Апреля, 2012 - 12:54:43
Post Id



Посетитель


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


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




etoYA пишет:
Tox пишет:
for ($s=0; $s<mysql_num_rows($q); $s++){
$n = mysql_fetch_array($q);

Что это за извращение? Используй цикл for только тогда, когда это действительно необходимо.


(Добавление)
Tox, и зачем тебе
в цикле?

Ну я прочитал это здесь (http://www.php.su/mysql/?functions)


-----
In Console We Trust. Code hard. Or die.
 
 Top
krokus
Отправлено: 10 Апреля, 2012 - 13:12:41
Post Id


Новичок


Покинул форум
Сообщений всего: 61
Дата рег-ции: Нояб. 2010  


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




Tox пишет:
etoYA пишет:
Tox пишет:
for ($s=0; $s<mysql_num_rows($q); $s++){
$n = mysql_fetch_array($q);

Что это за извращение? Используй цикл for только тогда, когда это действительно необходимо.


(Добавление)
Tox, и зачем тебе
в цикле?

Ну я прочитал это здесь (http://www.php.su/mysql/?functions)

Ну че - из цикла то выводить пробовал?
 
 Top
Tox
Отправлено: 10 Апреля, 2012 - 13:14:50
Post Id



Посетитель


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


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




если вывести из цикла, то в выводе будет самый последний элемент из столбца, а это мне не надо. Я уже разобрался с помощью while, etoYA, спасибо


-----
In Console We Trust. Code hard. Or die.
 
 Top
avtor.fox
Отправлено: 10 Апреля, 2012 - 13:17:48
Post Id



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


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


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




array - содержит в себе как и ключевое значение(порядок столбца в таблице), так и ассоциативный массив (названия столбцов).

assoc - тянет только ассоциативный массив.

row - только числовые индексы
 
 Top
Tox
Отправлено: 10 Апреля, 2012 - 15:44:53
Post Id



Посетитель


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


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




Я изменил исходник, вообще смысл заключается в том, что есть таблица, внутри много чего, из нужного - дата(тип date) и money(int, количество прибыли), надо рассчитать прибыль по месяцам, и значения занести в массив (будет использоваться для построения годового графика).
PHP:
скопировать код в буфер обмена
  1. for ($m=1; $m<=12; $m++) {
  2. $q = mysql_query("SELECT money FROM bd WHERE date between '$year-$m-01' and '$year-$m-31';");
  3.         while ($row = mysql_fetch_assoc($q)){
  4.         $sum += $row['money'];
  5.         }
  6. $all[]= $sum;
  7. }
  8. print_r($all);

И тут где-то ошибка, потому что все выводится, но по формуле m, m+n, m+n+o и так далее +почему-то считаются те месяцы, которых еще в бд нет. Возможно я дико туплю уже 3 часа, направьте куда копать или думать, а может почитать.


-----
In Console We Trust. Code hard. Or die.
 
 Top
Мелкий Супермодератор
Отправлено: 10 Апреля, 2012 - 15:53:49
Post Id



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


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


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




охохох...
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT date_format(`date`, '%Y-%m') AS `month`, sum(`money`) AS `month_money` FROM bd GROUP BY `month`


-----
PostgreSQL DBA
 
 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