Vraag & Antwoord

Webprogrammeren & scripting

Nieuws vraagje - php

10 antwoorden
  • 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]&lt;?php mysql_connect ('localhost', '', ''); mysql_select_db ('nieuws'); $volgendebericht = mysql_query(&quot;SELECT * FROM nieuws WHERE id=$id+1&quot;); if ($volgendebericht) { $fetch = mysql_fetch_object($volgendebericht); echo &quot;&lt;img src=&quot;../images/volgendebericht.gif&quot; width=&quot;15&quot; height=&quot;11&quot; border=&quot;0&quot;&gt;&quot;; echo &quot;&lt;font face=&quot;Arial&quot; size=&quot;2&quot;&gt;&lt;a href=&quot;?id=$fetch-&gt;id&quot;&gt;$fetch-&gt;onderwerp&lt;/a&gt;&lt;/font&gt;&lt;br&gt;n&quot;; } $vorigebericht = mysql_query(&quot;SELECT * FROM nieuws WHERE id=$id-1&quot;); if ($vorigebericht) { $fetch = mysql_fetch_object($vorigebericht); echo &quot;&lt;img src=&quot;../images/vorigebericht.gif&quot; width=&quot;15&quot; height=&quot;11&quot; border=&quot;0&quot;&gt;&quot;; echo &quot;&lt;font face=&quot;Arial&quot; size=&quot;2&quot;&gt;&lt;a href=&quot;?id=$fetch-&gt;id&quot;&gt;$fetch-&gt;onderwerp&lt;/a&gt;&lt;/font&gt;n&quot;; } ?&gt; [/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] <font size=-1>[ Dit Bericht is bewerkt door: George W. Bush op 2002-01-26 11:25 ]</font>
  • Volgens mij moet je niet checken of $vorigebericht geldig is, dit is namelijk een MySQL result. Die geeft volgens mij vrijwel altijd &quot;true&quot; 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
  • 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]&lt;?php mysql_connect ('localhost', '', ''); mysql_select_db ('nieuws'); $volgendebericht = mysql_query(&quot;SELECT * FROM nieuws WHERE id=$id+1&quot;); $fetch = mysql_fetch_object($volgendebericht); if ($volgendebericht) { echo &quot;&lt;img src=&quot;../images/volgendebericht.gif&quot; width=&quot;15&quot; height=&quot;11&quot; border=&quot;0&quot;&gt;&quot;; echo &quot;&lt;font face=&quot;Arial&quot; size=&quot;2&quot;&gt;&lt;a href=&quot;?id=$fetch-&gt;id&quot;&gt;$fetch-&gt;onderwerp&lt;/a&gt;&lt;/font&gt;&lt;br&gt;n&quot;; } $vorigebericht = mysql_query(&quot;SELECT * FROM nieuws WHERE id=$id-1&quot;); $fetch = mysql_fetch_object($vorigebericht); if ($vorigebericht) { echo &quot;&lt;img src=&quot;../images/vorigebericht.gif&quot; width=&quot;15&quot; height=&quot;11&quot; border=&quot;0&quot;&gt;&quot;; echo &quot;&lt;font face=&quot;Arial&quot; size=&quot;2&quot;&gt;&lt;a href=&quot;?id=$fetch-&gt;id&quot;&gt;$fetch-&gt;onderwerp&lt;/a&gt;&lt;/font&gt;n&quot;; } ?&gt; [/code:1:f9564e5dc4]
  • /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...
  • Bedoel je dit: [code:1:52ca612ced]$vorigebericht = mysql_query(&quot;SELECT * FROM nieuws WHERE id=$id-1&quot;); if ($fetch = mysql_fetch_object($vorigebericht)) { echo &quot;&lt;img src=&quot;../images/vorigebericht.gif&quot; width=&quot;15&quot; height=&quot;11&quot; border=&quot;0&quot;&gt;&quot;; echo &quot;&lt;font face=&quot;Arial&quot; size=&quot;2&quot;&gt;&lt;a href=&quot;?id=$fetch-&gt;id&quot;&gt;$fetch-&gt;onderwerp&lt;/a&gt;&lt;/font&gt;&lt;br&gt;n&quot;; } [/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. :)
  • 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!). <font size=-1>[ Dit Bericht is bewerkt door: Bill Gates op 2002-01-26 16:08 ]</font>
  • [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:
  • Nog een kleine aanvulling: als je achter je query nog even &quot;LIMIT 1&quot; zet (dus ... $id-1 LIMIT 1), dan weet je zeker dat er ook maar één resultaat uit kan komen...
  • [quote:fce3a029a6] Op 26-01-2002 16:45, schreef Bill Gates: Nog een kleine aanvulling: als je achter je query nog even &quot;LIMIT 1&quot; 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&quot;); 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:
  • 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...

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.