Autor | Zpráva | ||
---|---|---|---|
Marinero Profil * |
Zdravim.
Mam dotaz: Jde nejak odeslat postem z formulare misto normalni promenne pole? Tvorim editaci statistik hracu (statistiky ulozene v MySQL). Statistiky mam vypsane phpkem na stranku v html tabulce. Cela tabulka je jeden velkej formular a ten chci cely ulozit SQL prikazem najednou. Problem neni v SQL prikazu (insert dokazu nejak napsat), ale mam problem s tim, ze tabulka se statistikami ma promenny pocet radku (podle toho, kolik hracu zde je zaevidovano) a tak bych potreboval postem z formulare poslat pole namisto jedne promenne. V soucasne dobe totiz dokazu ulozit, tedy spis poslat postem jen jeden radek tabulky (tedy nekolik promennych ktere predstavuji statistiky jednoho hrace). Potreboval bych ale poslat postem misto jednoho radku nekolik (tedy asi poslat postem pole s celym sloupcem z tabulky). Poradi nekdo jak na to? pro predstavu kod tabulky s formularem: $stranka .= "<table><form action=\"$PHP_SELF\" METHOD=\"POST\">"; $stranka .= "<tr><td>hráč<td>zápasy</td><td>góly</td><td>asistence</td><td>body</td><td>trestné minuty</td></tr>"; while( $data = mysql_fetch_row( $dbdata ) ) { $jmeno = $data[0]; $zapasy = $data[1]; $goly = $data[2]; $asistence = $data[3]; $body = $data[4]; $tm = $data[5]; $id = $data[6]; $stranka .= "<tr> <td>$jmeno<INPUT TYPE=\"HIDDEN\" VALUE=\"$id\" NAME=\"id\"></td> <td><INPUT TYPE=\"TEXT\" VALUE=\"$zapasy\" NAME=\"zapasy\"></td> <td><INPUT TYPE=\"TEXT\" VALUE=\"$goly\" NAME=\"goly\"></td> <td><INPUT TYPE=\"TEXT\" VALUE=\"$asistence\" NAME=\"asistence\"></td> <td><INPUT TYPE=\"TEXT\" VALUE=\"$body\" NAME=\"body\"></td> <td><INPUT TYPE=\"TEXT\" VALUE=\"$tm\" NAME=\"tm\"></td> </tr>"; } timhle pak nactu z postu do promennych hodnoty z postu: $id = isset($_POST["id"]) ? $_POST["id"] : ""; $zapasy = isset($_POST["zapasy"]) ? $_POST["zapasy"] : ""; $goly = isset($_POST["goly"]) ? $_POST["goly"] : ""; $asistence = isset($_POST["asistence"]) ? $_POST["asistence"] : ""; $body = isset($_POST["body"]) ? $_POST["body"] : ""; $tm = isset($_POST["tm"]) ? $_POST["tm"] : ""; a nasledne ulozim do database: $sql = "UPDATE statistiky_hraci SET zapasy='$zapasy',goly='$goly',asistence='$asistence',body='$body',tm='$tm' WHERE id='$id'"; $vysledek = mysql_db_query( $database, $sql); Snad je muj problem popsany pochopitelne... Moderátor Majkl578: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na
![]() |
||
AM_ Profil |
#2 · Zasláno: 26. 1. 2010, 19:42:19 · Upravil/a: AM_
for ($i=0;$i<10;$i++){ echo " <tr> <td>$jmeno<INPUT TYPE=\"HIDDEN\" VALUE=\"$id\" NAME=\"id[$i]\"></td> <td><INPUT TYPE=\"TEXT\" VALUE=\"$zapasy\" NAME=\"zapasy[$i]\"></td> <td><INPUT TYPE=\"TEXT\" VALUE=\"$goly\" NAME=\"goly[$i]\"></td> <td><INPUT TYPE=\"TEXT\" VALUE=\"$asistence\" NAME=\"asistence[$i]\"></td> <td><INPUT TYPE=\"TEXT\" VALUE=\"$body\" NAME=\"body[$i]\"></td> <td><INPUT TYPE=\"TEXT\" VALUE=\"$tm\" NAME=\"tm[$i]\"></td> </tr> "; } přijde to jako: $_POST [id] [0]: "tym 1" [1]: "tym 2" ... |
||
Perry Profil |
#3 · Zasláno: 26. 1. 2010, 19:45:55 · Upravil/a: Perry
A co to nacist do inputu a do name davat napr. name="id1", name="id2" .. apod... kdy to cislo urcuje jakoby radku
Edit: AM_: Aha.. to jsem si neuvědomil že jde i takhle, to je samozřejmě elegantní |
||
AM_ Profil |
#4 · Zasláno: 26. 1. 2010, 19:52:55
Perry:
ano, a hlavně se s tím i lépe pracuje, je docela otrava jak pro programátora, tak pro PHP interpret, foreach()em procházet celý POST a hledat jestli tam náhodou něco neodpovídá id[0-9]+. |
||
Časová prodleva: 13 let
|
0