Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Problem z update mysql
Forum PHP.pl > Forum > Przedszkole
ravikw
Witam
W php staram się działąć od święta ..także jeśli problem jest błachy proszę o wyrozumiałość.
A więc wymyśliłem sobie dynamiczny formularz, parametry "name" pobiera sobie z bazy....ok 50 rekordów.
teraz jestem na etapie odbierania danych z inputów poprzez $_POST. Tworzy mi tablicę asocjacyjną i próbuje w pętli updatować do bazy.
Jednak wywala mi cały czas płąd odnośnie Where i daty tam zawartej ....... Myślę że to jakaś błochostka ale nie mogę znaleść rozwiązani... sad.gif

  1.  
  2. $data='2012-12';
  3.  
  4. if($_POST ){
  5.  
  6. foreach ($_POST as $nazwa => $ilosc)
  7. {
  8.  
  9. $sql = "UPDATE ".$sfid."_plany_1 set".$nazwa."=".$ilosc."WHERE miesiac=".$data;
  10. $rezultat = mysql_query($sql, $polacz) or die(mysql_error());
  11.  
  12. }
  13.  
  14. }
  15.  
  16.  
  17.  
  18.  


Nadmienie że napewno w bazie jest jerden rekord '2012-12' w tabeli "miesiac"... a błąd jaki mi wyświetla :"Something is wrong in your syntax obok '=WHERE miesiac=2012-12' w linii 1"


Za wszelkie podpowiedzi i sugestie dziekuje...
Lion_87
Zrób echo $sql w forech, pomiń wykonanie zapytania i zobacz co Ci wyświetli.
b4rt3kk
Zapytanie jest źle skonstruowane.

  1. $sql = "UPDATE {$sfid}_plany_1 set {$nazwa}='{$ilosc}' WHERE miesiac='{$data}'";


np. po set brakowało spacji, brakuje objęcia w apostrofy zmiennych, jest to obowiązkowe.
ravikw
[b4rt3kk] dziękuje smile.gif pomoglo smile.gif życze wszystkim miłego dnia i do następnego...
Temat do zamknięcia...





Witam ponownie mam zapytanko...dokładnie taka sama sytuacja jak wcześniej Update zrobione jak w podpowiedzi kolegi wyżej .... a jednak dalej taki sam błąd.... czym się różnią te UPDATE questionmark.gif?


  1. if($_POST ){
  2.  
  3. foreach ($_POST as $nazwa => $wartosc)
  4. { $parametr=explode("_", $nazwa);
  5.  
  6. $sql = "UPDATE {$sfid}_grafik set {$parametr[1]}='{$wartosc}' WHERE rok='{$_POST['rok']}' AND miesiac='{$_POST['miesiac']}'AND nazwa='{$parametr[0]}'";
  7. $rezultat = mysql_query($sql, $polacz) or die(mysql_error());
  8.  
  9. }
  10.  
  11. }
  12.  



a błąd
  1. Something is wrong in your syntax obok '1='400' WHERE rok='2012' AND miesiac='11'AND nazwa='Kowalski'' w linii 1


gdy sprawdzam
  1. echo $sql;
w wyniku otrzymuje
  1. UPDATE 2000_grafik set 1='5555' WHERE rok='2012' AND miesiac='11' AND nazwa='Kowalski'
  2. ........i kolejne update o takim szablonie


Może ktoś podpowie co może być źle questionmark.gif?
Wazniak96
$sql = "UPDATE {$sfid}_grafik set {$parametr[1]}='{$wartosc}' WHERE rok='{$_POST[rok]}' AND miesiac='{$_POST['miesiac']}'AND nazwa='{$parametr[0]}'";

Dajesz tablicę między apostrofami i index tez dajesz między apostrofami, stąd ten problem.
ravikw
jak zrobie:
  1. $sql = "UPDATE {$sfid}_grafik set {$parametr[1]}='{$wartosc}' WHERE rok='{$_POST[rok]}' AND miesiac='{$_POST[miesiac]}' AND nazwa='{$parametr[0]}'";


oraz gdy z tablic też wykasuje apostrofy ...dostaje ten sam błąd... sad.gif
EDIT:
Znalazłem smile.gif brakowało "`"

poprawnie
  1. $sql = "UPDATE `{$sfid}_grafik` set `{$parametr[1]}`='{$wartosc}' WHERE `rok`='{$_POST[rok]}' AND `miesiac`='{$_POST[miesiac]}' AND `nazwa`='{$parametr[0]}'";
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.