25. juni 2004 - 19:55Der er
8 kommentarer og 1 løsning
Fejlfindinding af et script
Hej Jeg har et script som henter en artikel ud, alt efter hvad ($_GET['id']); er. Hvis artiklen ikke findes, eller der ikke er noget id, generere det en liste over alle artikler..
Problemet ligger i at den ikke henter artiklen ud, men den kan godt se om artiklen findes ller ej.
Her er koden:
<?php $connection = mysql_connect("localhost", "****", "****") or die(mysql_error()); mysql_select_db("spiff", $connection) or die(mysql_error());
$id = intval($_GET['id']);
$res = mysql_query("SELECT title, body FROM articles WHERE id = '$id'") or die(mysql_error()); if( $row = mysql_fetch_row($res) ) { print "<h1>".$row['title']."</h1>"; print $row['body']; } else { print "Fandt ikke artiklen<br>Vælg fra listen:<br><br>"; $res = mysql_query("SELECT id, title FROM articles ORDER BY title") or die(mysql_error()); while( $row = mysql_fetch_row($res) ) { print '<a href="hej.php?id=' .$row['id'] . '">'.$row['title'].'</a><br><br>'; }} ?>
Nu kan jeg se artiklerne hvis jeg giver korrekt id, men hvis artiklen ikke findes, kommer listen forkert fram frem (mangler diverse id'er)(fra html output):
Fandt ikke artiklen<br>Vælg fra listen:<br><br><a href="hej.php?id="></a><br><br><a href="hej.php?id="></a><br><br>
Med intval bliver strengen til et tal. Skal du regne på det kan det være en fordel, men skal du bare bruge det til at lave nye strenge vil det i længden tage (lidt) længere tid.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.