waar de zelfde product voor komt de units bij elkaar optellen
Is het mogelijk op de volgende code voor het door geven op de ProductString de array te lezen waar de zelfde product voor komt en de units bij elkaar op te tellen?
Alle tips zijn welkom
Bij voorbaat dank,
Dimitris
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$query = "SELECT plu, product, units FROM orders_open WHERE customer = '$Customer'";
$result = mysql_query($query);
if($result)
{
$num=mysql_num_rows($result);
$i=0;
$ProductString = "";
while ($show = mysql_fetch_assoc($result))
{
$ProductString .= $show['units']." ".$show['product']." ".$show['plu']."\n";
}
}
?>
$query = "SELECT plu, product, units FROM orders_open WHERE customer = '$Customer'";
$result = mysql_query($query);
if($result)
{
$num=mysql_num_rows($result);
$i=0;
$ProductString = "";
while ($show = mysql_fetch_assoc($result))
{
$ProductString .= $show['units']." ".$show['product']." ".$show['plu']."\n";
}
}
?>
Gewijzigd op 06/02/2011 22:34:55 door Dimi orla
Bedoel je dat
bedankt voor de tip.
Mysql injectie mogelijk: mysql_real_escape_string gebruiken
Een group by op het veld product en de aggregate functie SUM() op je units...(dit allemaal uiteraard in je sql query)
De beste oplossing is de simpelste, en ik zat met iets met een loop samen met array_search en array_sum te denken.
Maar ik heb nog een vraag, ik denk dat query zo moet zijn maar de onderste code brengt alle zelfde producten by elkaar zonder de units te laat zien in de $ProductString, wat doe ik fout?
Mysql injectie mogelijk
Denk daar ook aan
Hierna kan je num_units aanroepen om de waarde te krijgen. Echter moet je op alle velden in je select statement een aggregate functie toepassen,behalve op het veld of velden die je in de group by opneemt! Gebruik hiervoor bijvoorbeeld de max() als de overige aggregate functies niet de uitkomst geven die je wilt of neem meer velden op in je group by.
Gewijzigd op 07/02/2011 10:15:15 door Arjan -
jongens bedankt voor jullie hulp.
Gewijzigd op 07/02/2011 14:35:14 door dimi orla