Vložení více údajů do databáze – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Vložení více údajů do databáze – PHP – Fórum – Programujte.comVložení více údajů do databáze – PHP – Fórum – Programujte.com

 

Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
25. 10. 2010   #1
-
0
-

Potřebuji poradit, mám tabulku s několika řádky ve které jsou textboxy a po kliknutí na tlačítko potřebuju aby se mi vše uložilo do databáze. Zde mám formulář s textboxy

if ($_POST["vyber"]){

$pomocna=$_POST["tym"];

$result = mysql_query("select * from tymy where id='$pomocna'");

$z=mysql_fetch_array ($result);
echo"<form action='?page=stat' method='post'>";
echo"<table>
<tr>
<td colspan='10'>Uprava statistiky pro tým: <strong>" . $z["jmeno"] . "</strong></td>
</tr>";
echo"<tr><td>Jméno</td>
<td>G</td>
<td>A</td>
<td>VG</td>
<td>Odehrané</td>
<td>OG</td>
<td>Odchytané</td>
<td>CK</td>
<td>ZK</td>
</tr>";
$result = mysql_query("select * from hraci where tym='$pomocna'");
while($z = MySQL_Fetch_Array($result))
{
$id=$z["id"];
echo"<tr>
<input type='hidden' name='pomocna' value=" .$pomocna." />
<td>" . $z["jmeno"] . "</td>
<td><input type='text' name='g[" . $id . "]' size='4' /></td>
<td><input type='text' name='a[" . $id . "]' size='4' /></td>
<td><input type='text' name='vg[" . $id . "]' size='4' /></td>
<td><input type='text' name='odehrane[" . $id . "]' size='4' /></td>
<td><input type='text' name='og[" . $id . "]' size='4' /></td>
<td><input type='text' name='odchytane[" . $id . "]' size='4' /></td>
<td><input type='text' name='ck[" . $id . "]' size='4' /></td>
<td><input type='text' name='zk[" . $id . "]' size='4' /></td>
</tr>";
}
echo"<tr><td colspan='10'><input type='submit' name='uloz' value='Ulož statistiky' /></td></tr>";
echo"</table></form>";
}


A po kliknutí je zpracování
if ($_POST["uloz"]){


$pomocna=$_POST["pomocna"];

$result = mysql_query("select * from hraci where tym='$pomocna'");
while($z = MySQL_Fetch_Array($result))
{
$cislo=intval($z["id"]);
$g=intval($g[$cislo])+intval($z["g"]);
$a=intval($a[$cislo])+intval($z["a"]);
$vg=intval($vg[$cislo])+intval($z["vg"]);
$odehrane=intval($odehrane[$cislo])+intval($z["odehrane"]);
$og=intval($og[$cislo])+intval($z["og"]);
$odchytane=intval($odchytane[$cislo])+intval($z["odchytane"]);
$ck=intval($ck[$cislo])+intval($z["ck"]);
$zk=intval($zk[$cislo])+intval($z["zk"]);

echo" goly" . $g . " ";

error_reporting(E_ALL);
mysql_query("UPDATE hraci SET g='$g',
g='$a',
g='$vg',
g='$odehrane',
g='$og',
g='$odchytane',
g='$ck',
g='$zk'
WHERE id = '$cislo' ");

}
}
jenže problem je v tom, že se mi vždycky aktualizuje pouze první sloupec v prvním řádku, nic víc :(

Nahlásit jako SPAM
IP: 82.99.180.–
Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
25. 10. 2010   #2
-
0
-

Ten update má být takto

mysql_query("UPDATE hraci SET g='$g',

a='$a',
vg='$vg',
odehrane='$odehrane',
og='$og',
odchytane='$odchytane',
ck='$ck',
zk='$zk'
WHERE id = '$cislo' ");
Takže funguje aktualizace pouze jednoho řádku, potřebuju poradit aby to šlo pro všechny najednou

Nahlásit jako SPAM
IP: 82.99.180.–
KIIV
~ Moderátor
+43
God of flame
25. 10. 2010   #3
-
0
-

minimalne proc to aktualizuje jeden radek je jasny - id je vzdy jen jedno

Nahlásit jako SPAM
IP: 94.142.234.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
25. 10. 2010   #4
-
0
-

To KIIV : to je..ale mělo by to tim while proběhnout všechny hodnoty a postupně to podle id měnit nebo ne?

Nahlásit jako SPAM
IP: 82.99.180.–
KIIV
~ Moderátor
+43
God of flame
25. 10. 2010   #5
-
0
-

v tom pripade neni od veci testovat jestli nevraci mysql nejakou chybu
pripadne i vypisovat jaky se to snazi delat dotazy..

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
dawe
~ Anonymní uživatel
19 příspěvků
25. 10. 2010   #6
-
0
-

To KIIV : no mám tam error_reporting(E_ALL); ale to nevyúisuje vubec nic..je ještě nějaký zpusob na vypsání chyb a jak to dělá dotazy, nebo jak to myslíš, nejsem zas tak znalý a potřebuju v tom poradit :(

Nahlásit jako SPAM
IP: 195.113.118.–
z_moravec
~ Redaktor
+3
Posthunter
25. 10. 2010   #7
-
0
-

Použij mysql_error() po odeslání dotazu do databáze a uvidíš, co ti to vypíše.

Nahlásit jako SPAM
IP: 83.240.110.–
Spát lze čtyři hodiny denně, spát déle je nemístný přepych.
Thomas Alva Edison
KIIV
~ Moderátor
+43
God of flame
25. 10. 2010   #8
-
0
-

a vypis dotazu je myslen tak, ze si ten text co posilas na databazi jeste nejprve vypises pomoci echa

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
dawe
~ Anonymní uživatel
19 příspěvků
25. 10. 2010   #9
-
0
-

Tak to nehodí žádnou chybu..ted jsem zkusil vypsat všechny možné výsledky a zřejmě to nějak nekomunikuje s těmi hodnotami z textboxu které jsou v poli..jsou to hodnoty vypsané v tabulce (hlavičku jsem zde neuváděl)

 echo"<form action='?page=stat' method='post'>";

$result = mysql_query("select * from hraci where tym='$pomocna'");
while($z = MySQL_Fetch_Array($result))
{
$id=$z["id"];
echo"<tr>
<input type='hidden' name='pomocna' value=" .$pomocna." />
<td>" . $z["jmeno"] . "</td>
<td><input type='text' name='g[" . $id . "]' size='4' /></td>
<td><input type='text' name='a[" . $id . "]' size='4' /></td>
<td><input type='text' name='vg[" . $id . "]' size='4' /></td>
<td><input type='text' name='odehrane[" . $id . "]' size='4' /></td>
<td><input type='text' name='og[" . $id . "]' size='4' /></td>
<td><input type='text' name='odchytane[" . $id . "]' size='4' /></td>
<td><input type='text' name='ck[" . $id . "]' size='4' /></td>
<td><input type='text' name='zk[" . $id . "]' size='4' /></td>
</tr>";
}
echo"<tr><td colspan='10'><input type='submit' name='uloz' value='Ulož statistiky' /></td></tr>";
echo"</table></form>";
a zde je zpracování, výpis hodnot a uložení do databáze..ale vždycky to vypíše jen první řádek takže je asi něco špatně u těch zpracování polí..jinak cyklus proběhne tolikrát kolikrát má
if ($_POST["uloz"]){


$pomocna=$_POST["pomocna"];

$result = mysql_query("select * from hraci where tym='$pomocna'");
while($z = MySQL_Fetch_Array($result))
{
$cislo=intval($z["id"]);
$g=intval($g[$cislo])+intval($z["g"]);
$a=intval($a[$cislo])+intval($z["a"]);
$vg=intval($vg[$cislo])+intval($z["vg"]);
$odehrane=intval($odehrane[$cislo])+intval($z["odehrane"]);
$og=intval($og[$cislo])+intval($z["og"]);
$odchytane=intval($odchytane[$cislo])+intval($z["odchytane"]);
$ck=intval($ck[$cislo])+intval($z["ck"]);
$zk=intval($zk[$cislo])+intval($z["zk"]);


echo"<table>
<tr><td>Kdo: " . $cislo . " </td>
<td>Goly: " . $g . " </td>
<td>Asis: " . $a . " </td>
<td>vit gol: " . $vg . " </td>
<td>odehrane: " . $odehrane . " </td>
<td>OG: " . $og . " </td>
<td>Odchytane: " . $odchytane . " </td>
<td>CK: " . $ck . " </td>
<td>ZK: " . $zk . " </td>
</tr>
</table>";

error_reporting(E_ALL);
mysql_query("UPDATE hraci SET g='$g',
a='$a',
vg='$vg',
odehrane='$odehrane',
og='$og',
odchytane='$odchytane',
ck='$ck',
zk='$zk'
WHERE id = '$cislo' ");
mysql_error();

}
}

Nahlásit jako SPAM
IP: 82.99.180.–
anonymní
~ Anonymní uživatel
12 příspěvků
25. 10. 2010   #10
-
0
-

Funkci mysql_error je třeba vypsat, co já vím. Místo mysql_error(); tedy použij echo mysql_error();

Nahlásit jako SPAM
IP: 88.146.173.–
insider0
Věrný člen
25. 10. 2010   #11
-
0
-

vyzkousej jeste

echo '<pre>';

var_dump($_POST);
echo '</pre>';

nekde v te podmince - vypise ti to vsechno, co poslal formular - takze si muzes zkontrolovat, jestli se odesila to, co predpokladas(treba se nemeni to $z['id'], ktere pouzivas a odesle se jen jeden hrac). Pak si muzes vzdycky echem v cyklu vypsat aktualni id.

Nahlásit jako SPAM
IP: 147.32.96.–
I don't want to see you go,[br] The sky is over[br] Even though we can't afford[br] The sky is over,[br] The sky is over us.[br][br] CIVILIZATION IS OVER
dawe
~ Anonymní uživatel
19 příspěvků
26. 10. 2010   #12
-
0
-

Díky všem za rychlé odpovědi..už sem to vyřešil..neukládal sem to jako pole akle klasickou proměnou a k ní přilepil id..jinak je to uplně stejný..scie nevím proč to přes pole nešlo ale aspon že to běhá..ještě jednou díky za ochotu pomoci

Nahlásit jako SPAM
IP: 194.228.25.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 49 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý