Help bij Select uit db

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Plato Republic

Plato Republic

04/02/2010 14:39:00
Quote Anchor link
Beste allen,
Ik heb een tabel klant, een tabel producten en een bestelregel

Als een klant iets bestelt, worden de gegevens in twee tabellen opgeslagen. Als een klant meer dan een product bestelt, dan wordt er in de tabel bestelregel, twee producten met een hetzelfde klant nummer opgeslagen.

Nu wil dat alle producten van de klant op een factuur komt te staan. Probleem is dat ik nu alleen en product kan selecteren. Kan iemand mij hierbij helpen.

Ik wil dus een overzicht van:

Klant gegevens
alle bestelde artikelen
de totale prijs en zo...

Ik weet dat ik iets met GROUP BY moet doen, maar weet niet precies wat...

Dank
Gewijzigd op 01/01/1970 01:00:00 door Plato Republic
 
PHP hulp

PHP hulp

08/11/2024 15:44:26
 
- Jim  -

- Jim -

04/02/2010 14:46:00
Quote Anchor link
Je query aanpassen met group by en having om ook het totaal aantal producten dat de klant heeft besteld opgeteld in een regel op de factuur te zetten.
 
Pepijn

Pepijn

04/02/2010 15:15:00
Quote Anchor link
Want een handige titel, help help

doe es veranderen
 
- Jim  -

- Jim -

04/02/2010 15:49:00
Quote Anchor link
Pepijn schreef op 04.02.2010 15:15:
Want een handige titel, help help

doe es veranderen

Nu moet jij je bericht veranderen!! :p
 
Plato Republic

Plato Republic

04/02/2010 15:50:00
Quote Anchor link
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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
        
$LinkID
= mysql_connect("$hostname", "$username", "$password") or die("MySQL Connectie mislukt");
 mysql_select_db("$dbname") or die("verkeerde database");
$query = "
        SELECT artnr, aantal, prijs, naam SUM(artnr) AS artnr
        FROM bestelregel
        GROUP BY email HAVING SUM(artnr)"
;
                
$resultaat = mysql_query($query, $LinkID);
$column_count = mysql_num_fields($resultaat) or die (mysql_error()."<br>Couldn't execute query: $SQLquery");
while ($row = mysql_fetch_row($resultaat)){
                
echo"Bestelde artikelen"; echo"$row[5]";
echo"
Artikel            
$row[1]<br><br>
                
Aantal<br>
$row[2]<br><br>
                
Prijs<br>
$row[4]<br><br><br>
                
Totaal                            
$row[2] * $row[4]"
;
                
}

?>


Mijn artikelnummers zijn niet altijd numeriek, ik weet niet of dat wat uitmaakt. maar ik krijg een error..
 
- Jim  -

- Jim -

04/02/2010 16:14:00
Quote Anchor link
En welke error is dat?
 
Plato Republic

Plato Republic

04/02/2010 16:42:00
Quote Anchor link
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SUM(artnr) AS artnr FROM bestelregel GROUP BY email HAVING SUM(artnr' at line 1
Couldn't execute query:
 
- SanThe -

- SanThe -

04/02/2010 16:44:00
Quote Anchor link
Hier mist een komma:
naam SUM(artnr) AS artnr
 
Plato Republic

Plato Republic

05/02/2010 12:11:00
Quote Anchor link
SanThe
Dank het is gelukt inderdaad. Volgende probleem is, Ik kan artikelen niet onder elkaar krijgen. Bijvoorbeeld.

Artikelnummer - aantal - prijs
P78788 - 2 - 50.95
Y77887 - 2 - 79.95

Zo wil ik dat hebben, nu wordt er artikel alles weer herhaald:

Artikelnummer - aantal - prijs
P78788 - 2 - 50.95

Artikelnummer - aantal - prijs
Y77887 - 2 - 79.95

thanks
 
Hipska BE

Hipska BE

05/02/2010 13:25:00
Quote Anchor link
Dan moet je die benamingen buiten je while lus zetten..

Alles in de while lus wordt telkens afgedrukt..
 
Plato Republic

Plato Republic

05/02/2010 13:38:00
Quote Anchor link
Ja weet ik, alleen ik heb tabel zeg maar en een deel van dat tabel dat binnen de while zit moet herhaald worden. Er wordt maar een product in de tabel gezet en de tweede buiten de tabel: ik ben dit nu aan het proberen, maar wil nog niet lukken. :D

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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php

                $resultaat
= mysql_query($query, $LinkID);
                $column_count = mysql_num_fields($resultaat) or die (mysql_error()."<br>Couldn't execute query: $SQLquery");
                
                $counter=1;
              
                echo"
                <table width=\"634\" height=\"121\" border=\"1\">
                  <tr>
                    <td height=\"33\" colspan=\"4\">Bestelling per klant </td>
                  </tr>
                  <tr>
                    <td valign=\"top\">Artikelnummer</td>
                    <td valign=\"top\">Aantal</td>
                    <td valign=\"top\">Prijs</td>
                    <td valign=\"top\">Totaal/artikel</td>
                  </tr>                
                <tr>"
;
                while ($row = mysql_fetch_row($resultaat))
                  {

                    echo"
                    <td>$row[0]</td>
                    <td>$row[1]</td>
                    <td>$row[2]</td>
                    <td>$prijs</td>"
;
                
                    if($counter%4==0)
                    {

                    echo"<td>";
                    }

                        $counter++;
                      echo"</td></TR></TABLE>\n";
                  }

?>
 



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.