Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: While ja SQL

Jamma [19.08.2007 01:31:26]

#

Hyvää yötä
Kertokaapas viisaammat onko ongelmaan ratkaisua. Tilanne on tämä:

$query1 hakee tietokannasta id(unique), esimerkki(text)
$query2 hakee tietokannasta id(ei uniikki), dataa(text)

eli query2 voi antaa tulostuksena esimerkiksi
ID: Dataa:
1 Esimerkki1
1 Esimerkki2
1 Esimerkki3
4 Esimerkki4
4 Esimerkki5
jne.

<?php
$query1 = mysql_query("blaa");
$query2 = mysql_query("blaablaa");

//Fetchataan tieto ulos.
while($f1 = mysql_fetch_array($query1))
{
 echo $f1['esimerkki'];

 //Fetchataan tieto ulos toisestakin querystä.
 while($f2 = mysql_fetch_array($query2))
 {
  //Mikäli toisesta querystä löytyy samaisella id:llä dataa minkä $f1 antaa
  //niin tulostetaan ne.
  if($f1['id'] == $f2['id'])
  {
   echo $f2['dataa'];
  }
  else { }
 }
}
?>

Ongelmahan on se, että $f2 whilen fetch käydään vain kerran läpi vaikka $query ykkösessä olisi tietoa kymmenen rivin verran. Hommahan varmaan alkaisi toimimaan jos veisi queryn whilen sisään, mutta se ei ole mitenkään mukava vaihtoehto.

kasetti [19.08.2007 11:41:32]

#

Onko tuossa jokin syy miksi et tee sql-lausetta joka yhdistää kaksi taulua id:n mukaan ja pyöräytä tulosta ulos yhdellä kertaan?

Jamma [19.08.2007 15:43:43]

#

Olen kokenut yhden sql-lauseen tässä yhteydessä mahdottomaksi(?) tai toinen suurempi vaihtoehto on taidottomuus.

Kun ensimmäinen query hakee tietoa niin se tulee muodossa:
ID: Teksti:
1 Esimerkki1
2 Esimerkki2
3 Esimerkki3
4 Esimerkki4

Toinen query taas:
ID: Dataa:
1 Moi
1 Heippa
1 Moro
3 Hejssan
4 Terve
4 Morjensta


Ja echolla pitäisi tulostua näin:
Esimerkki 1 - Moi, Heippa, Moro
Esimerkki 2 -
Esimerkki 3 - Hejssan
Esimerkki 4 - Terve, Morjensta

Niko [19.08.2007 16:35:23]

#

LEFT JOIN. otat vaan huomiioon että osalla idestä tulee useamman kerran kuin yhdesti.

Vastaus

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

Tietoa sivustosta