Avatar billede challenge Praktikant
19. januar 2006 - 16:38 Der er 11 kommentarer og
1 løsning

Update tabel når side loades

Hey.

Jeg er ved at lave noget PM-funktion til mit bruger-system.

Jeg vil have så at hvis en side loades med beskeden i skal database-posten "read" ændres fra 0 til 1.

Jeg har prøvet denne kode, men virker ikke:

                          if ($pb == "0") {
                if ($_POST["side"]) {
                mysql_query("update privatbesked SET read = 1 WHERE ") or die(mysql_error());
                }
              }

Hvad kan jeg gøre?
Avatar billede challenge Praktikant
19. januar 2006 - 16:45 #1
if ($pb == "0") {
if ($_POST["side"]) {
mysql_query("update privatbesked SET read = 1 WHERE id = $_GET[besked_id] AND tilbruger = $_SESSION[brugernavn]") or die(mysql_error());
}
}

Rettet :)
Avatar billede jaw Nybegynder
19. januar 2006 - 16:51 #2
Og syntaxmæssigt korrekt:
mysql_query("update privatbesked SET read = 1 WHERE id = ".$_GET['besked_id']." AND tilbruger = ".$_SESSION['brugernavn']) or die(mysql_error());

Og så skal du lige svare og acceptere dit eget svar så spørgsmålet kan blive lukket :)
Avatar billede challenge Praktikant
19. januar 2006 - 17:02 #3
Hvis det virkede ville jeg give pointene til dig - Men det gør det jo ikke, så det bliver der ikke noget af denne gang ;)
Avatar billede jaw Nybegynder
19. januar 2006 - 17:06 #4
Ah, jeg troede du selv havde løst det.

Hvad er det der ikke virker? Får du en fejl, eller opdaterer den bare ikke? Og du har husket session_start(); i toppen? Og kommer du overhovedet ind i din if? Du kan jo evt. smide en echo ind og se om den overhovedet bliver udført.

Og så lige en lille rettelse endnu:

mysql_query("update `privatbesked` SET `read` = 1 WHERE id = ".$_GET['besked_id']." AND tilbruger = ".$_SESSION['brugernavn']) or die(mysql_error());

Og det er ikke ' (apostrof) men ` (som jeg aldrig kan huske hvad hedder).

:)
Avatar billede challenge Praktikant
19. januar 2006 - 17:17 #5
Databasen bliver ikke opdateret.

Session_start() er klaret

Kommer ind i min if?

Den echoer både brugernavn og id ud, så det skulle ikke være det...

Rettede det til hvad du skrev, men virker stadig ikke...
Avatar billede jaw Nybegynder
19. januar 2006 - 17:18 #6
Med echo mener jeg f.eks.:

if ($pb == "0") {
  if ($_POST["side"]) {
    echo "Nu bliver min update kørt";
    mysql_query("update privatbesked SET read = 1 WHERE ") or die(mysql_error());
  }
}

Så kan du se, om den overhovedet kommer derind.
Avatar billede challenge Praktikant
19. januar 2006 - 17:27 #7
Hmm... nææ don't show...
Avatar billede jaw Nybegynder
19. januar 2006 - 17:28 #8
Så er det jo et sted at tage fat. Hvor kommer $pb fra? Og du er sikker på, at $_POST['side'] er sat?
Avatar billede challenge Praktikant
19. januar 2006 - 17:31 #9
Mere kode...


$besked_l = mysql_query("SELECT * FROM privatbesked WHERE tilbruger = '".$_SESSION[brugernavn]."' AND id = '".$_GET[besked_id]."'") or die(mysql_error());
              while ($pb_l = mysql_fetch_array($besked_l)) {
              if ($pb_l == "0") {
              if ($_GET["side"]) {
              echo "Nu bliver min update kørt";
              mysql_query("update `privatbesked` SET `read` = 1 WHERE id = ".$pb_l[id]." AND tilbruger = ".$_SESSION['brugernavn']) or die(mysql_error());
             
              }
              }

**PM html**

}

Har rettet $pb til $pb_l og rettet $_POST["side"] til $_GET["side"]
Avatar billede jaw Nybegynder
19. januar 2006 - 17:32 #10
Det er jo så nok her det går galt:
              while ($pb_l = mysql_fetch_array($besked_l)) {
              if ($pb_l == "0") {

Hvorfor skulle $pb_l være = 0? Det er jo et array, og vil aldrig være lig 0 hvis det indeholder data.
Avatar billede challenge Praktikant
19. januar 2006 - 17:34 #11
Nåå ja self...

Det skulle være
if ($pb_l["read"] == "0") {

Jeg skammer mig!

Tak for hjælpen!

Smid svar :)
Avatar billede jaw Nybegynder
19. januar 2006 - 17:35 #12
Ah, ja det er jo noget andet :)

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