Hei,
Aivot lagaa..., tämmönen yksinkertanen juttu, mutta itse en jostain syystä saa muodostettua toimivaa. Eli miten saadaan muotoiltua tarvittavat PHP taulukot tästä MySQL taulukosta:
On MySQL taulukko:
tuote | valmistaja ---------|--------------- banaani | eldorado maito | valio kaakao | fazer
Tarvitaan PHP taulukot tässä muodossa:
<?php $tuotteet = array("banaani", "maito", "kaakao"); $valmistajat = array("banaani" => "eldorado", "maito" => "valio", "kaakao" => "fazer"); ?>
Toinen taulukko tulisi tähän käyttöön: voitaisiin tarvittaessa ottaa tuotteen valmistaja:
<?php echo $valmistajat["maito"]; //saataisiin valio ?>
Kiitos helpistä =)
<?php while ($row=mysql_fetch_assoc()) { $tuotteet[]=$row['tuote']; $valmistajat[$row['tuote']]=$row['valmistaja']; }
Ei testattu
Vinkki: et tarvitse välttämättä kahta taulukkoa. Voit säilyttää kaikki yhdessä taulukossa, ja esimerkiksi tässä tapauksessa saat tuotteet esiin funktiolla array_keys
ja valmistajat funktiolla array_values
.
Kiitos grez ja trilog, asia hoidettu päiväjärjestyksestä =)
Laitan tähän samaan ketjuun ettei tule turhaan tehtyä lisää viestiketjuja.
Eli toinen kysymys: Kun tuotteita on paljon, niin millaisella kyselyllä saisin listan eniten esiintyvistä valmistajista. Onkohan tuo ylipäätään mahdollista yhdellä kyselyllä.
Eli jos vaikka valion valmistamia tuotteita on 200kpl, fazerin valmistamia 100kpl ja eldoradon tuotteita 20kpl, niin tuloksena pitäisi saada:
Valmistaja | Tuotteiden määrä --------------|----------------- valio | 200 fazer | 100 eldorado | 20
Kiitos!
SELECT * FROM lista ORDER BY maara LIMIT 3
Ei testattu, mutta mielestäni menisi näin.
Selitin ilmeisesti hieman huonosti, mutta ei se mitään.
Sain toimimaan kun selailin mysql dokumentaatiota tarpeeksi =))
SELECT valmistaja, COUNT(valmistaja) AS laskuri FROM tuotteet GROUP BY valmistaja ORDER BY laskuri DESC;
Aihe on jo aika vanha, joten et voi enää vastata siihen.