Olen tehnyt eräille sivuille uutisohjelman, ja kaikki ne kirjoitetut uutiset on MySQL-tietokannassa. Tarkoituksena olisi silleen tehdä, että etusivulla olisi näkyvissä 10 uusinta uutista ja loput menee omaan uutisarkistoon. Ongelma on se, että kun uutisia ei ole kirjoitettu vielä, niin php heittää asiasta herjaa. Uutiset on luettu kannasta for-lauseella. Eli kysyisin ongelmaan ratkaisua, että miten pystyy jo etukäteen asettamaan sen, että luetaan 10 uusinta viestiä ilman, että tulee kasapäin erroria?
Ihan normaalityylillä se on tähän asti toiminut ilman erroreita.
Paha tietysti mennä sanomaan miten olet asian toteuttanut. Sanoit että olet toteuttanut for-lauseella. Olisiko vikana, että et poistu for-loopista vaikka rivit jo loppuvatkin? Eli kun rivit loppuu kannattaa poistua, tyyliin:
<?php for ($rivi=1;$rivi<11;$rivi++) { $row = mysql_fetch_assoc($result); if ($row === false) break; //etc } ?>
Itse tosin tekisin sen niin, että kirjoittaisin SQL-kyselyn loppuun LIMIT 11. Sitten laskisin loopissa montako on saatu ja poistuisin kun 10 on täynnä tai kun kannasta luettavat rivit loppuvat. Jos tämän jälkeen vielä olisi rivi luettavissa, niin näyttäisin linkin arkistoon.
Kiitos avusta! Tuo LIMIT 11 systeemi sopi ohjelmaani parhaiten!
Aihe on jo aika vanha, joten et voi enää vastata siihen.