Autor | Zpráva | ||
---|---|---|---|
deliQus Profil |
#1 · Zasláno: 1. 1. 2010, 18:09:10
Zdravím, chtěl bych mít skript, který by dokázal : Zadám počet sloupců a počet řádků tabulky -> tabulka se vykreslí, já do ní doplním údaje a uložím do databáze ( tak, aby poté šla také editovat )
Mám skript, který mi vykreslí tabulku, ale stále si nevím rady s tím, jak ji nejefektivněji uložit do databáze, ukládat obsah každé buňky mi přijde dost nemotorné. Můžete mi někdo poradit ? :-) for ($i=0; $i<$pocet_radku; $i++) { echo "<tr>"; for ($j=0; $j<$pocet_sloupcu; $j++) {echo "<td><input type=text></td>";} echo "</tr>"; } |
||
ninja Profil |
#2 · Zasláno: 1. 1. 2010, 18:50:37
SQL tabulka s matricí, tedy například "tabulka int, radek int, sloupec int, hodnota text".
|
||
deliQus Profil |
#3 · Zasláno: 1. 1. 2010, 23:06:55
Škoda, že nevím co je to matrice.
|
||
Jan Tvrdík Profil |
#4 · Zasláno: 1. 1. 2010, 23:10:07
Generuj si názvy těch inputů tak, aby ti v PHP došlo pole.
for ($i=0; $i<$pocet_radku; $i++) { echo "<tr>"; for ($j=0; $j<$pocet_sloupcu; $j++) {echo "<td><input type=\"text\" name\"tabulka[$i][$j]\"></td>";} echo "</tr>"; } |
||
deliQus Profil |
#5 · Zasláno: 1. 1. 2010, 23:21:44
Dobrý nápad :-) a potom uložím do db obsah pole tabulka[$i][$j], ale musím předem vědět max. počet $i a $j nebo ne ? tedy počet řádků a sloupců ?
|
||
AM_ Profil |
#6 · Zasláno: 1. 1. 2010, 23:27:11
proč předem? spočítáš si je pomocí count($tabulka) popř. count($tabulka[minimalni_index])
do DB to ukládej jak psal ninja, tedy 4 sloupce: id_tabulky x_souradnice y_souradnice hodnota |
||
deliQus Profil |
#7 · Zasláno: 1. 1. 2010, 23:29:57
No, když bude třeba tabulka 5x5, tak to je 25 proměnných, takže tolik musím ukládat ne ?
|
||
deliQus Profil |
#8 · Zasláno: 2. 1. 2010, 12:42:05
Nebo jak ? :-)
|
||
ninja Profil |
#9 · Zasláno: 2. 1. 2010, 14:50:05
deliQus: ano, při tabulce 5x5 budete mít v DB 25 řádků.
|
||
deliQus Profil |
#10 · Zasláno: 2. 1. 2010, 15:35:22
No, ale ty řádky musím mít předem vytvořené ne ?
|
||
Kcko Profil |
#11 · Zasláno: 2. 1. 2010, 15:41:37
INSERT INTO |
||
deliQus Profil |
#12 · Zasláno: 2. 1. 2010, 15:47:55
Jojo :-) ale v db musím mít předem dané ty sloupce ne ?
|
||
deliQus Profil |
#13 · Zasláno: 4. 1. 2010, 17:02:47
Nebo ne ? :-)
|
||
ninja Profil |
#14 · Zasláno: 4. 1. 2010, 17:56:15
Ano, musíte tam mít vytvořené sloupce: tabulka, radka, sloupec, hodnota.
Zkuste si znovu přečíst celé vlákno, myslím že jste navrhovaný systém nepochopil. |
||
deliQus Profil |
#15 · Zasláno: 5. 1. 2010, 15:25:29
Já to pořád nějak nechápu, když budu mít sloupce: tabulka, radek, sloupec, hodnota. Tak pomocí výše uvedeného skriptu vykreslím tabulku a každá buňka bude jeden input, takže tabulka 5x5 bude mít 25 inputů a každá jiný atribut "name" (třeba bunka[1][1] až bunka[5][5]). Vyplním je a potvrdím formulář -> provede se něco jako : "
mysql_query ("insert into tabulky ( tabulka, radek, sloupec, hodnota ) values ( ??? )); |
||
AM_ Profil |
#16 · Zasláno: 5. 1. 2010, 16:10:12
$id_tabulky = 1; for ($y = 0; $y < max_y; $y++){ for ($x = 0; for $x < max_x; $x++){ mysql_query ("insert into tabulky ( tabulka, radek, sloupec, hodnota ) values ($id_tabulky, $y, $x, '{$pole[$y][$x]}' )"); } } |
||
deliQus Profil |
#17 · Zasláno: 5. 1. 2010, 17:28:19
Děkuji, zkusím :-)
|
||
Časová prodleva: 3 dny
|
|||
deliQus Profil |
#18 · Zasláno: 8. 1. 2010, 19:25:38
Tak mi to ukládání nějak nefunguje, mám pocit, že :
mysql_query ("insert into tabulky ( tabulka, radek, sloupec, hodnota ) values ($id_tabulky, $y, $x, '{$pole[$y][$x]}' )"); |
||
deliQus Profil |
#19 · Zasláno: 8. 1. 2010, 20:16:26
Nepočítám tu chybu v tom foru
for ($x = 0; for $x < max_x; $x++){ |
||
deliQus Profil |
#20 · Zasláno: 8. 1. 2010, 21:03:26
Poradí někdo prosím ?
|
||
Mastodont Profil |
#21 · Zasláno: 8. 1. 2010, 21:44:13
Co je max_x, max_y? Nemá to být spíš $max_x, $max_y?
|
||
deliQus Profil |
#22 · Zasláno: 8. 1. 2010, 21:53:31
Jojo, už to jde, jen mi to mi to při tabulce 2x2 uloží 4 tabulky, jak jsem předpokládal.
|
||
deliQus Profil |
#23 · Zasláno: 8. 1. 2010, 21:59:27 · Upravil/a: deliQus
A neukládá se mi $pole[$y][$x] :-( Toto bude asi špatně :
$_POST["pole[$y][$x]"] |
||
Alphard Profil |
#24 · Zasláno: 8. 1. 2010, 22:28:08
[#23] deliQus
Já bych určitě dal každému řádku databázové tabulky id, které by pak šlo použít i pro identifikaci při editaci. Vzhledem k tomu, že stejně do databáze ukládáte i prázdné řádky ([#16]), by bylo asi jednodušší po zadání počtu řádků a sloupců hned vygenerovat prázdnou tabulku a přesměrovat na editační formulář. Pak byste ani nemusel samostatně řešit vložení a úpravu. |
||
deliQus Profil |
#25 · Zasláno: 8. 1. 2010, 22:42:58 · Upravil/a: deliQus
Poradíte mi jak mám uložit to pole ? Něco jako
$_POST["pole[$y][$x]"] |
||
deliQus Profil |
#26 · Zasláno: 9. 1. 2010, 23:06:01
Prosím, potřeboval bych to vážně :-)
|
||
deliQus Profil |
#27 · Zasláno: 10. 1. 2010, 15:34:00
Jasný, to taky potřebuji dát každému řádku id tabulky, ale to taky nevím. Hlavně potřebuju udělat odesílání polí formulářem něco jako :
$_POST["pole[$y][$x]"] |
||
deliQus Profil |
#28 · Zasláno: 10. 1. 2010, 16:06:10 · Upravil/a: deliQus
Místo:
mysql_query ("insert into tabulky ( tabulka, radek, sloupec, hodnota ) values ($id_tabulky, $y, $x, '{$pole[$y][$x]}' )"); Něco jako: mysql_query ("insert into tabulky ( tabulka, radek, sloupec, hodnota ) values ($id_tabulky, $y, $x, '$_POST[{$pole[$y][$x]}]' )"); |
||
deliQus Profil |
#29 · Zasláno: 10. 1. 2010, 17:52:10
Nikdo neví ? :-(
|
||
tiso Profil |
#30 · Zasláno: 10. 1. 2010, 18:23:29 · Upravil/a: tiso
$_POST['pole'][$y][$x]
...v tej query: mysql_query ("... '$_POST[pole][$y][$x]' ..."); |
||
Téma pokračuje na další straně.
|
0