Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z zapytaniem
Forum PHP.pl > Forum > Bazy danych > MySQL
e-konrad
  1. $query = mysql_query("SELECT count(p.category) AS ile, p.category, d.month FROM dane d INNER JOIN phone ph ON ph.phone=d.telefon INNER JOIN phonebook p ON p.id=ph.object_id WHERE d.month='".$month."' AND d.year='".$year."' GROUP BY p.category");
  2. while($show = mysql_fetch_assoc($query)){
  3. echo $show['category'].$show['ile'].$show['month']."<br />";
  4.  
  5. mysql_query("UPDATE stats SET category='".$show['category']."', month='".$show['month']."', ile='".$show['ile']."', year='".$year."' WHERE month='$show['month']' AND year='".$year."'");
  6. }


Powyższe zapytanie wyświetla wyniki poprawnie, ale mam problem z przekopiowaniem wyników do innej tabeli. Dodaje mi się ostatni rekord powielony tyle razy ile jest wyników.
nospor
Jestes pewien ze to jest dokladnie kod jaki masz? Bo ten kod nie ma prawa dzialac, gdy jest to PARSE ERROR
e-konrad
Faktycznie, brakowało "" przy month w update. Poprawiony kod
  1. $query = mysql_query("SELECT count(p.category) AS ile, p.category, d.month FROM dane d INNER JOIN phone ph ON ph.phone=d.telefon INNER JOIN phonebook p ON p.id=ph.object_id WHERE d.month='".$month."' AND d.year='".$year."' GROUP BY p.category");
  2. while($show = mysql_fetch_assoc($query)){
  3. echo $show['category'].$show['ile'].$show['month']."<br />";
  4.  
  5. mysql_query("UPDATE stats SET category='".$show['category']."', month='".$show['month']."', ile='".$show['ile']."', year='".$year."' WHERE month='".$show['month']."' AND year='".$year."'");
  6. }

nospor
NO i gdzie robisz to kopiowanie? Bo jedyne co tu widze to UPDATE.
Jesli miales na mysli ten update znaczy ze warunki w nim podane dotycza wszystkich rekordow stad zmiany sa te same we wszystkich rekordach
e-konrad
Co należy zrobić aby wyniki tego zapytania były aktualizowane w tabeli stats. W tej chwili wyświetla mi dane poprawnie ale w tabeli stats mam powielony tylko ostatni wynik
nospor
No musisz dobrac tak warunek WHERE by jednoznacznie identyfikowal rekord z tabeli STATS. To Ty chyba wiesz co jednoznacznie identyfikuje rekord w tej tabeli a nie my
e-konrad
Dzięki za naprowadzenie, właściwie to nie wiem dlaczego sprawiało mi to tylko zachodu. Po where wystarczyło tylko dodać warunek category='".$show['category']."'. I wszystko działa jak powinno.
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.