Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Przypominacz
Forum PHP.pl > Forum > Przedszkole
Lethys
Jestem w trakcie tworzenia gry via www, obecnie pracuje nad przypominaczem który wysyła prywatną wiadomość na pocztę (wewnętrzną w grze) usera gdy pozostał 1 dzień konta premium.


Wygląda to tak:

  1.  
  2. $nump = @mysql_num_rows(mysql_query("select * from players"));
  3. for($index=0;$index<$nump;$index++){
  4.  
  5. //powinno wysyłać do graczy którym pozostał 1 dzien konta premium
  6.  
  7. $gracz = mysql_fetch_array(mysql_query("select * from players where id='$index' and premium='1'"));
  8.  
  9. $temat= "Został 1 dzień konta premium";
  10. $list="Cześć<br><br>Pozostał Ci tylko jeden dzień konta premium.<br> Aby przedłużyć ten okres przejdź do zakładki Premium.";
  11. $data = date("d.m.y");
  12. $sender = "Missy";
  13. $senderid = "2";
  14.  
  15. mysql_query("insert into poczta (ownerid, subject, body, sender, senderid, data) values('$gracz[id]','$temat','$list','$sender','$senderid', '$data')") or die("Nie moża wysłać;
  16. }
  17.  


Jakie są efekty skryptu?

Co prawda przypomnienie dochodzi gdzie ma dojść ale oprócz tego wysyła (tyle wiadomości ile wynosi $nump) pod ID = 0

Czyli zapycha baze danych na darmo.

Co jest źle w skrypcie?

ToAr
pętla wykonuje się tyle razy ilu masz userów w bazie danych, a powinna się wykonywać tyle razy ile masz userów w bazie, którym pozostał 1 dzień konta premium

  1. $result = mysql_query("select * from players where premium='1'");
  2. $numrows = mysql_num_rows($result);
  3. if($numrows > 0) {
  4. while ($row = mysql_fetch_array($result)) {
  5. $temat= "Został 1 dzień konta premium";
  6. $list="Cześć<br><br>Pozostał Ci tylko jeden dzień konta premium.<br> Aby przedłużyć ten okres przejdź do zakładki Premium.";
  7. $data = date("d.m.y");
  8. $sender = "Missy";
  9. $senderid = "2";
  10.  
  11. mysql_query("insert into poczta (ownerid, subject, body, sender, senderid, data) values('$row['id']','$temat','$list','$sender','$senderid', '$data')") or die("Nie moża wysłać;
  12. }
  13. }
  14.  
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.