waar de zelfde product voor komt de units bij elkaar optellen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Dimi orla

dimi orla

06/02/2011 22:31:42
Quote Anchor link
Hoi iedereen,

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)
PHP script in nieuw venster Selecteer het PHP script
1
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";
  }
}

?>
Gewijzigd op 06/02/2011 22:34:55 door Dimi orla
 
PHP hulp

PHP hulp

16/01/2022 12:10:40
 
Jordi Kroon

Jordi Kroon

06/02/2011 22:34:51
Quote Anchor link
Jij wil een winkelmandje , en als ze 2x iets willen dat hij dan de aantal(1+1) opteld?

Bedoel je dat
 
Dimi orla

dimi orla

06/02/2011 22:37:13
Quote Anchor link
Niet een winkelmandje, maar nu dat jij het zegt de principe is het zelfde denk ik,
bedankt voor de tip.
 
Jordi Kroon

Jordi Kroon

06/02/2011 22:37:47
Quote Anchor link
Even een puntje
Mysql injectie mogelijk: mysql_real_escape_string gebruiken
 
Arjan -

Arjan -

06/02/2011 23:15:48
Quote Anchor link
Een group by op het veld product en de aggregate functie SUM() op je units...(dit allemaal uiteraard in je sql query)
 
Dimi orla

dimi orla

07/02/2011 00:17:12
Quote Anchor link
Bedankt Arjan,
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?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$query
  = "SELECT plu, product, SUM(units) FROM orders_open WHERE customer = '$Customer' GROUP BY product";

$ProductString .= $show['units']." ".$show['product']." ".$show['plu']."\n";
?>
 
Jordi Kroon

Jordi Kroon

07/02/2011 08:09:31
Quote Anchor link
Variabelen buitennde quotes
Mysql injectie mogelijk

Denk daar ook aan
 
Arjan -

Arjan -

07/02/2011 10:09:50
Quote Anchor link
Je dient een alias toe te voegen voor sum(units). Dus bijv. Sum(units) as num_units

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 -
 
Dimi orla

dimi orla

07/02/2011 14:35:01
Quote Anchor link
D'oh, beginers fout :),
jongens bedankt voor jullie hulp.
Gewijzigd op 07/02/2011 14:35:14 door dimi orla
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.