Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Warunek usuwania z bazy
Forum PHP.pl > Forum > Przedszkole
artekp999
Mam pewnien skrypt usuwający rekordy z bazy jeśli spełniają pewien warunek. I mam pewien błąd.
Otóż gdy mam 2 takie same rekordy różniące się tylko datą to usuwa oby dwa. A gdy ten sam jest nie spełniający warunku to nie usunie.


Przykład
stannadawca = 0 i $stanadresat = 0
620 > 259200
Warunek nie spełniony

stannadawca = 0 i $stanadresat = 0
620000 > 259200
Warunek spełniony

Ale i tak usunie oby dwa rekordy.
Jaki mam błąd w poniższym kodzie co powinienem dodać.

  1. <?php include("polacz.php");
  2. include ('glowne/gora.php');
  3. include("zabezpieczenie.php");
  4. $query = mysql_query("select * from poczta order by id desc");
  5. while($rekord = mysql_fetch_array($query))
  6. {
  7. $dodano = $rekord[6];
  8. $data1 = date('d-m-Y G:i:s');
  9. $data2 = $dodano;
  10. $roznica = (strtotime($data1) - strtotime($data2));
  11. $min = floor($roznica / 60);
  12. $sec = $roznica-($min*60);
  13. $h = floor($min/60);
  14. $min = $min-($h*60);
  15. $dni = floor($h/24);
  16. $h = $h-($dni*24);
  17.  
  18. $data = $dni * 86400 + $h * 3600 + $min * 60 + $sec;
  19.  
  20. $stannadawca = $rekord[9];
  21. $stanadresat = $rekord[10];
  22.  
  23. echo ''.$data.'-'.$stannadawca.'-'.$stanadresat.'<br>';
  24. }
  25.  
  26. if ($stannadawca == 1 && $stanadresat == 1)
  27. {
  28. $zapytanie ='DELETE FROM `poczta` WHERE `stannadawca`= 1 and `stanadresat`= 1';
  29. $idzapytania = mysql_query($zapytanie);
  30. }
  31.  
  32. if ($stannadawca == 0 && $stanadresat == 0)
  33. {
  34. if ($data > 259200)
  35. {
  36. $zapytanie ='DELETE FROM `poczta` WHERE `stannadawca`= 0 and `stanadresat`= 0';
  37. $idzapytania = mysql_query($zapytanie);
  38. }
  39. }
  40.  
  41. if ($stannadawca == 1 && $stanadresat == 0)
  42. {
  43. if ($data > 259200)
  44. {
  45. $zapytanie ='DELETE FROM `poczta` WHERE `stannadawca`= 1 and `stanadresat`= 0';
  46. $idzapytania = mysql_query($zapytanie);
  47. }
  48. }
  49.  
  50. if ($stannadawca == 0 && $stanadresat == 1)
  51. {
  52. if ($data > 259200)
  53. {
  54. $zapytanie ='DELETE FROM `poczta` WHERE `stannadawca`= 0 and `stanadresat`= 1';
  55. $idzapytania = mysql_query($zapytanie);
  56. }
  57. }
  58.  
  59. if ($stannadawca == 2)
  60. {
  61. if ($data > 2592000)
  62. {
  63. $zapytanie ='DELETE FROM `poczta` WHERE `stannadawca`= 2';
  64. $idzapytania = mysql_query($zapytanie);
  65. }
  66. }
  67. if ($stanadresat == 2)
  68. {
  69. if ($data > 2592000)
  70. {
  71. $zapytanie ='DELETE FROM `poczta` WHERE `stanadresat`= 2';
  72. $idzapytania = mysql_query($zapytanie);
  73. }
  74. }
  75. ?>
gorden
hmmm... miałem kiedyś podobny problem, usuwało oba rekordy, zamiast interesującego mnie. rozwiązałem to tak, że dla każdego dałem jakiś element odróżniający wszystkie rekordy od siebie - np. id. wtedy pobieram id rekordu, który mnie interesuje, sprawdzam i usuwam. wtedy zamiast obydwóch usunie tylko jeden.
artekp999
gorden dzięki za pomoc problem rozwiązany
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.