Tabellen en optellen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Eddy Moerman

Eddy Moerman

03/09/2014 07:18:25
Quote Anchor link
Hoi, ik weet niet of ik op dit forum op het goede adres ben maar ik ben als leek op zoek naar een basis php code voor een website van mij. Ik beheer een website van een restaurant van mijn vader en heb een keuzemenu voor de kerst gemaakt en die gelinkt aan een DB met mysql. Nu wil ik graag op een webpagina de resultaten uit de DB weergeven in een tabel. Ik ben zover dat ik rijen kan laten tonen maar verder kom ik echt niet. Het mooiste is dat alle gegevens van alle rijen worden weergegeven en dat de rijen met de cijfers automatische worden opgeteld met onderin een totaal. Eigenlijk gewoon het zelfde als excel maar dan op mijn site zodat mijn vader op die pagina kan zien hoeveel reserveringen er reeds binnen zijn.

Ik heb nu:

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

    mysql_connect("node-01-int.mysql.hostnet.nl","**","**");
    mysql_select_db("db8484_kerst2014") or die("geen verbinding met de DB");
 
    $query = mysql_query('SELECT naam,telefoon FROM kerst_2014');
    
    while($rows = mysql_fetch_assoc($query)){
    
        echo $rows['naam'] . " " . $rows['telefoon'] . "<br>";
        
        }

        
        
?>
 
PHP hulp

PHP hulp

15/07/2024 01:02:00
 
Jeroen Jansen

Jeroen Jansen

03/09/2014 10:00:50
Quote Anchor link
Je zou het simpelste je code met een teller kunnen uitbreiden:

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
<?php
//$teller beginwaarde meegeven
    $teller = 1;

    mysql_connect("node-01-int.mysql.hostnet.nl","**","**");
    mysql_select_db("db8484_kerst2014") or die("geen verbinding met de DB");
 
    $query = mysql_query('SELECT naam,telefoon FROM kerst_2014');
    
    while($rows = mysql_fetch_assoc($query)){
//$teller meenemen in de regel    
        echo $teller . "-" .$rows['naam'] . " " . $rows['telefoon'] . "<br>";
//$teller ophogen
        $teller++;
        }

        
        
?>
 
E vH

E vH

03/09/2014 10:13:57
Quote Anchor link
maak gebruik van mysqli ipv mysql.

kijk ook eens naar mysqli_num_rows
Zie: http://php.net/manual/en/mysqli-result.num-rows.php

om antwoord te geven op jou vraag:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?hh
$aantal = mysql_num_rows($query);
echo 'Totaal: '.$aantal;
?>
Gewijzigd op 03/09/2014 10:15:12 door E vH
 
- Ariën  -
Beheerder

- Ariën -

03/09/2014 10:15:06
Quote Anchor link
Over je databasestructuur...

Gezien je een jaartal in je tabel gebruikt, neem ik aan dat je per jaar een nieuwe tabel aanmaakt?

In dat geval moet je eens kijken naar Databasenormalisatie.
Gewijzigd op 03/09/2014 10:16:02 door - Ariën -
 
Eddy Moerman

Eddy Moerman

03/09/2014 12:07:56
Quote Anchor link
Hoi Jeroen, bedankt voor je code. Werkt goed alleen doet nog niet geheel wat ik voor ogen heb. Ik denk dat ik de raag niet goed gesteld heb. Het is nl een tweeledige vraag.

1 - hoe krijg ik het voor elkaar dat mijn resultaten uit de DB in tabellen worden weergegeven. Met een mooi kopje van de kolomnaam?

2 - als je nu naar mijn code kijkt zie je twee andere variabelen. Dit zijn het aantal volwassenen en kinderen. Hoe krijg ik de totalen van de kolom volwassen en kinderen?

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
<?php

    mysql_connect("node-01-int.mysql.hostnet.nl","*",""*);
    mysql_select_db("db8484_kerst2014") or die("geen verbinding met de DB");
 
    $query = mysql_query('SELECT naam,volwassenen,kinderen FROM kerst_2014');
    
    while($rows = mysql_fetch_assoc($query)){
//$teller meenemen in de regel    
        echo $teller . "-" .$rows['naam'] . " " . $rows['volwassenen'] . " " . $rows['kinderen'] . "<br>";
//$teller ophogen
        $teller++;
        }
  

    
?>



Toevoeging op 03/09/2014 12:11:17:

De website waar ik het vandaan haal is trouwens: http://www.expounicum.nl/keuzemenu/
En de site waar ik mijn resultaten wil hebben is: http://expounicum.nl/resultaat/
Gewijzigd op 03/09/2014 12:10:04 door Eddy Moerman
 
E vH

E vH

03/09/2014 12:22:05
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
30
31
32
33
<?php

    mysql_connect("node-01-int.mysql.hostnet.nl","*",""*);
    mysql_select_db("db8484_kerst2014") or die("geen verbinding met de DB");
 
    $query = mysql_query('SELECT naam,volwassenen,kinderen FROM kerst_2014');
    $teller = 1;
    echo '
    <table width="100%">
        <tr>
            <td></td>
            <td>Naam</td>
            <td>Volwassen</td>
            <td>Kids</td>
            <td>Totaal</td>
        </tr>'
;
    while($rows = mysql_fetch_assoc($query)){
        $aantal = $rows['volwassenen']+$rows['kinderen'];
        echo '
        <tr>
            <td>'
.$teller.'</td>
            <td>'
.$rows['naam'].'</td>
            <td>'
.$rows['volwassenen'].'</td>
            <td>'
.$rows['kinderen'].'</td>
            <td>'
.$aantal.'</td>
        </tr>
        '
;
        $teller++;
        }

        echo '</table>';

    
?>
Gewijzigd op 03/09/2014 12:30:23 door E vH
 
Ivo P

Ivo P

03/09/2014 13:15:44
Quote Anchor link
Maar komen die ook allemaal op dezelfde datum, of heb je het over het kerstmenu geserveerd in de 2 weken voor kerst?

wil je nog apart weten hoeveel volwassenen en hoeveel kinderen er zijn?

En tenslotte: misschien is het ook handig om dit script voor Pasen en Pinksteren opnieuw te gebruiken (en volgend jaar weer).

In dat geval zou ik
een kolom Jaartal opnemen
en ook een kolom "gelegenheid" waarin dan Kerst of Pasen of Pinksteren staat.

sowieso zou ik de database niet naar kerst vernoemd hebben, maar naar het restaurant. Of iets met "reserveringen".
 
Eddy Moerman

Eddy Moerman

03/09/2014 14:32:20
Quote Anchor link
Geweldig dit.. Wat gaaf om hiermee te werken. Top Elmar... Ook de andere tips neem ik zeker mee..

Nu nog een vraag. Nu zijn de kinderen en de volwassenen bij elkaar opgeteld. Nu wil ik liever dat de hele kolom volwassenen bij elkaar opgeteld wordt. en daarnaast wil ik graag dat de kolom kinderen bij elkaar opgeteld wordt. Dan heb ik in 1 oog opslag het overzicht van het aantal volwassenen en het aantal kinderen. Als ik die weer bij elkaar optel weet ik hoeveel personen er gereserveerd hebben.

Ik hoop dat dat kan?

Thanks!!!

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

    mysql_connect("node-01-int.mysql.hostnet.nl","*",""*);
    mysql_select_db("db8484_kerst2014") or die("geen verbinding met de DB");    

    $query = mysql_query('SELECT naam,kerstdag,volwassenen,kinderen FROM kerst_2014');
    $teller = 1;
    echo '
    <table width="100%">
        <tr>
            <td></td>
            <td>Naam</td>
            <td>kerstdag</td>
            <td>Volwassen</td>
            <td>Kinderen</td>
            <td>Totaal</td>
        </tr>'
;
    while($rows = mysql_fetch_assoc($query)){
        $aantal = $rows['volwassenen']+$rows['kinderen'];
        echo '
        <tr>
            <td>'
.$teller.'</td>
            <td>'
.$rows['naam'].'</td>
            <td>'
.$rows['kerstdag'].'</td>
            <td>'
.$rows['volwassenen'].'</td>
            <td>'
.$rows['kinderen'].'</td>
            <td>'
.$aantal.'</td>
        </tr>
        '
;
        $teller++;
        }

        echo '</table>';

    
?>
Gewijzigd op 03/09/2014 14:33:23 door Eddy Moerman
 
E vH

E vH

03/09/2014 14:38:18
Quote Anchor link
Men neme een schrijfblok en een schrijfwaar...............

Maar even serieus...Wat heb je zelf geprobeerd?

Hier heb je een opzetje:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$query
= mysql_query('SELECT naam,kerstdag,volwassenen,kinderen, SUM(volwassenen) as totaal_volwassenen FROM kerst_2014');


echo 'Totaal volwassenen: '.$rows['totaal_volwassenen'];
?>
 
Eddy Moerman

Eddy Moerman

03/09/2014 14:45:23
Quote Anchor link
Ik doe mijn best... Alleen gaf ik al aan dat ik een leek ben. ook met het lezen en proberen gaat het traag en moet ik mijn best doen om het begrijpen. Des al niet te min helpen jullie mij erg verder, als iets werkt en ik zie het weet ik ook vaak waarom en kan ik het ineens plaatsten.

Neemt bv nu jou laatste code, begrijp wat er staat maar waar moet ik die plaatsen en hoe doe ik dat..

grtz De Leek

;-)

ps of moet ik maar een script laten maken? wat zou dat kosten?
 
E vH

E vH

03/09/2014 14:52:16
Quote Anchor link
vervang:
$query = mysql_query('SELECT naam,kerstdag,volwassenen,kinderen FROM kerst_2014');
voor:
$query = mysql_query('SELECT naam,kerstdag,volwassenen,kinderen, SUM(volwassenen) as totaal_volwassenen FROM kerst_2014');

plaats is onder:
echo '</table>';
Het volgende:
echo 'Totaal volwassenen: '.$rows['totaal_volwassenen'];
Gewijzigd op 03/09/2014 14:55:52 door E vH
 
Ivo P

Ivo P

03/09/2014 14:53:32
Quote Anchor link
Quote:
vervang:
$query = mysql_query('SELECT naam,kerstdag,volwassenen,kinderen FROM kerst_2014');
voor:
$query = mysql_query('SELECT naam,kerstdag,volwassenen,kinderen, SUM(volwassenen) as totaal_volwassenen FROM kerst_2014');


en voorspel de foutmelding die je dan krijgt (of zou moeten krijgen)

iets met mengen van wel- en niet aggregatie waarden.
 
Eddy Moerman

Eddy Moerman

03/09/2014 14:57:01
Quote Anchor link
Thanks... alleen krijg ik nu een wit leeg scherm??



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

    mysql_connect("node-01-int.mysql.hostnet.nl","*","*");
    mysql_select_db("db8484_kerst2014") or die("geen verbinding met de DB");

    $query = mysql_query('SELECT naam,kerstdag,volwassenen,kinderen, SUM(volwassenen) as totaal_volwassenen FROM kerst_2014');
    $teller = 1;
    echo '
    <table width="100%">
        <tr>
            <td></td>
            <td>Naam</td>
            <td>kerstdag</td>
            <td>Volwassen</td>
            <td>Kinderen</td>
            <td>Totaal</td>
        </tr>'
;
    while($rows = mysql_fetch_assoc($query)){
        $aantal = $rows['volwassenen']+$rows['kinderen'];
        echo '
        <tr>
            <td>'
.$teller.'</td>
            <td>'
.$rows['naam'].'</td>
            <td>'
.$rows['kerstdag'].'</td>
            <td>'
.$rows['volwassenen'].'</td>
            <td>'
.$rows['kinderen'].'</td>
            <td>'
.$aantal.'</td>
        </tr>
        '
;
        $teller++;
        }

        echo '</table>' echo 'Totaal volwassenen: '.$rows['totaal_volwassenen'];

    
?>
 
E vH

E vH

03/09/2014 15:04:58
Quote Anchor link
Wat ivo zei klopt ;-)
zat niet op te letten..

Probeer het is zo, even snel een opzetje gemaakt:


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
36
37
38
<?php

    mysql_connect("node-01-int.mysql.hostnet.nl","*","*");
    mysql_select_db("db8484_kerst2014") or die("geen verbinding met de DB");

    $query = mysql_query('SELECT naam,kerstdag,volwassenen,kinderen FROM kerst_2014');
    $teller = 1;
    $totaal_volwassenen = 0;
    echo '
    <table width="100%">
        <tr>
            <td></td>
            <td>Naam</td>
            <td>kerstdag</td>
            <td>Volwassen</td>
            <td>Kinderen</td>
            <td>Totaal</td>
        </tr>'
;
    while($rows = mysql_fetch_assoc($query)){
        $aantal = $rows['volwassenen']+$rows['kinderen'];
        echo '
        <tr>
            <td>'
.$teller.'</td>
            <td>'
.$rows['naam'].'</td>
            <td>'
.$rows['kerstdag'].'</td>
            <td>'
.$rows['volwassenen'].'</td>
            <td>'
.$rows['kinderen'].'</td>
            <td>'
.$aantal.'</td>
        </tr>
        '
;
        $totaal_volwassenen+= $rows['volwassenen'];
        $teller++;
        }

        echo '</table>';
        echo 'Totaal volwassenen: '.$totaal_volwassenen;

    
?>
Gewijzigd op 03/09/2014 15:06:11 door E vH
 
Eddy Moerman

Eddy Moerman

03/09/2014 15:07:43
Quote Anchor link
Top!!! Thanks...

Alleen krijg ik nu maar 1 rij te zien van de laatsten data die is ingevoerd????

zie: http://expounicum.nl/resultaat/

Thanks
 
E vH

E vH

03/09/2014 15:12:09
Quote Anchor link
en je query is nu?
 
Eddy Moerman

Eddy Moerman

03/09/2014 15:13:36
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
30
31
32
33
34
35
36
37
38
<?php

    mysql_connect("node-01-int.mysql.hostnet.nl","*","*");
    mysql_select_db("db8484_kerst2014") or die("geen verbinding met de DB");
    
    $query = mysql_query('SELECT naam,kerstdag,volwassenen,kinderen, SUM(volwassenen) as totaal_volwassenen FROM kerst_2014');
    $teller = 1;
    $totaal_volwassenen = 0;
    echo '
    <table width="100%">
        <tr>
            <td></td>
            <td>Naam</td>
            <td>kerstdag</td>
            <td>Volwassen</td>
            <td>Kinderen</td>
            <td>Totaal</td>
        </tr>'
;
    while($rows = mysql_fetch_assoc($query)){
        $aantal = $rows['volwassenen']+$rows['kinderen'];
        echo '
        <tr>
            <td>'
.$teller.'</td>
            <td>'
.$rows['naam'].'</td>
            <td>'
.$rows['kerstdag'].'</td>
            <td>'
.$rows['volwassenen'].'</td>
            <td>'
.$rows['kinderen'].'</td>
            <td>'
.$aantal.'</td>
        </tr>
        '
;
        $totaal_volwassenen+= $rows['volwassenen'];
        $teller++;
        }

        echo '</table>';
        echo 'Totaal volwassenen: '.$totaal_volwassenen;

    
?>
 
E vH

E vH

03/09/2014 15:14:21
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
30
31
32
33
34
35
36
37
38
<?php

    mysql_connect("node-01-int.mysql.hostnet.nl","*","*");
    mysql_select_db("db8484_kerst2014") or die("geen verbinding met de DB");
    
    $query = mysql_query('SELECT naam,kerstdag,volwassenen,kinderen FROM kerst_2014');
    $teller = 1;
    $totaal_volwassenen = 0;
    echo '
    <table width="100%">
        <tr>
            <td></td>
            <td>Naam</td>
            <td>kerstdag</td>
            <td>Volwassen</td>
            <td>Kinderen</td>
            <td>Totaal</td>
        </tr>'
;
    while($rows = mysql_fetch_assoc($query)){
        $aantal = $rows['volwassenen']+$rows['kinderen'];
        echo '
        <tr>
            <td>'
.$teller.'</td>
            <td>'
.$rows['naam'].'</td>
            <td>'
.$rows['kerstdag'].'</td>
            <td>'
.$rows['volwassenen'].'</td>
            <td>'
.$rows['kinderen'].'</td>
            <td>'
.$aantal.'</td>
        </tr>
        '
;
        $totaal_volwassenen+= $rows['volwassenen'];
        $teller++;
        }

        echo '</table>';
        echo 'Totaal volwassenen: '.$totaal_volwassenen;

    
?>
 



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.