Beste,


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
Toon eens wat die "trekbalkje" is.

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?
Beste kris wellicht kan het ook nog anders zal even mijn vraag goed formuleren

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
Als ik het goed heb:

SELECT fruit, COUNT(aantallen) AS aantal_records, SUM(aantallen) AS som FROM mijn_tabel
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
Beste Chris wellicht doe ik nog iets verkeerds de code die ik nu heb ingevoerd is

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



?>



-----------------------------------------------------

als ik dit uitvoer krijg ik
ArrayResoursce id#3


ik doe dus iets verkeerd
<?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>';
}

?>

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.
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:

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


Okay, doe dit:
[code]
<?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>';
}
?>
dat is fantastisch Kris Het werk!!!!!

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!!!


voeg dit toe aan het EINDE van je query:


 LIMIT 5,75


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.

<?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>'; 
}
?> 



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
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.

Reageren