Autor | Zpráva | ||
---|---|---|---|
gogy27 Profil * |
#1 · Zasláno: 3. 2. 2009, 16:46:46
Zdravim ,
Mam jeden problem. Mam formular pre vlozenie 24 mien a 24 priezvisk aby som to nemusel vypisovat 24 krat urobil som to pomocou for takto: <form method="post" action="mena2.php"> <?php for ($i=1; $i<=24; $i++) { ?> <table > <tr><?php echo "$i . Hrac"; ?></tr> <tr><br /> <b>Krstne meno:</b></tr><br /> <tr><input type="text" size="18" maxlength="18" name="meno[]" class="tmave" <?php if(isset($_POST['odoslat'])) {echo "value=\"$meno\"";} ?>> maximalne 18 znakov, minimalne 4 znaky, bez diakritiky, medzier a specialnych znakov </tr><br /> <tr> <b>Priezvisko:</b></tr><br /> <tr><input type="text" size="18" maxlength="18" name="priezvisko[]" class="tmave" <?php if(isset($_POST['odoslat'])) {echo "value=\"$priezvisko\"";} ?>> maximalne 18 znakov, minimalne 4 znaky, bez diakritiky, medzier a specialnych znakov </tr><br /> </table> <?php } ?> a newiem ako to ulozit do datbazy skusal uz som foreach a podobne ale stale mi to ulozi 0 obsah ulozi to 24 krat ale stale s nulovymi hodnotami. Poradte prosim dakujem :) |
||
Taps Profil |
#2 · Zasláno: 3. 2. 2009, 17:22:52
gogy27
napiš sem příkaz sql kterým ukládáš data do databáze |
||
gogy27 Profil * |
#3 · Zasláno: 3. 2. 2009, 19:41:28
<?php include_once ('config.php'); if (isset($_POST['odoslat'])) { //osetrime vstupy, dal som len zaklady, kludne osetrite ako chceme. $meno = htmlspecialchars(addslashes($_POST['meno'])); $priezvisko = htmlspecialchars(addslashes($_POST['priezvisko'])); //nastavime chyby premennu na nulovu $chyby = ""; // upravime meno, preizvisko o nepovolene znaky $uprMeno = preg_replace("~[^-a-zA-Z0-9_.]+~", "", $meno); // overime spravnost mena if (!$meno){ $chyby.="Nevyplnili ste krstne meno<br>"; } elseif (strlen($meno) < 4) { $chyby.="Meno ma menej ako 4 znaky<br>"; } elseif (strlen($meno) > 18) { $chyby.="Meno ma viac ako 18 znakov<br>"; } elseif ($nick != $uprMeno) { $chyby.="Meno ma nepovolené znaky. Povolene su: _,.<br>";} //overime spravnost priezviska if (!$priezvisko){ $chyby.="Nevyplnili ste nazov priezvisko<br>"; } elseif (strlen($priezvisko) < 4) { $chyby.="Priezvisko ma menej ako 4 znaky<br>"; } elseif (strlen($priezvisko) > 32) { $chyby.="Priezvisko ma viac ako 32 znakov<br>"; } elseif ($priezvisko != $uprMeno) { $chyby.="Priezvisko ma nepovolené znaky. Povolene su: _,.<br>";} //overenie jedinecnosti priezvsika, emailu, meno stadionu a mena teamu $query2 = " SELECT * FROM hraci WHERE meno='$meno' and priezvisko='$priezvisko' "; $result2 = mysql_query($query2); $pocetRiadkov = mysql_num_rows($result2); if($pocetRiadkov == 1) { $chyby.="Toto meno uľ je pouľité. Prosim zmente meno alebo priezvisko hraca. <br>"; } else { echo mysql_error(); $chyby.= "Vyskytla sa chyba s databazou. Skuste znova, neskor, alebo kontaktujte administratora<br>"; } foreach ($_POST["meno"] as $prvek_meno) foreach ($_POST["priezvisko"] as $prvek_priezvisko) { $vlozit = "INSERT INTO hraci ( meno, priezvisko) VALUES ('$prvek_meno', '$prvek_priezvisko')" } $vysledok = mysql_query( $vlozit ); if ($vysledok) { $idUzivatela = mysql_insert_id(); } else { $chyby.="Vyskytol sa problem. Skuste znova, alebo kontaktujte administratora"; } $chyby = ""; if ($chyby != "") { echo "<p style=\"color: red\"><b>Vyskytli sa nasledujuce chyby:</b><br> $chyby </p><br>\n"; } } ?> Vem ze je to dost blbe, ale mal som aj ine rozne skripty. Teraz som skusal cez foreach ale nevem ako na to budem rad ak poradite :) btw vsimajte si iba hlavne to vkladanie do db ostatne doupravujem |
||
gogy27 Profil * |
#4 · Zasláno: 3. 2. 2009, 21:08:48
newiem ako to spravit lebo nesom si isty ci mam foreach dobre zapisany a dalej ci to vobec robit cez foreach
|
||
bitbit Profil |
#5 · Zasláno: 3. 2. 2009, 21:23:19 · Upravil/a: bitbit
Spíš bych použil for a to jen jeden, poněvadž každé jméno a příjmení patřící k sobě, by mělo mít stejný index, tedy
něco jako: for($i=0;$i<count($_POST["meno"]); $i++) { $vlozit = "INSERT INTO hraci ( meno, priezvisko) VALUES ('".$_POST["meno"][$i]."', '".$_POST["priezvisko"][$i]."')" $vysledok = mysql_query( $vlozit ); if ($vysledok) { $idUzivatela = mysql_insert_id(); } else { $chyby.="Vyskytol sa problem. Skuste znova, alebo kontaktujte administratora"; } } EDIT: Ikdyž mi ten script připadá děsně zmatenej. Snad jsem vytáhl tu správnou část kódu |
||
gogy27 Profil * |
#6 · Zasláno: 3. 2. 2009, 21:32:35
Parse error: syntax error, unexpected T_VARIABLE in /NODE1/mgamecs.com/c1rca/mena2.php on line 42
Netrebalo by nejako osetrit tie uvodzovky? |
||
bitbit Profil |
#7 · Zasláno: 3. 2. 2009, 21:34:09
není tam středník :-D
$vlozit = "INSERT INTO hraci ( meno, priezvisko) VALUES ('".$_POST["meno"][$i]."', '".$_POST["priezvisko"][$i]."')"; |
||
gogy27 Profil * |
#8 · Zasláno: 3. 2. 2009, 21:37:51
DAKUJEM PEKNE UZ TO FUNGUJE DIKY ESTE RAZ JJ strednik zakerny :D
|
||
bitbit Profil |
#9 · Zasláno: 3. 2. 2009, 21:42:11
Jen ještě připomínka, ty úpravy toho textu bys měl volat až v tom for před insertem
|
||
gogy27 Profil * |
#10 · Zasláno: 3. 2. 2009, 21:43:48
myslis to osetrenie ci sa nenachadza 2 krat alebo podobne?
|
||
bitbit Profil |
#11 · Zasláno: 3. 2. 2009, 21:55:00
No jestli ti to funguje jak potřebuješ tak asi ok, ale asi by to před uložením do DB chtělo ošetřit tím htmlspecialchars apd. A to 2x v DB nejspíš taky, protože pochybuji, že to dokáže vyhledat, když mu tam posíláš pole.
|
||
Časová prodleva: 15 let
|
0