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
 
Start new topic
Odpowiedzi (1 - 3)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Wyswietlaj BLEDY BAZY. Tu masz napisane jak
Temat: Jak poprawnie zada pytanie


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
e-konrad
post
Post #3





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

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


Polecenie
  1. mysql_query($ile_zgloszen) OR die('BŁĄD:'.mysql_error());
zwróciło mi:Warning: mysql_query() expects parameter 1 to be string, resource given in C:\xampp\htdocs\serwis_system\modules\operacyjny\serwis_stats.php on line 48
BŁĄD:

Czyli to nie pomogło wyświetliłem wygenerowane zapytania z pętli echo $ile_zgloszen, wrzuciłem je do phpmyadmin i tam nie było problemów
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Skadzes nagle wytrzasnal
mysql_query($ile_zgloszen)
?
Nie miales go w kodzie, teraz nagle dorobiles.... Przeciez w linku co ci podalem masz wyraznie podane jak sie wyswietla bledy zapytan, czemu zawsze to taki problem?
  1. $ile_zgloszen = mysql_query("TU TWOJE ZAPYTANIE") or die(mysql_error());



ps:
poza tym nie: count('t.id')
a: count(t.id)
nazw kolumn/tabel nie bierze sie w apostrofy.... apostrofy to tekst


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

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 - 22:51