Avatar billede teck Nybegynder
30. august 2002 - 16:00 Der 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!
Avatar billede mikl-dk Nybegynder
02. september 2002 - 11:39 #1
er det ikke bare at lave endnu en tabel:
read:
-id
-user
-indlaeg_id

og så tjekke på den, om den nuværende bruger findes i databasen ved det nuværnde indlæg?
Avatar billede teck Nybegynder
02. september 2002 - 15:30 #2
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!
Avatar billede mikl-dk Nybegynder
02. september 2002 - 16:28 #3
Når brugeren går ind på en tråd i dit forum:

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...

/mikl.dk
Avatar billede teck Nybegynder
02. september 2002 - 16:46 #4
Som sagt er jeg ikke den største haj til løkker! Så hvordan vil du anbefale at man starter, da jeg ikke lige kan få løkken sat i gang?
Avatar billede mikl-dk Nybegynder
02. september 2002 - 18:25 #5
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?

/mikl.dk
Avatar billede mikl-dk Nybegynder
02. september 2002 - 18:26 #6
Det er ikke testet....
Avatar billede teck Nybegynder
03. september 2002 - 09:50 #7
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)) {

$titel = $r["titel"];
echo $titel;
}

echo"
        </b></font></div>
    </td>
  </tr>
  <tr>
    <td>
      <div align=\"center\"><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\">af
";       

$query = mysql_query("Select * from indlaeg where id = '$id'");
while($r = mysql_fetch_array($query)) {
$forfatter = $r["forfatter"];
$forfatter = nl2br($forfatter);
echo $forfatter;
}

echo"        ,
";   

$query = mysql_query("Select * from indlaeg where id = '$id'");
while($r = mysql_fetch_array($query)) {
$dato = $r["dato"];
$dato = nl2br($dato);
echo $dato;
}

       
 
$query = mysql_query("Select * from indlaeg where id = '$id'");
while($r = mysql_fetch_array($query)) {
$dato = $r["id"];
echo "[#";
echo $id;
echo "]";

}

echo"
        </font></div>
    </td>
  </tr>
  <tr>
    <td valign=\"top\">
      <p align=\"LEFT\"><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\">
        <br>
";   

$query = mysql_query("Select * from indlaeg where id = '$id'");
while($r = mysql_fetch_array($query)) {
$tekst = $r["tekst"];
$tekst2 = tagster_format($tekst, "_blank");
echo $tekst2;


}

echo"        <br>
        </font></p>
    </td>
  </tr>
  <tr>
    <td><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\">
";   

$query = mysql_query("Select * from besvar where indlaeg_id = '$id' order by id ASC");
while($r = mysql_fetch_array($query)) {
$forfatter = $r["forfatter"];
$forfatter = nl2br($forfatter);
$dato = $r["dato"];
$dato = nl2br($dato);
$tekst = $r["tekst"];
$tekst2 = tagster_format($tekst, "_blank");
echo "<table width=\"100%\" cellspacing=\"0\ cellpadding=\"0\" align=\"center\"><br>";
echo "<tr>";
echo "<td align=\"left\" style=\"border-top : 1px solid #ABB39E;\"><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\"> Kommenteret af: $forfatter, $dato</font></td>";
echo "</tr>";
echo "<tr>";
echo "<td align=\"left\"><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\">$tekst2</font></td>";
echo "</tr></table>";
}

echo"      <br>
      <br>
      <br>
      <br>
      <br>
      </font></td>
  </tr>
  <tr>
    <td> <font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\">
";   
echo"
<form action=\"insert.php\" method=\"post\">
  <br>
  <table width=\"400\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\">
    <tr>
      <td></td>
    </tr>
    <tr>
      <td>
        <input type=\"hidden\" class=\"tekstboks\" name=\"id\" value=\"$id\">
      </td>
    </tr>
    <tr>
      <td><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\"><b>Kommenter
        indl&aelig;g: </b></font></td>
    </tr>
    <tr>
      <td valign=\"top\">
        <textarea name=\"tekst\" class=\"tekstboks\" cols=\"50\" rows=\"10\"></textarea>
    </tr>
    <tr>
      <td>
        <input type=\"submit\" name=\"send\" value=\"Send\">
      </td>
    </tr>
  </table>
</form>


  </tr>
  <tr>
    <td> </td>
  </tr>
</table>
<P ALIGN=\"CENTER\">&nbsp;</P>
<DIV ALIGN=\"LEFT\"></DIV>
<P ALIGN=\"CENTER\">&nbsp;</P>
<P ALIGN=\"CENTER\">&nbsp;</P>
</BODY>
</HTML>


";

}
?>
Avatar billede mikl-dk Nybegynder
03. september 2002 - 17:24 #8
Din kode trænger til at blive redesignet!

$query = mysql_query("Select * from indlaeg where id = '$id'");
while($r = mysql_fetch_array($query)) {
$forfatter = $r["forfatter"];
$forfatter = nl2br($forfatter);
echo $forfatter;
}

echo"        ,
";   

$query = mysql_query("Select * from indlaeg where id = '$id'");
while($r = mysql_fetch_array($query)) {
$dato = $r["dato"];
$dato = nl2br($dato);
echo $dato;
}

       
 
$query = mysql_query("Select * from indlaeg where id = '$id'");
while($r = mysql_fetch_array($query)) {
$dato = $r["id"];
echo "[#";
echo $id;
echo "]";

}



kunne laves meget mere simpelt - både at kigge på, men også så det kom til at køre hurtigere:

$query = mysql_query("Select * from indlaeg where id = '$id'");
while($r = mysql_fetch_array($query))
{
$forfatter = $r["forfatter"];
$forfatter = nl2br($forfatter);
echo $forfatter;

$dato = $r["dato"];
$dato = nl2br($dato);
echo $dato;

$dato = $r["id"];
echo "[#";
echo $id;
echo "]";
}
 
Du har 2 forespørgsler mindre...

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...
Avatar billede teck Nybegynder
04. september 2002 - 00:38 #9
Nu har jeg fået det til at virke! Mange tak for hjælpen *s*
Avatar billede mikl-dk Nybegynder
04. september 2002 - 08:16 #10
Selv - takker for points! Skriv, hvis der er noget, der ikke virker i dit script...
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester