Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Insert do bazy mysql w pętli for
e-konrad
post
Post #1





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 11.12.2008

Ostrzeżenie: (0%)
-----


Witam,
Poniższy kod generuje statystyki za określony okres w zależności od nr tygodnia
  1. for($count=1;$count<date("W");$count++){
  2.  
  3. $week_number = $count;
  4. //$week_number = date("W") - 1; // numer tygodnia
  5. $begin_data = date("Y")."-01-01"; //data początkowa od której będą naliczane nr tygodni
  6.  
  7. $start_date = date("Y-m-d", strtotime($begin_data." + ".($week_number - 1)." weeks - 2 day"));
  8. $start_date_time = $start_date." 00:00:00";
  9. $end_date = date("Y-m-d", strtotime($begin_data." + ".$week_number." weeks - 3 day"));
  10. $end_date_time = $end_date." 23:59:59";
  11.  
  12. echo $count;
  13. //wszystkie zgłoszenia otrs za wskazany okres
  14. $ile_zgloszen = mysql_query("SELECT
  15. count('t.id') AS 'ile'
  16. FROM ticket t
  17. join ticket_state ts ON ts.id=t.ticket_state_id
  18. join ticket_state_type tst ON tst.id=ts.type_id
  19. WHERE
  20. tst.id in (1,2,3)
  21. AND t.queue_id in (5,8,13,15,20,23,24,25,26,27)
  22. AND t.create_time BETWEEN '$start_date_time' AND '$end_date_time'");
  23. $row = mysql_fetch_row($ile_zgloszen);
  24. $ilosc_zgloszen = $row['0'];
  25.  
  26. $query = mysql_query("SELECT * FROM serwis_ticket_stats WHERE week_number='$week_number' AND start_date='$start_date' AND end_date='$end_date'");
  27.  
  28. if(mysql_num_rows($query) > 0) {
  29. mysql_query("UPDATE serwis_ticket_stats SET
  30. ile_zgloszen='$ilosc_zgloszen',
  31. ile_zgloszen_zrealizowanych='$ilosc_zgloszen_zrealizowanych',
  32. ile_zgloszen_zrealizowanych_sprzet='$ilosc_zgloszen_zrealizowanych_sprzet',
  33. ile_zgloszen_nowych='$ilosc_zgloszen_nowych',
  34. ile_zgloszen_realizowanych='$ilosc_zgloszen_realizowanych',
  35. suma_zrealizowanych_zgloszen='$ilosc_wszystkich_zgloszen_zrealizowanych'
  36. WHERE week_number='$week_number' AND start_date='$start_date' AND end_date='$end_date'");
  37. }
  38. if(mysql_num_rows($query) < 1){
  39. mysql_query("INSERT INTO serwis_ticket_stats SET
  40. start_date='$start_date',
  41. end_date='$end_date',
  42. week_number='$week_number',
  43. ile_zgloszen='$ilosc_zgloszen',
  44. ile_zgloszen_zrealizowanych='$ilosc_zgloszen_zrealizowanych',
  45. ile_zgloszen_zrealizowanych_sprzet='$ilosc_zgloszen_zrealizowanych_sprzet',
  46. ile_zgloszen_nowych='$ilosc_zgloszen_nowych',
  47. ile_zgloszen_realizowanych='$ilosc_zgloszen_realizowanych',
  48. suma_zrealizowanych_zgloszen='$ilosc_wszystkich_zgloszen_zrealizowanych'");
  49. }
  50.  
  51. }//end for


Do bazy danych zostanie dodany/uaktualniony tylko pierwszy cykl pętli, pozostałe cykle zwracają komunikat: Warning: mysql_fetch_row() expects parameter 1 to be resource, boolean given

Zweryfikowałem poprawność generowanych zapytań pętli poprzez echo "zapytanie sql"; tak wygenerowane zapytania sprawdziłem w phpmyadmin i wszystko jest OK.
Zamiast mysql_fetch_row($ile_zgloszen); próbowałem _array i _assoc ale to również nie pomogło.

Co jest nie tak?
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 12:33