afhankelijk van waarde X postie in tabel kiezen
ik heb een trekbalkje gemaakt met appels peren en bananen en vervolgens radio buttons met het aantal
nu lukt het mij om dit te verzenden naar de database en weer op te halen
wat ik graag wil is dat
als ik appel kies met aantal 1 er in kolom 1 op cel 1 1 komt te staan en als ik peren kies met aantal 1 dat dit in kolom 2 komt te staan en dat kolom 1 dan leeg blijft kom er helaas niet uit.
wellicht dat iemand mij kan helpen met een tip
alvast bedankt
John
Bedoel je een <select> ?
Ik ben een Berlg, in België zijn er geen trekbalkjes. Het helpt altijd als je de code geeft; niet de troetelnamen
----
John Fuijkkink op 03/09/2013 13:55:48:
... en als ik peren kies met aantal 1 dat dit in kolom 2 komt te staan ...
Waarom in kolom 2? Leg eens uit.
Is dat de plaats van peren in de <select> ?
----
Hoeveel radio buttons?
Gewijzigd op 03/09/2013 14:34:24 door Kris Peeters
ik heb 100 records 2 kolommen ( fruit en aantallen)
in de kolom fruit, staat bv banaan en in de aantallen 5
nu wil ik uit de eerste 2 records weten hoeveel keer er banaan is ingevoerd en wat de totaal aantallen zijn van de records met bananen
Code (php)
1
2
3
2
3
SELECT fruit, COUNT(aantallen) AS aantal_records, SUM(aantallen) AS som FROM mijn_tabel
WHERE fruit = 'banaan'
GROUP BY fruit
WHERE fruit = 'banaan'
GROUP BY fruit
Waarbij dus
- $row['aantal_records'] = het aantal records met de zelfde fruit-naam.
- $row['som'] = De som van alle velden 'aantallen' voor alle records met de zelfde fruit-naam.
Met de WHERE krijg je enkel de bananen.
Als je dat lijntje weglaat, krijg je een overzicht; gegroepeerd per fruit.
... en uiteraard de tabelnaam aanpassen
Als ik me vergis, laat iets weten
Gewijzigd op 03/09/2013 16:16:14 door Kris Peeters
Code (php)
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
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
$server = 'www.XXX.nl.mysql';
$gebruiker = 'XXX';
$wachtwoord = 'XXX';
$database = 'XX';
mysql_connect($server,$gebruiker,$wachtwoord)or die(mysql_error()); //Inloggen en verbinding maken op met de database
mysql_select_db($database); //De juiste database openen en gebruiken
$sql= "SELECT fruit, COUNT(aantal) AS aantal, SUM(aantal) AS som FROM fruit
WHERE fruit = 'banaan' GROUP BY fruit";
$query = mysql_query( $sql );
while( $row = mysql_fetch_assoc($query) )
print $row;
print $query;
?>
$server = 'www.XXX.nl.mysql';
$gebruiker = 'XXX';
$wachtwoord = 'XXX';
$database = 'XX';
mysql_connect($server,$gebruiker,$wachtwoord)or die(mysql_error()); //Inloggen en verbinding maken op met de database
mysql_select_db($database); //De juiste database openen en gebruiken
$sql= "SELECT fruit, COUNT(aantal) AS aantal, SUM(aantal) AS som FROM fruit
WHERE fruit = 'banaan' GROUP BY fruit";
$query = mysql_query( $sql );
while( $row = mysql_fetch_assoc($query) )
print $row;
print $query;
?>
-----------------------------------------------------
als ik dit uitvoer krijg ik
ArrayResoursce id#3
ik doe dus iets verkeerd
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
$server = 'www.XXX.nl.mysql';
$gebruiker = 'XXX';
$wachtwoord = 'XXX';
$database = 'XX';
mysql_connect($server,$gebruiker,$wachtwoord)or die(mysql_error()); //Inloggen en verbinding maken op met de database
mysql_select_db($database); //De juiste database openen en gebruiken
$query = "SELECT fruit, COUNT(aantal) AS aantal, SUM(aantal) AS som FROM fruit
WHERE fruit = 'banaan' GROUP BY fruit";
$result = mysql_query( $query);
while( $row = mysql_fetch_assoc($result) )
{
echo $row['aantal'] . ' ' . $row['fruit'] . ' totaal: ' . $row['som'] . '<br>';
}
?>
$server = 'www.XXX.nl.mysql';
$gebruiker = 'XXX';
$wachtwoord = 'XXX';
$database = 'XX';
mysql_connect($server,$gebruiker,$wachtwoord)or die(mysql_error()); //Inloggen en verbinding maken op met de database
mysql_select_db($database); //De juiste database openen en gebruiken
$query = "SELECT fruit, COUNT(aantal) AS aantal, SUM(aantal) AS som FROM fruit
WHERE fruit = 'banaan' GROUP BY fruit";
$result = mysql_query( $query);
while( $row = mysql_fetch_assoc($result) )
{
echo $row['aantal'] . ' ' . $row['fruit'] . ' totaal: ' . $row['som'] . '<br>';
}
?>
Toevoeging op 04/09/2013 15:10:44:
Wanneer je de werking van de database begrijpt ga dan overstappen op mysqli of PDO want de mysql_* functies gaan verdwijnen.
Gewijzigd op 04/09/2013 15:09:28 door Frank Nietbelangrijk
John Fuijkkink op 04/09/2013 14:55:36:
ik doe dus iets verkeerd
Wel... ja en nee.
Het is een goed teken; wees blij.
Het betekent dat alles werkt. Behalve dat je verkeerd gaat fetchen.
Wat er gebeurt:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
while( $row = mysql_fetch_assoc($query) ) // je bent de accolades vergeten. Dus, slaat de slaat die while enkel op print $row (zijnde het volgende statement)
print $row; // $row is een array. Als je dit print, krijg je als antwoord: "Array"
print $query; // als de query mislukt is, krijg je FALSE. Als ze gelukt is, krijg je iets als "Resoursce id#3"
?>
while( $row = mysql_fetch_assoc($query) ) // je bent de accolades vergeten. Dus, slaat de slaat die while enkel op print $row (zijnde het volgende statement)
print $row; // $row is een array. Als je dit print, krijg je als antwoord: "Array"
print $query; // als de query mislukt is, krijg je FALSE. Als ze gelukt is, krijg je iets als "Resoursce id#3"
?>
Okay, doe dit:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
if( $row = mysql_fetch_assoc($query) ) { // lijn 31 bij jou
echo 'Fruit: ' . $row['fruit'] .'<br>';
echo 'aantal records: ' . $row['aantal'] .'<br>';
echo 'som: ' . $row['som'] .'<br>';
}
?>
if( $row = mysql_fetch_assoc($query) ) { // lijn 31 bij jou
echo 'Fruit: ' . $row['fruit'] .'<br>';
echo 'aantal records: ' . $row['aantal'] .'<br>';
echo 'som: ' . $row['som'] .'<br>';
}
?>
Gewijzigd op 04/09/2013 15:19:56 door Kris Peeters
nog 1 laaste vraagje ;)
als ik dat nu in de kolom fruit alleen voor record 5 tot en met 80 wil uitvoeren waar moet ik dat dan toevoegen in de query
alvast bedankt!!!
dit zal maximaal 75 regels genereren en beginnen vanaf de 6e regel die aan de query voldoet. maw: regel 1 t/m 5 worden overgeslagen.
Gewijzigd op 04/09/2013 20:20:08 door Frank Nietbelangrijk
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
$sql= "SELECT fruit, COUNT(aantal) AS aantal, SUM(aantal) AS som FROM fruit
WHERE fruit = 'banaan' GROUP BY fruit";
$query = mysql_query( $sql );
if( $row = mysql_fetch_assoc($query) ) {
echo 'Fruit: ' . $row['fruit'] .'<br>';
echo 'aantal records: ' . $row['aantal'] .'<br>';
echo 'som: ' . $row['som'] .'<br>';
}
?>
$sql= "SELECT fruit, COUNT(aantal) AS aantal, SUM(aantal) AS som FROM fruit
WHERE fruit = 'banaan' GROUP BY fruit";
$query = mysql_query( $sql );
if( $row = mysql_fetch_assoc($query) ) {
echo 'Fruit: ' . $row['fruit'] .'<br>';
echo 'aantal records: ' . $row['aantal'] .'<br>';
echo 'som: ' . $row['som'] .'<br>';
}
?>
Heb de limit overal toegevoegd, naar mijn weten het einde maar krijg toch een error, in bovenstaande heb ik hem er even uitgelaten.
wellicht doe ik toch iets fout
Even de code tussen de [code]-tags gezet. Graag volgende keren zelf doen aub.[/modedit]
Gewijzigd op 04/09/2013 22:40:04 door Nick Dijkstra
Sorry ik maak een fout. Er moet een komma tussen die twee waardes. Ik heb het hierboven even aangepast. Hou er trouwens rekening mee dat COUNT() en SUM() aggregate functies zijn. (ze geven het totaal van meerdere records). In combinatie met GROUP BY krijg je dan zoveel rijen terug als er verschillende waardes in de group by 'kolom' gevonden worden.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
$sql= "SELECT fruit, COUNT(aantal) AS aantal, SUM(aantal) AS som FROM fruit
WHERE fruit = 'banaan' GROUP BY fruit limit 1,3";
$query = mysql_query( $sql );
if( $row = mysql_fetch_assoc($query) ) {
echo 'Fruit: ' . $row['fruit'] .'<br>';
echo 'aantal records: ' . $row['aantal'] .'<br>';
echo 'som: ' . $row['som'] .'<br>';
}
?>
$sql= "SELECT fruit, COUNT(aantal) AS aantal, SUM(aantal) AS som FROM fruit
WHERE fruit = 'banaan' GROUP BY fruit limit 1,3";
$query = mysql_query( $sql );
if( $row = mysql_fetch_assoc($query) ) {
echo 'Fruit: ' . $row['fruit'] .'<br>';
echo 'aantal records: ' . $row['aantal'] .'<br>';
echo 'som: ' . $row['som'] .'<br>';
}
?>
frank van de sommatie ben ik me bewust das ook de bedoeling.
limit lukt me nog niet wellicht toch niet op de goede positie geplaatst?
Even de code tussen de [code]-tags gezet. Graag volgende keren zelf doen aub.[/modedit]
Gewijzigd op 04/09/2013 22:40:17 door Nick Dijkstra
probeer eens
Code (php)
1
$sql= "SELECT fruit, COUNT(aantal) AS aantal, SUM(aantal) AS som FROM fruit GROUP BY fruit LIMIT 1,3";
Gewijzigd op 04/09/2013 22:24:20 door Frank Nietbelangrijk
Quote:
WHERE fruit = 'banaan' GROUP BY fruit limit 1,3";
De limit staat helemaal goed, maar door de filter (WHERE fruit='banaan') en de group by krijg je altijd maar één record terug.