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.
Onko tuossa jokin syy miksi et tee sql-lausetta joka yhdistää kaksi taulua id:n mukaan ja pyöräytä tulosta ulos yhdellä kertaan?
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
LEFT JOIN. otat vaan huomiioon että osalla idestä tulee useamman kerran kuin yhdesti.
Aihe on jo aika vanha, joten et voi enää vastata siihen.