while($row=mysql_fetch_array($usr))
{
$id = $row['id'];
$item = $row['item'];
$price = $row['price'];
$special = $row['special'];
$summa=$price*$m2;
echo "
$item - $price summa - $summa <br>
";
}
на выходе я имею список всех услуг и их цен.
а вот сумму он считает только для первой строки а дальше нули.
как $summa размножить? сделать массивом? а как это?
Спустя 9 минут, 5 секунд (16.02.2012 - 21:22) Игорь_Vasinsky написал(а):
Цитата |
$price summa |
что за *censored*
так нельзя давать имена....пробелы не допустимы
кто такие $item и $price*$m2
![ph34r.gif](http://phpforum.ru/html/emoticons/ph34r.gif)
Спустя 2 минуты, 41 секунда (16.02.2012 - 21:25) koala написал(а):
Цитата |
как $summa размножить? сделать массивом? а как это? |
![biggrin.gif](http://phpforum.ru/html/emoticons/biggrin.gif)
Тебе надо цикл со счетчиком.
Спустя 4 минуты, 54 секунды (16.02.2012 - 21:30) intreb написал(а):
$item - $price summa - $summa <br>
всё правильено
в переводе это: вывоз мусора - 0.009 сумма - 0,315
так как m2 это квадратные метры её значение 35
price это цена за услугу.
summa это цена помноженная на метры
это работает только для первой услуги а у меня их в базе много
всё правильено
в переводе это: вывоз мусора - 0.009 сумма - 0,315
так как m2 это квадратные метры её значение 35
price это цена за услугу.
summa это цена помноженная на метры
это работает только для первой услуги а у меня их в базе много
Спустя 6 минут, 21 секунда (16.02.2012 - 21:36) koala написал(а):
echo $item . '-' . $price . 'summa - ' . $summa <br>';
И все в той же таблице или каждая в другой?
while($row=mysql_fetch_array($usr))
Используйте
mysql_fetch_assoc()если вам не надо номеров а только названия елементов.
Спустя 13 минут, 22 секунды (16.02.2012 - 21:49) intreb написал(а):
в разных
вот полный код
результат:
как эти нулевые суммы тоже отработать?
remont - 0,0959 summa - 0
obsluzh - 0,19 summa - 0
musor - 0,036 summa - 0
voda - 0,92 summa - 0
вот полный код
case "invoices":
$queryf="SELECT * FROM `` ORDER BY id ASC";
$usrf=mysql_query($queryf);
if(!$usrf) exit ("Ошибка; (sql x)");
while($row=mysql_fetch_array($usrf))
{
$id = $row['id'];
$name = $row['frate'];
$m2 = $row['mb'];
echo "
$id - $name <br>";
$queryx="SELECT * FROM `prices` ORDER BY id ASC";
$usr=mysql_query($queryx);
if(!$usr) exit ("?ё????; (sql x)");
while($row=mysql_fetch_array($usr))
{
$id = $row['id'];
$item = $row['item'];
$price = $row['price'];
$special = $row['special'];
$summa=$price*$m2;
echo "
$item - $price summa - $summa <br>
";
}
echo "<br>";
}
результат:
1 - Tatjana Timofeeva
elektr - 0.007 summa - 0.266
remont - 0,0959 summa - 0
obsluzh - 0,19 summa - 0
musor - 0,036 summa - 0
voda - 0,92 summa - 0
как эти нулевые суммы тоже отработать?
remont - 0,0959 summa - 0
obsluzh - 0,19 summa - 0
musor - 0,036 summa - 0
voda - 0,92 summa - 0
Спустя 3 минуты, 40 секунд (16.02.2012 - 21:53) sergeiss написал(а):
Цитата (Игорь_Vasinsky @ 16.02.2012 - 22:22) |
что за *censored* так нельзя давать имена....пробелы не допустимы кто такие $item и $price*$m2 |
Игорь, ты не прав... Это не пробелы в именах, а формирование символьной строки.
Цитата (koala @ 16.02.2012 - 22:36) |
Используйте mysql_fetch_assoc() |
А вот это уже правильный совет
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
intreb - кроме тэгов CODE тут есть еще много разных тэгов для оформления кодов. Это кнопки справа над редактором ввода: PHP, SQL, HTML...
Спустя 4 минуты, 1 секунда (16.02.2012 - 21:57) koala написал(а):
Запихивайте код в теги php.
Что это? Вам надо указать таблицу с которой идет выборка. Может в этом у вас и проблема. Вам ошибку не выдает?
$queryf="SELECT * FROM `` ORDER BY id ASC";
Что это? Вам надо указать таблицу с которой идет выборка. Может в этом у вас и проблема. Вам ошибку не выдает?
Спустя 3 минуты, 28 секунд (16.02.2012 - 22:01) intreb написал(а):
это я просто удалил название.
я поменял ена mysql_fetch_assoc и ничего не поменалось.
те переменные что из базы они же в реальности идут под номерами вар_1 вар_2
а вот переменная семма одна, без номера поэтому и работает только для первой строки. как заставить её работать для всех услуг?
я поменял ена mysql_fetch_assoc и ничего не поменалось.
те переменные что из базы они же в реальности идут под номерами вар_1 вар_2
а вот переменная семма одна, без номера поэтому и работает только для первой строки. как заставить её работать для всех услуг?
Спустя 2 минуты, 34 секунды (16.02.2012 - 22:03) Игорь_Vasinsky написал(а):
Цитата |
Игорь, ты не прав... Это не пробелы в именах, а формирование символьной строки |
да я уж вижу. народ как плювал на конкатенацию - так и плюёт.
Спустя 1 минута, 29 секунд (16.02.2012 - 22:05) Игорь_Vasinsky написал(а):
Покажи вывод
while($row=mysql_fetch_array($usr))
{
$id = $row['id'];
$item = $row['item'];
$price = $row['price'];
$special = $row['special'];
$summa=$price*$m2;
echo $item.' '-' '.$price.' price - '.$price.'<br>';
}
Спустя 5 минут, 38 секунд (16.02.2012 - 22:10) Игорь_Vasinsky написал(а):
Цитата |
а вот переменная семма одна, без номера поэтому и работает только для первой строки |
нет. каждый цикл она меняется, проблема может быть с типами данных.
т.е. вместо float у тя string, например.
Спустя 24 секунды (16.02.2012 - 22:11) intreb написал(а):
1 - name1
00.007 summa - 0.007
00,0959 summa - 0,0959
00,19 summa - 0,19
00,036 summa - 0,036
00,0959 summa - 0,0959
00,84 summa - 0,84
00,92 summa - 0,92
2 - name2
00.007 summa - 0.007
00,0959 summa - 0,0959
00,19 summa - 0,19
00,036 summa - 0,036
00,0959 summa - 0,0959
00,84 summa - 0,84
00,92 summa - 0,92
00.007 summa - 0.007
00,0959 summa - 0,0959
00,19 summa - 0,19
00,036 summa - 0,036
00,0959 summa - 0,0959
00,84 summa - 0,84
00,92 summa - 0,92
2 - name2
00.007 summa - 0.007
00,0959 summa - 0,0959
00,19 summa - 0,19
00,036 summa - 0,036
00,0959 summa - 0,0959
00,84 summa - 0,84
00,92 summa - 0,92
Спустя 1 минута, 56 секунд (16.02.2012 - 22:13) intreb написал(а):
сейчас поменяю
Спустя 2 минуты, 20 секунд (16.02.2012 - 22:15) intreb написал(а):
они оба varchar
но ведь один раз он считает сумму
те переменные что из базы они же в реальности идут под номерами вар_1 вар_2
а вот переменная $summa одна на весь цикл, без номера поэтому и работает только для первой строки. как заставить её работать для всех услуг?
но ведь один раз он считает сумму
те переменные что из базы они же в реальности идут под номерами вар_1 вар_2
а вот переменная $summa одна на весь цикл, без номера поэтому и работает только для первой строки. как заставить её работать для всех услуг?
Спустя 2 минуты, 11 секунд (16.02.2012 - 22:17) Игорь_Vasinsky написал(а):
varchar это строка - я хз как у тя вообще что то считает.
Цитата |
а вот переменная $summa одна на весь цикл, без номера поэтому и работает только для первой строки. как заставить её работать для всех услуг? |
:angry: скока циклов - стока и $summa
теперь так
while($row=mysql_fetch_array($usr))
{
$id = $row['id'];
$item = $row['item'];
$price = $row['price'];
$special = $row['special'];
$summa=(float)$price*(float)$m2;
echo $item.' '-' '.$price.' summa - '.$summa.'<br>';
}
Спустя 15 минут, 49 секунд (16.02.2012 - 22:33) sergeiss написал(а):
Тебе что нужно - чтобы подсчитало сумму по всем циклам? Если да, то тогда объяви переменную ПЕРЕД циклом
На самом деле это всё неверно и изврат полный :) Потому что надо подсчитать всё прямо в запросе, всю сумму, а потом в ПХП только забрать нужные данные.
$summa=0;
// далее идет цикл
while( .... )
{
...
$summa += ....;// прибавляем к сумме то, что надо
}
// и тут уже имеем полную сумму по всем строкам
На самом деле это всё неверно и изврат полный :) Потому что надо подсчитать всё прямо в запросе, всю сумму, а потом в ПХП только забрать нужные данные.
Спустя 4 минуты, 34 секунды (16.02.2012 - 22:38) Игорь_Vasinsky написал(а):
у него тип для этих полей VARCHAR а summa должна формироваться тодько в цикле - она состоит из price которая выбирается из БД.
лан. как хотите.
лан. как хотите.
Спустя 2 часа, 34 минуты, 35 секунд (17.02.2012 - 01:12) walerus написал(а):
А чего я один только заметил ?
P.S. Учимся оформлять красиво/читабельно код
P.S.S. Надеюсь ошибка была в этом
<?php
case "invoices":
$queryf = "SELECT * FROM `` ORDER BY id ASC";
$usrf = mysql_query($queryf);
if( !$usrf ) exit ( "Ошибка; ( sql x )" );
while( $row = mysql_fetch_array( $usrf ) )
{
$id = $row['id'];
$name = $row['frate'];
$m2 = $row['mb'];
echo $id . ' - ' . $name ."<br>\n";
$queryx = "SELECT * FROM `prices` ORDER BY id ASC";
$usr = mysql_query( $queryx );
if( !$usr ) exit ( "Ошибка; ( sql x )" );
// while( $row = mysql_fetch_array( $usr ) ) //// ALARMA !!!! WARNING !!! ИМЯ переменной '$row' ОДИНАКОВОЕ С ПЕРВЫМ while
// По этому и сбивается все наФиг
while( $row_1 = mysql_fetch_array( $usr ) )
{
$id = $row_1['id'];
$item = $row_1['item'];
$price = $row_1['price'];
$special = $row_1['special'];
$summa = $price * $m2;
echo $item . ' - ' . $price . ' summa - ' . $summa . "<br>\n";
}
echo "<br>";
}
P.S. Учимся оформлять красиво/читабельно код
P.S.S. Надеюсь ошибка была в этом
Спустя 11 часов, 17 минут, 46 секунд (17.02.2012 - 12:30) inpost написал(а):
walerus
Фигурные скобки должны быть на уровне условия,
Фигурные скобки должны быть на уровне условия,
while()
{
$var;
}
Спустя 5 часов, 32 минуты, 42 секунды (17.02.2012 - 18:03) intreb написал(а):
попробую ваши советы
Спустя 18 минут, 55 секунд (17.02.2012 - 18:21) intreb написал(а):
я попробовал все ваши варианты ничего не помогло. даже одинаковые переменные роу не влияют на работу.
выполняются все внешние циклы и выводится сумма для каждого первого элемента внутреннего цикала
выполняются все внешние циклы и выводится сумма для каждого первого элемента внутреннего цикала
Спустя 1 час, 9 минут, 29 секунд (17.02.2012 - 19:31) Игорь_Vasinsky написал(а):
Цитата |
я попробовал все ваши варианты ничего не помогло. даже одинаковые переменные роу не влияют на работу. |
что - так же выводит одно и тоже? или разные варианты?
Спустя 1 минута, 39 секунд (17.02.2012 - 19:33) Игорь_Vasinsky написал(а):
Цитата |
// while( $row = mysql_fetch_array( $usr ) ) //// ALARMA !!!! WARNING !!! ИМЯ переменной '$row' ОДИНАКОВОЕ С ПЕРВЫМ while |
![ph34r.gif](http://phpforum.ru/html/emoticons/ph34r.gif)
этого куска кода небыло же. чё за гадство.
ТС - JOIN - совместный запрос в 2 таблицы и всё в одном цикле делать.
Спустя 1 час, 50 минут, 12 секунд (17.02.2012 - 21:23) intreb написал(а):
да, всё абсолютно тоже самое
ТС - JOIN это как на моём примере?
я никогда так не делал
ТС - JOIN это как на моём примере?
я никогда так не делал