Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP, MySQL: Pikkukysymys

carter [11.05.2010 18:17:57]

#

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ä =)

Grez [11.05.2010 18:59:00]

#

<?php
while ($row=mysql_fetch_assoc()) {
  $tuotteet[]=$row['tuote'];
  $valmistajat[$row['tuote']]=$row['valmistaja'];
}

Ei testattu

trilog [11.05.2010 19:07:04]

#

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.

carter [11.05.2010 19:09:20]

#

Kiitos grez ja trilog, asia hoidettu päiväjärjestyksestä =)

carter [23.05.2010 16:09:03]

#

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!

janijohannes [23.05.2010 16:24:00]

#

SELECT * FROM lista ORDER BY maara LIMIT 3

Ei testattu, mutta mielestäni menisi näin.

carter [23.05.2010 16:26:13]

#

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;

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta