Problem s multiple select formularom

15 příspěvků

Archiv diskusního fóra

Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.

  1. Takze moj problem: mam n generovanych riadkov z tabulky v kazdom riadku je jeden <select name=select><option value=1>1<option value=2>2<option value=3>3</select> za celou tabulkou riadkov je submit. Chcem docielit aby sa mi vsetky povyberane hodnoty pozapisovali do databaze.
  2. No to podle mého problémů víc použij: jakpsatweb.cz, manuál pHP, manuál MySQL, program pro sledování hlaviček odesílaných požadavků definuj jednoznačně co budeš ve formuláři sledovat nastuduj v manuálu MySQL jak se dělá tabulka nadefinuj si tabulku s datovou větou, která bude obsahovat všechny sledované položky nastuduj jak se dělá formulář pro odeslání použij POST prohlížej si odesílaná data v hlavičce podle spokojenosti nebo nespokojenosti s odesílaným uprav formulář v přímajícím skriptu rozeber pomocí $_POST["name"] doručený balík dat a přiřaď hodnoty je položkám věty připoj se k databázi zapiš větu a co, že je ten problém?
  3. Toto je moj script, mohol by si mi ho prosim upravit aby to slo? <?php if (isset($_POST['submit'])) { $dkp=$_POST['dkp']; $ID=$_POST['ID']; echo "DKP $dkp <br>"; echo "ID $ID <br>"; $setdkp="update characters set dkp=dkp-'$dkp' where ID='$ID'"; mysql_query($setdkp) or die("Error"); echo "DKP uspesne zvysene o $dkpplus"; } ?> <br>Si prihlásený!<br> <br> <? $chars="SELECT * from characters order by ID ASC"; $chars2=mysql_query($chars) or die("Could not query players"); echo "<form action=show.php method=post>"; echo "<table width=100% border=1>"; echo "<tr><td>Jmeno</td><td>Rasa</td><td>Trida</td><td>Level</td><td>Talenty</td><td>DKP</td><td>DKP -</td><td>DKP +</td></tr>"; while($chars3=mysql_fetch_array($chars2)) { echo "<tr> <td>$chars3[name]</td> <td>$chars3[race]</td> <td>$chars3[class]</td> <td>$chars3[level]</td> <td>$chars3[spec]</td> <td>$chars3[dkp]</td> <td> <select name=dkp size=1> <option value=\"0\">0</option> <option value=\"20\">-20</option> <option value=\"40\">-40</option> <option value=\"60\">-60</option> </select> </td></tr>"; } echo "</table>"; echo "<input type=submit name=submit value=\">>\">"; echo "</form>"; ?>
  4. Zdravím, ty selecty musíš odesílat jako pole, čili atribut name musí být dkp[]
  5. Zdravim, pouzil som to takto: <select name=dkp[$chars3[ID]] size=1> lenze ide o to ze neviem urobit ten script ktory to spracuje, myslim tym vsetko co je v podmienke if (isset($_POST['submit'])) { }
  6. Uz som na to prisiel dakujem za pomoc.
  7. Tak som sa mylil som v koncoch prosim pomozte. Toto som napisal ale ma to par chyb: 1. while sa mi vykonava do nekonecna 2. v pripade ze z databaze vymazem jeden udaj script sa stava nefunkcnym [pre]<?php if (isset($_POST['submit'])) { // POCET POSTAV V DATABAZE $chars="SELECT * from characters order by ID ASC"; $chars2=mysql_query($chars) or die("Could not query players"); $sum = mysql_num_rows($chars2); echo $sum; // END OF POCET POSTAV V DATABAZE // WHILE $i=1; while ($i<=$sum) { echo "<br>DKP PRE ID $i = ".$dkp[$i]."<br>"; $setDKP="update characters set dkp=dkp+'$dkp[$i]' where ID='$i'"; mysql_query($setDKP) or die("Chyba"); } // END OF WHILE } ?>[/pre]
  8. while se ti vykonava donekonecna, protoze v nem nikde nemenis $i ani $sum
  9. a ten druhy problem? alebo nejaky odkaz na tutorial, cokolvek
  10. jen graficka drobnost $chars="SELECT * from characters order by ID ASC"; $chars="SELECT * FROM `characters` ORDER BY `id`ASC"; - vsechny SQL prikazy/fce velkym, promenne malym, promenne jeste apostrofovat ; lepe se v tom pak orientuje
  11. dalsi drobnost, kdyz je neco query, tak promenna by mohla byt nazvana $query ($query_ahoj). Kdyz je neco result, tak promenna k tomu odpovidajici je $result. Zatim tam mas 1 SQL dotaz a par promennych, ale pri slozitejsich vecech se v tom docela dobre orientuje i pomoci hledani "$query" "2. v pripade ze z databaze vymazem jeden udaj script sa stava nefunkcnym" Jestli tohle povazujes za druhy problem, pak by bylo dobre to popsat krok za krokem, nejlepe kazde na novy radek s minus, aby bylo jasne, ze se jedna o novy krok. Predevsim jake SQL / PHP hlasky + chybove hlasky to vypise. Mas tam ruzna echa, ruzne die, ale my z toho nevime, co ti to dela? Co treba odkaz na stranku? xx.php + xx.php.txt (totez s jinou priponou, cely zdrojovy kod) "Script sa stava nefunkcny" - to je naprosto mnohoznacny vyznam oznacujici pres 1.000.000.000 ruznych duvodu od zapomenuteho pismenka po chybu v databazi, apache, php, pc, v cemkoliv. $sum = mysql_num_rows($chars2); SELECT COUNT(*) FROM `tabulka` WHERE ... zadny order neni treba, zajima te pocet radku jakkoliv zamichany. Pak uz staci: $r = mysql_query($r); echo $r[0];
  12. Vysvetlim, Ten script spocita pocet riadkov v tabulke a dosadi vysledok do cyklu, takze ak su v tabulke ID-cka napr 1,2,3 script spocita a vyjde mu 3, Cyklus sa vykona 3x pre ID 1,2,3 ale ak vymazem ID 2 (ID budu 1,3) script spocita ze su tam 2 ale bude sa to snazit zapisat postupne do ID 1,2 a nie do 1,3
  13. Nechci zasahovat do rozreseneho tematu, ale nemel bys jednodussi pouzit while primo s mysql_fetch_object/array ? //uz tam mas stejne "SELECT * FROM..." ... while ($row=mysql_fetch_object($query)) { //to co vykonas pro vsechny ... //id toho, pro ktery zrovna while bezi je $row->id //protoze v dotazu se ptas na vsechno (*), takze i id ... }
  14. Vyborne, toto by uz malo ist, posledna otazka: Ako mam spravne zapisat $dkp[$row->ID] ? Stale mi to vyhadzuje parse errory. Uvediem aj script: while ($row=mysql_fetch_object($chars2)) { echo $row->ID; $setDKP="update characters set dkp=dkp+$dkp['$row->ID'] where ID='$row->ID'"; mysql_query($setDKP) or die("Chyba"); }
  15. Pouzivani asociativnich poli mezi dvojtymi uvozovkami mi pripomina sebevrazdu ... :) $setDKP='UPDATE `characters` SET `dkp`=`dkp`+"'.$dkp[$row->id].'" WHERE `id`="$row->id"'; //sice mi neni jasne jake hodnoty ma pole $dkp ale to je vedlejsi :)

← Zpět na všechna témata