« 1 2 »
Autor Zpráva
deliQus
Profil
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
SQL tabulka s matricí, tedy například "tabulka int, radek int, sloupec int, hodnota text".
deliQus
Profil
Škoda, že nevím co je to matrice.
Jan Tvrdík
Profil
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
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
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
No, když bude třeba tabulka 5x5, tak to je 25 proměnných, takže tolik musím ukládat ne ?
deliQus
Profil
Nebo jak ? :-)
ninja
Profil
deliQus: ano, při tabulce 5x5 budete mít v DB 25 řádků.
deliQus
Profil
No, ale ty řádky musím mít předem vytvořené ne ?
Kcko
Profil
INSERT INTO
umis?
deliQus
Profil
Jojo :-) ale v db musím mít předem dané ty sloupce ne ?
deliQus
Profil
Nebo ne ? :-)
ninja
Profil
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
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 ( ??? ));
" Jak ty proměnné bunka[1][1] až bunka[5][5] uložím ? Prosím jestli by mi to mohl někdo podrobněji přiblížit, já vážně nevím. :-)
AM_
Profil
$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
Děkuji, zkusím :-)
deliQus
Profil
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]}'  )");
nemůže být v tom foru ne ? To ten příkaz vždy proběhne, ukončí, a takhle se to bude opakovat mockrát ( podle x a y ) nebo ne ?
deliQus
Profil
Nepočítám tu chybu v tom foru
for ($x = 0; for $x < max_x; $x++){
deliQus
Profil
Poradí někdo prosím ?
Mastodont
Profil
Co je max_x, max_y? Nemá to být spíš $max_x, $max_y?
deliQus
Profil
Jojo, už to jde, jen mi to mi to při tabulce 2x2 uloží 4 tabulky, jak jsem předpokládal.
deliQus
Profil
A neukládá se mi $pole[$y][$x] :-( Toto bude asi špatně :
$_POST["pole[$y][$x]"]
Alphard
Profil
[#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
Poradíte mi jak mám uložit to pole ? Něco jako
$_POST["pole[$y][$x]"]
, ale to je špatně, nevím jak na to :-)
deliQus
Profil
Prosím, potřeboval bych to vážně :-)
deliQus
Profil
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
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
Nikdo neví ? :-(
tiso
Profil
$_POST['pole'][$y][$x]
...v tej query:
mysql_query ("... '$_POST[pole][$y][$x]' ...");
« 1 2 »

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: