30. august 2002 - 16:00Der er
9 kommentarer og 1 løsning
Denne er læst
Hej!
Jeg vil hører om der er en der er frisk på at lave et stykke kode, som holder styr på om en bruger har læst et indlæg. Forumet er bygget op om følgende database tables:
Brugere: - id - brugernavn - password - email - navn - beskrivelse - http - dato - ip - logins
indlaeg: - id - titel - forfatter - dato - tekst - tael
besvar: - id - indlaeg_id - forfatter - dato - tekst
Indlægende med deres tråde, bliver vis i en oversigt!
Det lyder faktisk som en fornuftig ide! Men du skulle vel ikke vide hvordan koden skal se ud, for der må jo skulle være en løkke som opretter brugeren i tabelen, når han læser indlægget første gang! Men næste gang han går ind på indlægget skal det jo ikke registreres igen!
1) Der skal tjekkes, om brugeren findes (du kan evt. opbevare brugerens id i en session). SELECT * read WHERE user = '$user_id' AND indlaeg_id = '$indlaeg_id' Derefter finder du ud af, hvor mange rækker, der er fundet (mysql_num_rows).
2) Hvis der blev fundet mere end 0, så skal der ikke gøres noget, hvis der ikke er fundet nogle rækker, skal du have en INSERT INTO .....
Jeg er lidt i mod at give kodeeksempler... Start på koderiet, og vend tilbage, hvis der er problemer, så finder vi ud af det. Det lærer du mest ved...
if (!isset($_SESSION["user_id"])) echo "FEJL!!! BRUGER-ID IKKE SAT!";
if (isset($_SESSION["user_id"])) { $user_id = $_SESSION["user_id"];
$query = mysql_query("SELECT * FROM read WHERE user = '$user_id' AND indlaeg_id = '$indlaeg_id'"); $number = mysql_num_rows($query);
if ($query == 0) mysql_query("INSERT INTO read (user, indlaeg_id) VALUES ('$user_id', '$indlaeg_id')"); }
Den skal så ind på toppen i hver side ved forum. Jeg ved ikke, hvordan du overfører $indlaeg_id, men det sker sikkert ved GET. Husk at ændre det ($indlaeg_id = $_GET["indlaeg_id"])... Kan du se idéen?
Jeg kan faktisk godt se logikken i det stykke kode, men jeg har bare kæmpe problemer med at få det til at virke på min! Det kan være at det hjælper, hvis du ser den kode det skal sættes ind i!
<? session_start(); include("config.php"); ?> <html> <head> <title></title> <link rel="stylesheet" type="text/css" href="css/style.css"> </head> <BODY BGCOLOR="#FFFFFF" TEXT="#000000"> <FONT FACE="Verdana, Arial, Helvetica, sans-serif" SIZE="1"> </FONT> <? if(!$brugernavn){ echo"Du skal være logget ind for at se denne side"; } else { include("connect.php"); include("tagster_lib.php"); echo"<table width=\"600\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" align=\"center\">"; echo" <tr>"; echo" <td>"; echo" <div align=\"center\"><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"3\"><b>";
$query = mysql_query("Select * from indlaeg where id = '$id'"); while($r = mysql_fetch_array($query)) {
Mht. det egentlige problem, så prøv selv at sætte koden ind, så skal jeg nok hjælpe dig. Prøv evt. bare at starte uden noget design, og sæt det derind i. Det lærer du mest ved... Men bare sæt lidt ind i ad gangen, så skal vi nok få det til at virke...
Selv - takker for points! Skriv, hvis der er noget, der ikke virker i dit script...
Synes godt om
Ny brugerNybegynder
Din løsning...
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.