anoniem Geplaatst: 26 januari 2002 Delen Geplaatst: 26 januari 2002 Ik ben bezig met het nieuws voor mijn site. De bedoeling is dat er onder elk volledig bericht een link komt naar het volgende en het vorige bericht. Als je het laatste bericht leest moet er geen link naar het volgende bericht komen, omdat je immers bij het laatste bericht bent. Dat werkt allemaal met de volgende code: [code:1:e890eea6b0]<?php mysql_connect ('localhost', '', ''); mysql_select_db ('nieuws'); $volgendebericht = mysql_query("SELECT * FROM nieuws WHERE id=$id+1"); if ($volgendebericht) { $fetch = mysql_fetch_object($volgendebericht); echo "<img src="../images/volgendebericht.gif" width="15" height="11" border="0">"; echo "<font face="Arial" size="2"><a href="?id=$fetch->id">$fetch->onderwerp</a></font><br>n"; } $vorigebericht = mysql_query("SELECT * FROM nieuws WHERE id=$id-1"); if ($vorigebericht) { $fetch = mysql_fetch_object($vorigebericht); echo "<img src="../images/vorigebericht.gif" width="15" height="11" border="0">"; echo "<font face="Arial" size="2"><a href="?id=$fetch->id">$fetch->onderwerp</a></font>n"; } ?> [/code:1:e890eea6b0] Er is echter een probleem. Het plaatje voor de link blijft wel staan terwijl je al bij het laatste bericht bent. Kijk maar op dit plaatje: http://www.rjbonline.com/overig/nieuwsvraag.gif (zie omcirkelde deel, het pijltje van 'volgende bericht' blijft staan terwijl er geen link is.) Wie weet de oplossing? :smile: _________________ [b:e890eea6b0].:[/b:e890eea6b0] [url=http://www.rjbonline.com]http://www.rjbonline.com[/url] [b:e890eea6b0]:.[/b:e890eea6b0] [ Dit Bericht is bewerkt door: George W. Bush op 2002-01-26 11:25 ] Quote Link naar reactie
anoniem Geplaatst: 26 januari 2002 Auteur Delen Geplaatst: 26 januari 2002 Volgens mij moet je niet checken of $vorigebericht geldig is, dit is namelijk een MySQL result. Die geeft volgens mij vrijwel altijd "true" terug (tenzij je query brak is). Je moet dus eerst die $fetch doen en dan checken of ie niet leeg is of zo... Dit geldt natuurlijk ook voor je $volgendbericht Quote Link naar reactie
anoniem Geplaatst: 26 januari 2002 Auteur Delen Geplaatst: 26 januari 2002 Ik heb het nu zo dus met die $fetch er boven. Het levert echter hetzelfde resultaat op, dus nog steeds dat pijltje dat blijft staan. [code:1:f9564e5dc4]<?php mysql_connect ('localhost', '', ''); mysql_select_db ('nieuws'); $volgendebericht = mysql_query("SELECT * FROM nieuws WHERE id=$id+1"); $fetch = mysql_fetch_object($volgendebericht); if ($volgendebericht) { echo "<img src="../images/volgendebericht.gif" width="15" height="11" border="0">"; echo "<font face="Arial" size="2"><a href="?id=$fetch->id">$fetch->onderwerp</a></font><br>n"; } $vorigebericht = mysql_query("SELECT * FROM nieuws WHERE id=$id-1"); $fetch = mysql_fetch_object($vorigebericht); if ($vorigebericht) { echo "<img src="../images/vorigebericht.gif" width="15" height="11" border="0">"; echo "<font face="Arial" size="2"><a href="?id=$fetch->id">$fetch->onderwerp</a></font>n"; } ?> [/code:1:f9564e5dc4] Quote Link naar reactie
anoniem Geplaatst: 26 januari 2002 Auteur Delen Geplaatst: 26 januari 2002 /me lacht :smile: Ja, natuurlijk is het nu hetzelfde! Je moet namelijk kijken of er iets in de $fetch zit en niet in de $vorige(volgende)bericht variabele... Quote Link naar reactie
anoniem Geplaatst: 26 januari 2002 Auteur Delen Geplaatst: 26 januari 2002 Bedoel je dit: [code:1:52ca612ced]$vorigebericht = mysql_query("SELECT * FROM nieuws WHERE id=$id-1"); if ($fetch = mysql_fetch_object($vorigebericht)) { echo "<img src="../images/vorigebericht.gif" width="15" height="11" border="0">"; echo "<font face="Arial" size="2"><a href="?id=$fetch->id">$fetch->onderwerp</a></font><br>n"; } [/code:1:52ca612ced] Dat levert ook hetzelfde resultaat op, dus weer met plaatje. Als je iets anders bedoelt, zou je dan zelf even de code juist willen veranderen. :) Quote Link naar reactie
anoniem Geplaatst: 26 januari 2002 Auteur Delen Geplaatst: 26 januari 2002 Nu ben ik echt wakker :smile: [code:1:6764f52774] $vorigbericht = ....; if(mysql_num_rows($vorigbericht) == 1)) { $fetch = ...; } [/code:1:6764f52774] [edit]toch niet helemaal wakker nog[/edit] _________________ Wiep Corbier: Ik heb even gechecked wat je zei Bill en je hebt gelijk (en maak hier a.u.b. geen sig van!). [ Dit Bericht is bewerkt door: Bill Gates op 2002-01-26 16:08 ] Quote Link naar reactie
anoniem Geplaatst: 26 januari 2002 Auteur Delen Geplaatst: 26 januari 2002 [quote:8218504884] Op 26-01-2002 16:07, schreef Bill Gates: Nu ben ik echt wakker :smile: [code:1:8218504884] $vorigbericht = ....; if(mysql_num_rows($vorigbericht) == 1)) { $fetch = ...; } [/code:1:8218504884] [edit]toch niet helemaal wakker nog[/edit] [/quote:8218504884] Wakker of niet wakker, het werkt en bedankt. :smile: Quote Link naar reactie
anoniem Geplaatst: 26 januari 2002 Auteur Delen Geplaatst: 26 januari 2002 Nog een kleine aanvulling: als je achter je query nog even "LIMIT 1" zet (dus ... $id-1 LIMIT 1), dan weet je zeker dat er ook maar één resultaat uit kan komen... Quote Link naar reactie
anoniem Geplaatst: 26 januari 2002 Auteur Delen Geplaatst: 26 januari 2002 [quote:fce3a029a6] Op 26-01-2002 16:45, schreef Bill Gates: Nog een kleine aanvulling: als je achter je query nog even "LIMIT 1" zet (dus ... $id-1 LIMIT 1), dan weet je zeker dat er ook maar één resultaat uit kan komen... [/quote:fce3a029a6] ja dat weet ik, daar maak ik ook gebruik van, van Limit. Bij de headlines heb bijvoorbeeld ...ORDER BY id LIMIT 1,10"); Maar is het hier volgens mij niet nodig, kijk maar op mijn site en klik op een nieuwsbericht, dan zie het er onder staan. Maar bedankt. :smile: Quote Link naar reactie
anoniem Geplaatst: 26 januari 2002 Auteur Delen Geplaatst: 26 januari 2002 Als je om 1 of andere vage reden nu 2 nieuws berichten hebt met het zelfde ID, dan krijg je 2 reultaten en werkt je script niet meer... Netjes programmeren en fouten voorkomen, daar gaat het om... Quote Link naar reactie
anoniem Geplaatst: 27 januari 2002 Auteur Delen Geplaatst: 27 januari 2002 Ja dat is waar, maar elk ID is uniek als het goed is. Ik heb ID 'autoincrement' gegeven dus die telt automatisch door. Maar ik denk dat het toch maar ga doen, dat met LIMIT 1, je weet maar nooit zoals je al zei. :wink: Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen