login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Alert update

Offline giellexe - 27/01/2008 22:09
Avatar van giellexeMySQL interesse Heey,

Ik heb een vraagje.
Ik heb een script voor PM berichten. Als een lid een nieuwe bericht heeft dan moet er een alert komen( dit het ik ).
Alleen nu komt telkens de alert tevoorschijn. En hij wil database niet update.
Wat doe ik fout ?

Plaatscode: 5286

7 antwoorden

Gesponsorde links
Offline Dark_Paul - 27/01/2008 22:56 (laatste wijziging 27/01/2008 23:01)
Avatar van Dark_Paul PHP ver gevorderde Ik zal je script even verbeteren.
1. Zet de update-query op een andere plek (na de eerste query)
2 seconden..

//Edit
http://www.plaatscode.be/5287/

Alsjeblieft.
Offline timmie_loots - 27/01/2008 23:39
Avatar van timmie_loots PHP gevorderde Dat werkt ook niet Dark_Paul. Wat giellexe namelijk wil is dat alleen als de gebruiker op "Ok" klikt in het confirmation dialog de database wordt geupdatet. Dat kan absoluut niet op deze manier, hij begrijpt het principe van server-side en client-side talen niet.

Giellexe, je moet de database pas updaten bij het bekijken van de PM. Op die manier weet je zeker dat de alert alleen verdwijnt als de gebruiker de PM bekijkt.
Offline Simon - 28/01/2008 07:52 (laatste wijziging 28/01/2008 07:54)
Avatar van Simon PHP expert
  1. <?
  2. $pm = mysql_result(mysql_query("SELECT COUNT(id) FROM pm WHERE voor='".$_SESSION['td_id']."' AND alert='0'",$home),0);
  3. if($pm > "0")
  4. {
  5. ?>
  6. <script type="text/javascript">
  7.  
  8. var nieuw = confirm('Je hebt een nieuw bericht(en). Wil je deze bekijken?')
  9.  
  10. if(nieuw)
  11. {
  12. <? mysql_query("UPDATE pm SET alert='0' WHERE voor='".$_SESSION['td_id']."'");?>
  13. window.location = "http://www.top-drop.nl/?p=pm";
  14. }
  15. </script>
  16. <?
  17. }
  18. ?>

zet de query eens boven je verwijzing 
en ik denk trouwens dat je moet zoeken op privé-berichten die een 1 als alert hebben hoor 
dus die eerste query:
  1. $pm = mysql_result(mysql_query("SELECT COUNT(id) FROM pm WHERE voor='".$_SESSION['td_id']."' AND alert=1",$home),0);
Offline Roland - 28/01/2008 11:53 (laatste wijziging 28/01/2008 11:54)
Avatar van Roland PHP expert Je maakt een denkfout, js en php staan los van elkaar.. het is dus NIET zo dat je update qry wordt uitgevoerd als je javascript conditie (if(nieuw)) true geeft.. die qry wordt gelijk uitgevoerd wanneer er geoutput wordt.
Offline giellexe - 28/01/2008 18:28
Avatar van giellexe MySQL interesse Ok bedankt 
Offline Dark_Paul - 28/01/2008 18:55
Avatar van Dark_Paul PHP ver gevorderde @Timmie_loots
die van mij zou wel moeten werken.
Als je goed kijkt, zie je dat ik de UPDATE-query uitvoer als er meer dan 0 resultaten terugkomen uit de database. Maar die voer ik uit voordat de javascript wordt gemaakt.
Enige foutje is dan die 0.

@Simon:
Kan je niet beter
WHERE alert='1'
doen?
Aan de eerste query te zien is 'alert' en enum veld (anders zouden er inderdaad geen quotes omheen hoeven).
Offline Koen - 29/01/2008 19:37
Avatar van Koen PHP expert
Simon schreef:
[..code..]

Euh, sinds wanneer kan je PHP in Javascript gebruiken..?
Die query wordt altijd uitgevoerd, of 'nieuw' nu true is of false,
waar jij op doelt zal met AJAX moeten gebeuren 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.181s