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 :: Увеличение на +1 в цикле

 PHP.SU

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


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

> Без описания
Moulder
Отправлено: 08 Октября, 2012 - 20:01:32
Post Id


Новичок


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


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




Добрый вечер! Подскажите пожалуйста.
Делаю выборку из MYSQL и при совпадении некоторого условия переменная в цикле должна увеличиваться на единицу

скрипт следующего плана:

$area = 0;
$sql = mysql_query("SELECT*FROM area");
while($data = mysql_fetch_array($sql))
{
if ($data[city_id] == "1" )
{
$area = $area+1; print $area;
} }

но при таком раскладе переменная area не увеличивается, а добавляет цифру к цифре. в итоге вместо 12 получаю 123456789101112

без цикла суммируется нормально. пробовал разные способы суммирования - не помогает
 
 Top
vanicon
Отправлено: 08 Октября, 2012 - 20:27:56
Post Id



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


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


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




PHP:
скопировать код в буфер обмена
  1. $area = 0;
  2. $sql = mysql_query("SELECT*FROM area");
  3. while($data = mysql_fetch_array($sql))
  4. {
  5. if ($data['city_id'] == '1'){
  6. $area++;
  7. print $area;
  8. }
  9. }

(Отредактировано автором: 08 Октября, 2012 - 20:28:58)



-----
Так было, так есть и так будет
 
 Top
Varan
Отправлено: 08 Октября, 2012 - 20:32:00
Post Id



Гость


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


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




Moulder пишет:
Добрый вечер! Подскажите пожалуйста.
Делаю выборку из MYSQL и при совпадении некоторого условия переменная в цикле должна увеличиваться на единицу

скрипт следующего плана:

$area = 0;
$sql = mysql_query("SELECT*FROM area");
while($data = mysql_fetch_array($sql))
{
if ($data[city_id] == "1" )
{
$area = $area+1; print $area;
} }

но при таком раскладе переменная area не увеличивается, а добавляет цифру к цифре. в итоге вместо 12 получаю 123456789101112

без цикла суммируется нормально. пробовал разные способы суммирования - не помогает

как раз все плюсуется, просто записывается в строчку

PHP:
скопировать код в буфер обмена
  1. $area = $area+1;
  2. print $area;
  3. echo "<br>";
  4.  

но корректнее использовать как в примере с верху $area++; вместо $area = $area+1;

а если вам нужно получить последнее значение $area
PHP:
скопировать код в буфер обмена
  1. $area = 0;
  2.     $sql = mysql_query("SELECT*FROM area");
  3.     while($data = mysql_fetch_array($sql))
  4.     {
  5.     if ($data['city_id'] == '1'){
  6.     $area++;
  7.     }
  8.     print $area;
  9.     }

(Отредактировано автором: 08 Октября, 2012 - 20:42:29)

 
 Top
OrmaJever Модератор
Отправлено: 08 Октября, 2012 - 20:45:24
Post Id



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


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




PHP:
скопировать код в буфер обмена
  1. $sql = mysql_query("SELECT count(*) as c FROM area WHERE `city_id` = 1");
  2. $area = mysql_fetch_object($sql)->c;

Блин хоть бы кто-то автору подсказал как правельно написать. Хм


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Varan
Отправлено: 08 Октября, 2012 - 20:47:53
Post Id



Гость


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


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




OrmaJever пишет:
PHP:
скопировать код в буфер обмена
  1. $sql = mysql_query("SELECT count(*) as c FROM area WHERE `city_id` = 1");
  2. $area = mysql_fetch_object($sql)->c;

Блин хоть бы кто-то автору подсказал как правельно написать. Хм

вопрос поставил "Делаю выборку из MYSQL и при совпадении некоторого условия переменная в цикле должна увеличиваться на единицу" , а не как узнать количество строк в запросе )))
 
 Top
vanicon
Отправлено: 08 Октября, 2012 - 20:49:30
Post Id



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


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


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




OrmaJever пишет:
Блин хоть бы кто-то автору подсказал как правельно написать.

Вы не можете знать чего хотел автор, может нужно было выбрать всю, провести какие-либо действий с ними, из которых подсчет городов с индексом 1 всего лишь одно из множества этих действий.
Хотя вряд ли конечно, но все же...


-----
Так было, так есть и так будет
 
 Top
OrmaJever Модератор
Отправлено: 08 Октября, 2012 - 20:50:44
Post Id



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


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




Varan пишет:
вопрос поставил "Делаю выборку из MYSQL и при совпадении некоторого условия переменная в цикле должна увеличиваться на единицу" , а не как узнать количество строк в запросе )))

А указать автору на ошибку логики что нельзя? Реально даже на первый взгляд видно что код можно упростить и улучшить. А если очень хотелось сказать имено по теме то можно было и сылку дать http://php.su/learnphp/operators/?id Закатив глазки
(Добавление)
vanicon пишет:
Вы не можете знать чего хотел автор, может нужно было выбрать всю, провести какие-либо действий с ними, из которых подсчет городов с индексом 1 всего лишь одно из множества этих действий.
Хотя вряд ли конечно, но все же...

Годы практики на форуме дают о себе знать, я уже представляю когда пишут свой код, а когда код для примера. Да и даже если это пример то всеровно нужно автора натолкнуть на правельный путь, возможно ему это поможет написать более правельный код далее.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Varan
Отправлено: 08 Октября, 2012 - 20:53:19
Post Id



Гость


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


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




OrmaJever пишет:
Varan пишет:
вопрос поставил "Делаю выборку из MYSQL и при совпадении некоторого условия переменная в цикле должна увеличиваться на единицу" , а не как узнать количество строк в запросе )))

А указать автору на ошибку логики что нельзя? Реально даже на первый взгляд видно что код можно упростить и улучшить. А если очень хотелось сказать имено по теме то можно было и сылку дать http://php.su/learnphp/operators/?id Закатив глазки

после таких упрощений появляется куча новых вопросов )))) судя по написанию примера разбора выборки в первом посте
 
 Top
vanicon
Отправлено: 08 Октября, 2012 - 20:56:50
Post Id



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


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


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




OrmaJever пишет:
Годы практики на форуме дают о себе знать, я уже представляю когда пишут свой код, а когда код для примера. Да и даже если это пример то всеровно нужно автора натолкнуть на правельный путь, возможно ему это поможет написать более правельный код далее.


Я написал что скорее всего ваш вариант будет то что нужно, но если это пример и всего лишь одно из действий с данными, то вы думайте что дополнительный запрос на подсчет строк будет правильным нежели еще одним условием в цикле при разборе данных?

(Отредактировано автором: 08 Октября, 2012 - 20:57:07)



-----
Так было, так есть и так будет
 
 Top
tato
Отправлено: 09 Октября, 2012 - 08:59:25
Post Id



Посетитель


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


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




Varan пишет:
после таких упрощений появляется куча новых вопросов )))) судя по написанию примера разбора выборки в первом посте




Именно по количеству вопросов можно понять, учится человек или нет.
И да лучше сразу учится делать правильно, это помогает быстрее обучаться.
Очень часто вижу как люди натыкаются на проблеммы, которых при решении из задач, вообще быть не должно.
Даже этот пост тому пример, необходимо сделать выборку из БД и посчитать определенные записи, а мы со сложением и выводом мучаемся.


-----
просто ?: сложно
 
 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