login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Gegevens uit database halen

Offline mik38 - 31/08/2010 13:14
Avatar van mik38Nieuw lid Ik heb een tabel met hierin een overzicht van diëten (280) en een gemiddeld cijfer per dieet. Zie de website www.tipsbijafvallen.nl onderaan.

Nu wil ik deze gemiddelden plaatsen achter de naam van het dieet. Voorheen heb ik dat opgelost door achter elk dieet een aparte selectie aan te roepen zoals bijvoorbeeld:
$gemiddelde = mysql_query("SELECT gemiddelde FROM dieet WHERE dieet = 'montignac'").

Aangezien hierdoor 280 keer een selectie werd gemaakt was mijn provider niet blij. Nu wil ik 1 keer een selectie maken en hier 280 gebruik van maken, maar als ik doe:
$gemiddelde = mysql_query("SELECT gemiddelde FROM dieet")
dan komt alles onder elkaar te staan en kan ik niet willekeurig een rij selecteren.

Ik ben vrij nieuw met php en kan geen oplossing bedenken voor dit probleem. Ook niets gevonden op internet.

Heeft iemand misschien een bruikbare oplossing ?


7 antwoorden

Gesponsorde links
Offline Button - 31/08/2010 14:15
Avatar van Button PHP ver gevorderde
Citaat:
$gemiddelde = mysql_query("SELECT gemiddelde FROM dieet")
dan komt alles onder elkaar te staan en kan ik niet willekeurig een rij selecteren.


Wat bedoel je met: alles onder elkaar te staan? Ik begrijp niet goed wat er niet lukt.
Offline mik38 - 31/08/2010 19:10
Avatar van mik38 Nieuw lid Als ik dan bijvoorbeeld invoer:

echo "$a[0]"; Dan krijg ik het gemiddelde van het eerste dieet.
Gebruik ik een while lus, dan krijg ik eerst het gemiddelde van het eerste dieet, dan het 2e dieet etc.

Maar ik wil beginnen met het gemiddelde van het 4e dieet, dan het 7e dieet etc. Dus zelf bepalen waar ik welk gemiddelde plaats.

Hopelijk zo goed uitgelegd ?
Offline PcFreak - 31/08/2010 19:26
Avatar van PcFreak Nieuw lid
  1. echo " dieet 1 ".$a['1']." ";
  2. echo " dieet 2 ".$a['2']." ";


zoiets dan?
Offline jaronneke - 31/08/2010 20:10 (laatste wijziging 31/08/2010 20:10)
Avatar van jaronneke MySQL interesse
  1. <?php
  2. $query = mysql_query("SELECT balbla FROM blabla ORDER BY blabla ASC");
  3. while($result = mysql_fetch_assoc($query))
  4. {
  5. echo $result['dieet'].'<br />';
  6. }
  7. ?>
Offline mik38 - 31/08/2010 20:30
Avatar van mik38 Nieuw lid Bedankt dat jullie me willen helpen. Helaas is dit niet wat ik bedoel. Ik vind het lastig om het begrijpelijk uit te leggen.

In kolom 1 heb ik de naam van het dieet
In kolom 2 heb ik het aantal beoordelingen
In kolom 3 heb ik de gemiddelde beoordeling.

Vervolgens onder elkaar 280 rijen met diëten, beoordelingen en gemiddelden.

In mijn overzicht op de website staan deze diëten in een andere volgorde (gerubriceerd).

De vraag is dus, hoe ik de rijen met één select opdracht uit de database kan halen en deze vervolgens in mijn overzicht kan plaatsen.

Voorheen gebruikte ik de opdracht:
SELECT gemiddelde FROM `dieet` WHERE dieet = 'Montignac' als het om Montignac ging. Deze opdracht heb ik zo 280 keer gegeven, bij elk dieet, maar dat gaf een enorme belasting.

Gebruik ik de while lus, dan ben ik verplicht om de rubricering los te laten en dat wil ik niet.


Offline Button - 31/08/2010 21:59 (laatste wijziging 31/08/2010 21:59)
Avatar van Button PHP ver gevorderde Als je nu in plaats van alleen het gemiddelde uit de db te halen, ook de naam van het dieet er uit haalt:

  1. SELECT naam, gemiddelde FROM dieet


Vergelijk dan gewoon de naam van het dieet in de tabel met de naam van het dieet uit de database gehaald en plaats dat gemiddelde naast die naam. Enkel een WHERE (zoals in SQL), maar dan in PHP. (Dit kan wel een kostbaar werkje worden als je alle namen met elkaar moet gaan vergelijken om de juiste te vinden, maar het reduceert het SQL werk tot 1 query.)
Offline mik38 - 01/09/2010 08:01
Avatar van mik38 Nieuw lid Dat lijkt me een mooie oplossing. Zou je mij de php code van WHERE kunnen geven ? Ik moet ik dan 280 keer doen, maar dat is geen probleem.

Bedankt weer vast.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.19s