glennsjo Skrevet 19. oktober 2004 Del Skrevet 19. oktober 2004 Hei! Har drevet og knotet med et script som teller klikk inn i en database. Problemet er egentlig todelt. 1. Etter mye prøving og feiling får jeg både rederictet og telt. Problemet er at den teller et klikk som to. 2. Mye av koden nedenfor kan skjæres bort og likevel funke. Men det var denne koden jeg endelig fikk til å funke. testing.php <?php session_start(); include('mysql-config.php'); $ref_page=$HTTP_SERVER_VARS['PHP_SELF']; session_register('id'); $res = mysql_query("SELECT * FROM linker WHERE kategori=01 ORDER BY sortering ASC"); while($row = mysql_fetch_assoc($res)){ echo "<tr><td><a href=test/redir.php?page=".$row['link']."&id=".$row['id']."><font class=m1>".$row['navn']."</a> ".$row['id']."<br><br></td></tr>"; } ?> <br><br> <a href="test/redir.php?page=<?=$HTTP_SERVER_VARS['PHP_SELF']?>">"Neste side"</a> redir.php: <?php session_start(); $id=$HTTP_SESSION_VARS['id']; $next_page=$HTTP_GET_VARS['page']; $id=$_GET['id']; //logger på database $connection = @mysql_connect(localhost, bruker, passord) or die("Umulig å få kontakt med database"); //Velger database mysql_select_db(mindatabase); $q="UPDATE linker SET hits=hits+1 WHERE id=$id"; $result = mysql_query($q, $connection) or die ("Could not execute query : $q." . mysql_error()); if (@mysql_query($q)) { @mysql_close(); header("location: {$HTTP_GET_VARS['page']}"); exit; } else { echo "An error occured when recording the information.<br>SQL=$sql<br>MySQL reported: ".mysql_error(); @mysql_close(); exit; } ?> Så hvordan skal jeg både få den til å funke og ti lå bare telle 1? Mitt stalltips er at denne linja er sentral i problemet: <a href=test/redir.php?page=".$row['link']."&id=".$row['id']."> Men jeg vil altså ikke at linken skal vises. Kun id, også at redir henter link fra databasen og sender videre... Takker som alltid for hjelpen her! Lenke til kommentar
???????? Skrevet 19. oktober 2004 Del Skrevet 19. oktober 2004 Du kjører spørringen to ganger, og da må det nødvendig vis lagres to ganger: $q="UPDATE linker SET hits=hits+1 WHERE id=$id"; $result = mysql_query($q, $connection) or die ("Could not execute query : $q." . mysql_error()); if (@mysql_query($q)) { Det er ikke mysql_query($q) du skal sjekke der, prøv heller $result: $q="UPDATE linker SET hits=hits+1 WHERE id=$id"; $result = mysql_query($q, $connection) or die ("Could not execute query : $q." . mysql_error()); if ($result) { Videre så sjekker man ikke spørringen på den måten, ta en kikk på www..php.net/mysql_affected_rows Lykke til Lenke til kommentar
Torbjørn Skrevet 20. oktober 2004 Del Skrevet 20. oktober 2004 ????????: affected rows will gi 0 på en update query som ikke matcher noen rader, og i hans tilfelle da slå ut som en databasefeil - det er vel ikke helt det han ønsker heller? Lenke til kommentar
???????? Skrevet 20. oktober 2004 Del Skrevet 20. oktober 2004 (endret) Tja... du tar ikke feil Torbjørn. Det er likevel ikke feil å sjekke affected rows, da både den og $result vil gi bool verdi FALSE, men det vil der i mot være litt unødvendig. Endret 20. oktober 2004 av ???????? Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå