Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]Wysyłanie kilu rekordów POST do mysql
Forum PHP.pl > Forum > Przedszkole
hostcom
Chciałbym prosić o pomoc jak powinnien być zbudowany formularz aby muc wysyłać kilka rekordów na raz do mysql

prosze o napisanie gdzie popełniony jest bład
  1. <?php
  2. if ($action=="languages" && $do=="edit"){
  3. stdhead("EDIT Language");
  4. begin_frame("EDIT Language");
  5. navmenu();
  6. print"<center>";
  7.  
  8. if ($_POST)
  9. {
  10. $id = $_GET["id"];
  11. $uri = $_POST["uri"];
  12.  
  13. $name = $_POST["language"];
  14. $charset = $_POST["charset"];
  15. if($uri!='' and $name!='')
  16. {
  17. mysql_query("UPDATE languages SET uri='$uri', name='$name', charset='$charset' WHERE id='$id'") or die(mysql_error());
  18. echo "<font size=2><BR>Language edited <b>Successful</b><BR><BR></font>";
  19. }
  20. else
  21. {
  22. echo "<BR><b>Error</b> empty field!<BR><BR>";
  23. }
  24. }
  25. else
  26. {
  27. $query = "SELECT * FROM languages WHERE lang_id=".$_GET['lang_id']."";
  28. $sql = mysql_query($query);
  29. echo "<form method='post' enctype='multipart/form-dat' action='?action=languages&do=edit'>";
  30. while ($row = mysql_fetch_array($sql)) {
  31. $id=$row['id'];
  32. $lang_id=$row['lang_id'];
  33. $uri=$row['uri'];
  34. $name=$row['name'];
  35. $charset=$row['charset'];
  36. echo"<input type='hidden' name='id' value=$id >";
  37. echo "<B>ID:</B><BR> <input type=text value=$id disabled><BR><BR>
  38. <B>Lang ID:</B><BR> <input type=text value=$lang_id disabled><BR><BR>
  39. <B>Language File:</B><BR> <input type=text name=uri value=$uri disabled><BR><BR>
  40. <B>Language:</B><BR> <input type=text name=language value=$name><BR><BR>
  41. <B>Charset:</B><BR> <input type=text name=charset value=$charset><BR><BR>";
  42.  
  43. } echo"<input type='Submit' value=' Save '
  44. style='border-style: solid; border-color: #666666; background-color: #FFFFFF;'/>
  45. </form>";
  46. }
  47. print"</center>";
  48. ?>
webasek
A co zwraca ten skrypt? Znaczy jaki błąd? Czy w ogóle coś zwraca?
HellRider
Wygląda raczej ok, przynajmniej pobieranie danych z GET i POST oraz UPDATE SQL.
Czy o mysql_connect() zapomniałeś czy pominąłeś w tym przykładzie tylko?
hostcom
pominołęm
potczas wysyłania z formularza infomuje że pola uri oraz name nie zawierają danych

  1. <?php
  2. if($uri!='' and $name!='') // ta funkcja zwaraca informacje je pola są puste
  3. {
  4. mysql_query("UPDATE languages SET uri='$uri', name='$name', charset='$charset' WHERE id='$id'") or die(mysql_error());
  5. echo "<font size=2><BR>Language edited <b>Successful</b><BR><BR></font>";
  6. }
  7. else
  8. {
  9. echo "<BR><b>Error</b> empty field!<BR><BR>";
  10. ?>
HellRider
Skoro podczas wysyłania nie zawierają danych, to nie powinieneś się dziwić, że warunek
($uri!='' and $name!='')
nie jest spełniany i nie wykonuje danej części.
hostcom
wiec gdzie leży błąd.. jeżeli podczas edycji rekordów wysyłane są dane metodą post
Ociu
W braku tagu w tytule tematu.
Jesteś pół roku na forum i dalej nie wiesz jakie zasady tu panują ? Prosze dodać tag, inaczej temat będzie zamknięty.
zegarek84
Cytat(HellRider @ 19.10.2008, 09:26:06 ) *
Skoro podczas wysyłania nie zawierają danych, to nie powinieneś się dziwić, że warunek
($uri!='' and $name!='')
nie jest spełniany i nie wykonuje danej części.

dane z pul z parametrem disabled nie są wysylane z formulaża - znalazłem cos takiego:
Cytat
jest tylko jeden minus, pole disabled=true nie wysyła danych z formularza, więc jeśli ma wysyłać dane to lepiej zrobić je typu hidden lub style.visibility='hidden'

tutaj:http://forum.creamsoft.com.pl/index.php?na...opic&t=5286

popraw formulaż lub pobaw się js i tu blokuj i odblokowuj...

możesz też użyć dodatkowego pola hiden i tutaj przeżucać przez js wartości
HellRider
Edit: Faktycznie, masz tam pola z atrybutem disabled.
hostcom
To już poprawiłem, ale jest to samo. próbuje wysłać coś tagiego

id lang_id name uri charset
1 1 Polski polish iso
2 1 Polish polish iso


Za jednym kliknięciem chce zaktualizować dwa rekordy
HellRider
Wykonaj dwa zapytania UPDATE smile.gif
hostcom
no tak ale to ma byc przesłane z formularza metodą POST jednocześnie
HellRider
Cytat(hostcom @ 19.10.2008, 10:59:18 ) *
To już poprawiłem, ale jest to samo. próbuje wysłać coś tagiego

id lang_id name uri charset
1 1 Polski polish iso
2 1 Polish polish iso
Za jednym kliknięciem chce zaktualizować dwa rekordy


Cytat(hostcom @ 19.10.2008, 11:58:35 ) *
no tak ale to ma byc przesłane z formularza metodą POST jednocześnie


Rozpisz się nieco szerzej, bo niejasno piszesz.

Jeden form ma dwa rekordy update'ować? Niech skrypt docelowy wykona dwa UPDATE'y, każdy z właściwymi danymi.
Będzie na jedno kliknięcie, ale skąd chcesz wziąć dane do drugiego rekordu mając jeden FORM? Rozpisz się.
hostcom
Po wipiciu piwka, spaleniu kilku papierosów, przysza odpowiedz proglemu do głowy..

Aby móc edytować kilka rekortów jednocześnie z jednej tabeli kod powinien wyglądać tak:

  1. <?php
  2. if ($action=="languages" && $do=="edit"){
  3. stdhead("EDIT Language");
  4. begin_frame("EDIT Language");
  5. navmenu();
  6. print"<center>";
  7.  
  8. if ($_POST)
  9.  {
  10.  
  11.  
  12. $query = "SELECT * FROM languages WHERE lang_id=1 ORDER BY id ASC";
  13. $sql = mysql_query($query);
  14.  
  15.  
  16.  
  17.  
  18.  
  19. while ($row = mysql_fetch_array($sql)){
  20. $ide=$row['id'];
  21.  $id = $_POST["id_$ide"];
  22.  
  23.  
  24.  $name = $_POST["language_$ide"];
  25.        $charset = $_POST["charset_$ide"];
  26.  
  27.        $updateset[] = "name = ".sqlesc($name);
  28.        $updateset[] = "charset = ".sqlesc($charset);
  29.        
  30.  
  31.  
  32.   mysql_query("UPDATE languages SET " . implode(",", $updateset) . " WHERE id='$id'") or die(mysql_error());
  33.   echo "<font size=2><BR>Language edited <b>Successful</b><BR><BR></font>";
  34.   }
  35.  
  36.  
  37.  }
  38. else
  39. {
  40.  $query = "SELECT * FROM languages WHERE lang_id=".$_GET['lang_id']."";
  41.  $sql = mysql_query($query);
  42.  echo "<form method='post' action='?action=languages&do=edit'>";
  43.  echo ("<imput type='hidden' name='lang_id' value=".$_GET['lang_id'].">");
  44.  while ($row = mysql_fetch_array($sql)) {
  45.  $id=$row['id'];
  46.  $lang_id=$row['lang_id'];
  47.     $uri=$row['uri'];
  48.  $name=$row['name'];
  49.  $charset=$row['charset'];
  50.  echo "<B>ID:</B><BR> <input type=hidden name=id_$id value=$id><BR><BR>
  51.   <B>Lang ID:</B><BR> <input type=text value=$lang_id disabled><BR><BR>
  52.   <B>Language File:</B><BR> <input type=text value=$uri disabled><BR><BR>
  53.  
  54.   <B>Language:</B><BR> <input type=text name=language_$id value=$name><BR><BR>
  55.   <B>Charset:</B><BR> <input type=text name=charset_$id value=$charset><BR><BR>";
  56.  
  57. } echo"<input type='Submit' value='  Save  '
  58.   style='border-style: solid; border-color: #666666; background-color: #FFFFFF;'/>
  59.  </form>";
  60. }
  61. print"</center>";
  62. ?>


Dziekuje wszystkim za pomoc. no ale tym razem sam sobie pomogłem smile.gif)
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.