Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL]Wysyłanie kilu rekordów POST do mysql
hostcom
post 19.10.2008, 00:46:11
Post #1





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 1.03.2008

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


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. ?>


Ten post edytował hwao 19.10.2008, 12:00:50
Go to the top of the page
+Quote Post
webasek
post 19.10.2008, 07:50:31
Post #2





Grupa: Zarejestrowani
Postów: 274
Pomógł: 35
Dołączył: 18.07.2008
Skąd: Kielce

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


A co zwraca ten skrypt? Znaczy jaki błąd? Czy w ogóle coś zwraca?


--------------------
"Tylko dwie rzeczy są nieskończone: wszechświat oraz ludzka głupota,
choć nie jestem pewien co do tej pierwszej." Albert Einstein

Wirtualny Rynek Predykcyjny
Go to the top of the page
+Quote Post
HellRider
post 19.10.2008, 08:17:17
Post #3





Grupa: Zarejestrowani
Postów: 57
Pomógł: 7
Dołączył: 12.09.2008
Skąd: localhost

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


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?
Go to the top of the page
+Quote Post
hostcom
post 19.10.2008, 08:22:12
Post #4





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 1.03.2008

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


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. ?>


Ten post edytował hostcom 19.10.2008, 08:23:09
Go to the top of the page
+Quote Post
HellRider
post 19.10.2008, 08:26:06
Post #5





Grupa: Zarejestrowani
Postów: 57
Pomógł: 7
Dołączył: 12.09.2008
Skąd: localhost

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


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.
Go to the top of the page
+Quote Post
hostcom
post 19.10.2008, 09:44:49
Post #6





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 1.03.2008

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


wiec gdzie leży błąd.. jeżeli podczas edycji rekordów wysyłane są dane metodą post
Go to the top of the page
+Quote Post
Ociu
post 19.10.2008, 10:03:40
Post #7





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




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.
Go to the top of the page
+Quote Post
zegarek84
post 19.10.2008, 10:08:30
Post #8





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

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


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

Ten post edytował zegarek84 19.10.2008, 10:13:01


--------------------
Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.

Go to the top of the page
+Quote Post
HellRider
post 19.10.2008, 10:09:28
Post #9





Grupa: Zarejestrowani
Postów: 57
Pomógł: 7
Dołączył: 12.09.2008
Skąd: localhost

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


Edit: Faktycznie, masz tam pola z atrybutem disabled.

Ten post edytował HellRider 19.10.2008, 10:12:46
Go to the top of the page
+Quote Post
hostcom
post 19.10.2008, 10:59:18
Post #10





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 1.03.2008

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


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


Ten post edytował hostcom 19.10.2008, 11:00:02
Go to the top of the page
+Quote Post
HellRider
post 19.10.2008, 11:09:59
Post #11





Grupa: Zarejestrowani
Postów: 57
Pomógł: 7
Dołączył: 12.09.2008
Skąd: localhost

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


Wykonaj dwa zapytania UPDATE smile.gif
Go to the top of the page
+Quote Post
hostcom
post 19.10.2008, 11:58:35
Post #12





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 1.03.2008

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


no tak ale to ma byc przesłane z formularza metodą POST jednocześnie
Go to the top of the page
+Quote Post
HellRider
post 19.10.2008, 13:19:35
Post #13





Grupa: Zarejestrowani
Postów: 57
Pomógł: 7
Dołączył: 12.09.2008
Skąd: localhost

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


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ę.
Go to the top of the page
+Quote Post
hostcom
post 19.10.2008, 14:17:24
Post #14





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 1.03.2008

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


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)

Ten post edytował hostcom 19.10.2008, 14:19:21
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 Wersja Lo-Fi Aktualny czas: 12.07.2025 - 07:37