Avatar billede kimkochrasmussen Nybegynder
14. oktober 2008 - 14:22 Der er 4 kommentarer og
1 løsning

Opdatere en liste

Er temmelig ny i PHP, så håber på lidt hjælp
Jeg laver en liste ud fra en db, og planen er så at jeg ved at klikke i listen enten kan godkende et indlæg eller afvise det.
Det kører fint nok, og jeg får gemt værdien i min database - men jeg ville gerne at listen så blev opdateret (det er sat til kun at vise indlæg med godkendt=0). Trykker jeg F5 sker det - men kan det ikke ske automatisk.

Altså hvilken kommando skal jeg kalde efter jeg har lavet en update i min db?

Her er min kode:

//Henter data

$query = mysql_query("SELECT * FROM sms WHERE godkendt = '0' ORDER BY id");


//Opbygger tabel

            echo "

            <table border='0' cellpadding='5' frame='void' rules='none' style='font-family:verdana; font-size:11px;'>
            <tr><td> </td><td><b>ID</b></td><td><b>Afsender</b></td><td><b>Besked</b></td></tr>
           
           
            ";

// Sætter data ind i tabel
while($row = mysql_fetch_assoc($query)) //Lav en while der kører alle rækker igennem
{
            echo "<tr bgcolor='#EFEFEF' onMouseOver=this.bgColor='#FFFF99'; onMouseOut=this.bgColor='#EFEFEF';><td>
            <a href='?id=".$row['id']."&amp;action=afvis'><img src='stop.gif' border='0' alt='Afvis'></a>
           
            <a href='?id=".$row['id']."&amp;action=godkend'><img src='ok.gif' border='0' alt='Godkend'></a>
            </td><td>
            ".$row['id']."</td><td>".$row['sender']."</td><td>".$row['text']."</td> 
            </tr>";
}
    echo "</table>";

               
//Opdaterer data
if(!empty($_GET['id']) && $_GET['action'] == 'afvis')
    {
    $godkendt = 9;
   
    $updateSms = "UPDATE sms SET godkendt = '$godkendt' WHERE id = '".$_GET['id']."' LIMIT 1;";
mysql_query($updateSms) or die(mysql_error());
       
    }
   
   
if(!empty($_GET['id']) && $_GET['action'] == 'godkend')
    {
    $godkendt = 1;
   
    $updateSms = "UPDATE sms SET godkendt = '$godkendt' WHERE id = '".$_GET['id']."' LIMIT 1;";
mysql_query($updateSms) or die(mysql_error());
       
    }   
                       
?>
Avatar billede w13 Novice
14. oktober 2008 - 14:25 #1
Så skyldes det, at din sides cache viser. Du skal derfor undgå, at siden caches.

Indsæt f.eks. dette øverst i din PHP-kode:

Header('Cache-Control: no-cache');
Header('Pragma: no-cache');

Og sikr dig selvfølgelig, at det ikke er den gamle, cachede side, der vises, når du tester det. =)
Avatar billede dkfire Nybegynder
14. oktober 2008 - 14:46 #2
Det kunne måske også være en stor ide at du flyttede din opdateringskode til før du henter listen, ellers giver det jo ikke mening.

Som det er nu henter du din liste og viser den hvorefter du opdatere listen.
Du bør nok opdatere listen, og så hente og vise den.
Avatar billede kimkochrasmussen Nybegynder
14. oktober 2008 - 15:34 #3
dkfire: tak for det - nu virker det jo.
smid et svar for at få point...
Avatar billede w13 Novice
14. oktober 2008 - 15:39 #4
Nå ja, det er selvfølgelig problemet. :P
Avatar billede dkfire Nybegynder
14. oktober 2008 - 18:30 #5
Jamen så smider jeg da et svar her :-)
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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