Проблема с выводом массива

  • Автор темы Автор темы ppbinag
  • Дата начала Дата начала

ppbinag

Новичок
Соединяюсь с БД
PHP:
<?php
$con = mysql_connect("localhost","root","");
if (!$con) {
  die('Could not connect: ' . mysql_error());
}
mysql_select_db("dream", $con);
Объявляю переменные
PHP:
$email = '[email protected]';
$ot = '1';
$do = '12';
$cat = 'cat9';
$sum = '0';
Делаю выборку из БД электронных адресов
PHP:
$quer = "SELECT email FROM `user`";
$result = mysql_query($quer);
while($row = mysql_fetch_array($result)) {
	echo $row['email'];
}
Этот код нужно выполнить для каждого выбранного значения электронного адреса выше (т.е. не для конкретного указанного в переменной а для $row['email'] ) :
PHP:
$query = "SELECT price, qty FROM `orders` WHERE email='$email' and prod_id BETWEEN $ot AND $do";
$resul = mysql_query($query);
while($raw = mysql_fetch_array($resul)) {
	$ras = $raw['price'] * $raw['qty'];
	$sum += $ras;
}
echo $sum;
    
$resultt = "UPDATE `stat` SET $cat='".$sum."' WHERE email='$email'";
$ress = mysql_query($resultt); 

 if ($ress == 'true') {
	echo "<h2>Данные обновлены!</h2>";
	}
else {
	echo "<h2>Данные не обновлены!</h2>";
	}
Насколько я понимаю надо значения $row['email'] поместить в массив, а потом пройтись по всему массиву и для каждого значения выполнить php код? Если я правильно рассуждаю то как, это реализовать?
 
Взглянув на код, решил задачу:
PHP:
$quer = "SELECT email FROM `user`";
$result = mysql_query($quer);
while($row = mysql_fetch_array($result)) {
    echo $row['email'];
$email =  $row['email'];
$query = "SELECT price, qty FROM `orders` WHERE email='$email' and prod_id BETWEEN $ot AND $do";
$resul = mysql_query($query);
while($raw = mysql_fetch_array($resul)) {
    $ras = $raw['price'] * $raw['qty'];
    $sum += $ras;
}
echo $sum;
    
$resultt = "UPDATE `stat` SET $cat='".$sum."' WHERE email='$email'";
$ress = mysql_query($resultt); 

 if ($ress == 'true') {
    echo "<h2>Данные обновлены!</h2>";
    }
else {
    echo "<h2>Данные не обновлены!</h2>";
    }
}
Просто поместив код в цикл.
Но возник еще вопрос как выполнить код для одного емайла но с разными $ot, $do, $cat (9 разных значений)
PHP:
$query = "SELECT price, qty FROM `orders` WHERE email='$email' and prod_id BETWEEN $ot AND $do";
$resul = mysql_query($query);
while($raw = mysql_fetch_array($resul)) {
    $ras = $raw['price'] * $raw['qty'];
    $sum += $ras;
}
echo $sum;
    
$resultt = "UPDATE `stat` SET $cat='".$sum."' WHERE email='$email'";
$ress = mysql_query($resultt); 

 if ($ress == 'true') {
    echo "<h2>Данные обновлены!</h2>";
    }
else {
    echo "<h2>Данные не обновлены!</h2>";
    }
 
PHP:
update stat s, orders o
SET s.".$cat."=o.price * o.qty 
WHERE s.email=o.email AND 
     o.prod_id BETWEEN $ot AND $do;
не тестил, но идея... так тоже можно!
 
а откуда берутся эти $ot, $do, $cat и остальные 9 значений?

а, главное, для чего нужна таблица stat?
 
а откуда берутся эти $ot, $do, $cat и остальные 9 значений?

а, главное, для чего нужна таблица stat?
$ot, $do, $cat я вбиваю вручную(как раз $cat принимает 9 различных значений, $ot принимает 9 различных значений, $do принимает 9 различных значений), таблица стат вообще используется для хранения значений используемых в построение графика Highcharts, из этой таблицы данные передаются в текстовом виде. $cat это название категорий.
 
а зачем передавать данные из таблицы стат, если можно передавать сразу из orders?
зачем по два раза перекладывать одни и те же данные?
тем более - по 20 раз их повторяя?
 
что значит - как?
ты же выбираешь нужные тебе данные из ордерс? вот их и передавай

если ты спрашиваешь, как передавать данные в Highcharts, то я впервые слышу об этой программе
 
Как код оформить в функцию:
PHP:
$query = "SELECT price, qty FROM `orders` WHERE email='$email' and prod_id BETWEEN $ot AND $do";
$resul = mysql_query($query);
while($raw = mysql_fetch_array($resul)) {
    $ras = $raw['price'] * $raw['qty'];
    $sum += $ras;
}
echo $sum;
    
$resultt = "UPDATE `stat` SET $cat='".$sum."' WHERE email='$email'";
$ress = mysql_query($resultt); 

 if ($ress == 'true') {
    echo "<h2>Данные обновлены!</h2>";
    }
else {
    echo "<h2>Данные не обновлены!</h2>";
    }
и вызывать ее передавая значения $ot, $do, $cat ?
Попутно вопрос чем можно воспользоваться для построения графиков?
 
какой смысл вообще этих шаманских плясок?
график чего ты хочешь построить?
почему у всех $cat одно и то же значение? какой в этом смысл?
 
график строится из суммы всех товаров заказанных пользователей по категориям товаров,( т.е для одного пользователя с определенным email в таблице у меня сохранены цена товара $raw['price'] и количество товара $raw['qty'], их произведение есть цена за количество одного вида товара, а мне надо сумму за все виду товаров).
Вот например мой график:
Соответственно покупатели Иванов, Петров, Сидоров
Иванов купил запчастей на Audi на сумму 973 руб
Петров купил запчастей на Audi на сумму 133 руб
Сидоров купил запчастей на Audi на сумму 31 руб
 

Вложения

  • 1.png
    1.png
    42,8 KB · Просмотры: 3
$cat принимает значения cat1, cat2,.. это название столбцов в таблице stat, в которых содержаться значения сумм товаров по категориям
 
у тебя же при подсчете категория никак не используется? то есть, сумму возвращает для всех?

кстати, а какой смысл в
PHP:
prod_id BETWEEN $ot AND $do
?
что за странная привязка к айди?
 
каждая категория имеет 12 товаров,т.е cat1 это prod_id с 1 по 12, cat2 это prod_id с 13 по 24
 
Сверху