login  Naam:   Wachtwoord: 
Registreer je!
 Forum

nieuwsberichten laten zien (Opgelost)

Offline Braatje - 21/12/2008 07:59
Avatar van BraatjeMySQL interesse Goedemorgen,

Ik heb een nieuwspagina waar alle nieuws berichtte worden getoond.
  1. <?php
  2. $sql = "SELECT id, title, bericht, TIME(datum) AS tijd, DATE_FORMAT(datum, '%d-%m-%Y') AS datum1 FROM news ORDER BY datum DESC";
  3. $result = mysql_query($sql);
  4. $num = mysql_num_rows($result);
  5.  
  6. while($row = mysql_fetch_array($result)){
  7. $datum=$row['datum1'];
  8. $datum2=explode("-",$datum);
  9. $NLdate=$datum2[2]."-".$datum2[1]."-".$datum2[0];
  10. ?>
  11. <div class="nieuws">
  12. <table>
  13. <tr>
  14. <td class="title"><b><? echo $row['title'] ?></b></td>
  15. </tr>
  16. <tr>
  17. <td class="datumbalk">Datum: <? echo $row['datum1'] ?> om <? echo $row['tijd']?></td></tr>
  18. <tr>
  19. <td class="news"><font size=-1><? echo ($row['bericht']) ?></font></td></tr>
  20. </table>
  21. </div>
  22. <?
  23. }
  24. ?>

Alleen nu heb ik op mijn index een klein overzichtje van het laatste nieuws met een lees verder linkje.
  1. <? echo substr($row['title'],0, 42) ?>...<a href="nieuws.php?id=<? echo $row['id']; ?>">Lees verder</a>


Alleen als ik daarop klik krijg ik gewoon de nieuws pagina te zien met de nieuwsberichtte en niet alleen van dat betreffende nieuws item.
Zit de bovenste code daarvoor verkeerd in elkaar of hoe moet ik dat doen?

8 antwoorden

Gesponsorde links
Offline marten - 21/12/2008 10:22
Avatar van marten Beheerder Je moet het id dat je meestuurt in de url nog verwerken in je query. Dus zet je id als integer in een variabele en breid je query uit met een WHERE.
Offline Braatje - 21/12/2008 18:12
Avatar van Braatje MySQL interesse Hoe kan ik die ID als integer zetten en hoe moet ik die where gaan gebruiken?
iets van WHERE id='" .$_GET["id"] ."'");

Offline marten - 22/12/2008 08:32 (laatste wijziging 22/12/2008 08:32)
Avatar van marten Beheerder
  1. WHERE id='" .(int) $_GET["id"] ."'");
Offline BigBug - 22/12/2008 10:18
Avatar van BigBug PHP expert
marten schreef:
[..code..]


Citaat:
WHERE id=". (int) $_GET['id'] ."


Binnen de [] single quote's marten...

En getallen buiten quotes, dus de single quotes om de double quotes kunnen weg 
Offline marten - 22/12/2008 10:36
Avatar van marten Beheerder Heb zijn code alleen maar copy / paste gedaan en laten zien hoe je er een integer van maakt door middel van type casting.
Offline Braatje - 22/12/2008 17:21 (laatste wijziging 22/12/2008 17:26)
Avatar van Braatje MySQL interesse Ik weet nu eigenlijk nog steeds niet hoe en wat ik in mijn bovenstaand stukje script moet aanpassen/veranderen.

Ik wil dus als ik bijv. nieuws.php?id=27 intyp dat ik dan alleen het nieuwsbericht krijg met het id 27 en als ik gewoon naar nieuws.php surf dat ik dan het nieuws overzichtje krijg.

Want als ik mijn query zo aanpas
  1. $sql = "SELECT id, title, bericht, TIME(datum) AS tijd, DATE_FORMAT(datum, '%d-%m-%Y') AS datum1 FROM news WHERE id=". (int) $_GET['id'] ." ORDER BY datum DESC";

dan heb ik geen overzichtje meer als ik gewoon naar nieuws.php surf
Maar als ik dan via de
  1. <? echo substr($row['title'],0, 42) ?>...<a href="nieuws.php?id=<? echo $row['id']; ?>">Lees verder</a>
ga dan krijg ik wel alleen het bericht met dat id.

Ik hoop dat mijn bedoeling duidelijk is
Offline Koen - 22/12/2008 17:31
Avatar van Koen PHP expert
Braatje schreef:
iets van WHERE id='" .$_GET["id"] ."'");

Even een kleine opmerking: het voorbeeld dat je aanhaalt is niet echt veilig 

Lees deze tutorial maar eens:
http://www.site...cripts#sql
Offline Braatje - 22/12/2008 19:16 (laatste wijziging 22/12/2008 20:08)
Avatar van Braatje MySQL interesse dat stukje van beveiliging zal ik eens doorlezen.

En als nog iemand even kan uitleggen hoe ik mijn uitleg in post 6 voor elkaar krijg

EDIT: Heb de oplossing;
Van de query een if else gemaakt
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.211s