Autor | Zpráva | ||
---|---|---|---|
Tyfon Profil * |
#1 · Zasláno: 14. 2. 2011, 06:43:01
Dobrý den, potřeboval bych poradit s kódem, jsem v php/mysql začátečník a následující kód je sice funkční ale hází mi pod kód chybu
Notice: Undefined variable: Submit in /home/webs/... .php on line 42 Notice: Undefined variable: result1 in /home/webs/... .php on line 49 Díky mockrát za pomoc <?php $tbl = "users"; $sql="SELECT * FROM $tbl"; $result=mysql_query($sql); $count=mysql_num_rows($result); ?> <table width="500" border="0" cellspacing="1" cellpadding="0"> <form name="form1" method="post" action=""> <tr> <td> <table width="500" border="0" cellspacing="1" cellpadding="0"> <tr> <td align="center"><strong>Id</strong></td> <td align="center"><strong>Jméno</strong></td> <td align="center"><strong>Datum</strong></td> <td align="center"><strong>Částka</strong></td> </tr> <?php while($rows=mysql_fetch_array($result)){ ?> <tr> <td align="center"><? $user_id[]=$rows['user_id']; ?><? echo $rows['user_id']; ?></td> <td align="center"><input name="user_name[]" type="text" id="user_name" value="<? echo $rows['user_name']; ?>"></td> <td align="center"><input name="datum[]" type="text" id="datum" value="<? echo $rows['datum']; ?>"></td> <td align="center"><input name="castka[]" type="text" id="castka" value="<? echo $rows['castka']; ?>"></td> </tr> <?php } ?> <tr> <td colspan="4" align="center"><input type="submit" name="Submit" value="Odeslat"></td> </tr> </table> </td> </tr> </form> </table> <?php if($Submit){ for($i=0;$i<$count;$i++){ $sql1="UPDATE $tble SET castka='$castka[$i]', datum='$datum[$i]' WHERE user_id='$user_id[$i]'"; $result1=mysql_query($sql1); } } if($result1){ header("location:vyplaty.php"); } ?> |
||
Segi_L Profil |
#2 · Zasláno: 14. 2. 2011, 10:50:09
Není to chyba ale oznámení.
Pristupuješ k premennej, ktorá nebola nijak vytvorená. <?php $submit = isset($_POST['submit']); $result1 = false; if($Submit){ for($i=0;$i<$count;$i++){ $sql1="UPDATE $tble SET castka='$castka[$i]', datum='$datum[$i]' WHERE user_id='$user_id[$i]'"; $result1=mysql_query($sql1); } } if($result1){ header("location:vyplaty.php"); } ?> A pokud máš všechny dotazy tímto stylem, koleduješ si o sql injection |
||
Časová prodleva: 5 let
|
|||
maaaca Profil |
#3 · Zasláno: 6. 4. 2016, 19:56:24
Ahoj, mám potíže se stejným skriptem, tak oživím toto vlákno.
Mám tento skript, který jsem si upravil k obrazu svému, ale nic to nedělá. Jen po poslední úpravě maže záznam v databázi, který jsem tam pokusně vložil přes phpmyadmin. Ještě mi nefunguje závěrečné přesměrování, resp. to vypíše chybu Warning: Cannot modify header information... Ale to mě zatím až tak netrápí. <?php require("nastaveni.php"); $pripoj=MySQL_Connect($SQL_Server, $SQL_Uzivatel, $SQL_Heslo) or Die(MySQL_Error()); MySQL_Select_Db($Databaze) or Die(MySQL_Error()); mysql_query("SET CHARACTER SET utf8"); $articleid = $_GET["articleid"]; $result = mysql_query("SELECT * FROM tbl_images WHERE articleid = '$articleid' ORDER BY `id` ASC"); $count = mysql_num_rows($result); ?> <form name="form1" method="post" action=""> <table> <?php while($rows=mysql_fetch_array($result)){ ?> <tr> <td width="5%"><strong><?php $id[]=$rows['id']; ?><? echo $rows['id']; ?></strong> </td> <td width="20%"><img src="../uploads/<?php echo $rows['tripid']; ?>/<?php echo $rows['articleid']; ?>/thumb/<?php echo $rows['image_name']; ?>" /> </td> <td width="25%"> <input name="title[]" type="text" id="title" value="<? echo $rows['title']; ?>"> </td> </tr> <?php } ?> </table> <input type="submit" name="submit" value="Submit" /> </form> <?php $submit = isset($_POST['submit']); $result1 = false; if($submit){ for($i=0;$i<$count;$i++){ $sql1="UPDATE tbl_images SET title='$title[$i]' WHERE id='$id[$i]'"; $result1=mysql_query($sql1); } } if($result1){ header("location:index.php"); } ?> Poradíte mi prosím, co by mohlo být špatně? |
||
Lonanek Profil |
Nikde nevidím definování proměnné $title[], kterou používáte na ř.40.
|
||
maaaca Profil |
#5 · Zasláno: 6. 4. 2016, 20:52:31
Lonanek:
Ano, to se mi taky právě nezdá, čekal bych tam nějaký skript, který to doluje ze POSTu. Ale když se podívám do původního skriptu nebo na ten příklad od Tyfona, tak tam to také není definované. |
||
juriad Profil |
#6 · Zasláno: 6. 4. 2016, 21:04:24
maaaca:
V tom tutoriálu je chyba snad na každé druhé řádce. Snažíš se napsat skript, který bude umět najednou upravovat titulky ke všem fotkám u článku? |
||
maaaca Profil |
#7 · Zasláno: 6. 4. 2016, 21:15:34
juriad:
Ano. Pokud mne navedeš na nějaký lepší, tak budu jedině rád. V podstatě se nemůžu dostat přes to, jak hromadně udělat update toho titlu. |
||
visionic Profil * |
<? // Udaje $host = "localhost"; $user = "db-user"; $pwd = "password"; $db = "db-name"; // spojení s databází $conn = mysql_connect($host, $user, $pwd) or system_error('ERROR: Can not connect to MySQL-Server'); mysql_select_db($db) or system_error('ERROR: Can not connect to database "'.$db.'"'); // variables $tablename = 'nazev_tabulky_obrazku'; $articleid = $_GET['id']; //to je z linku např.: www.tvoje.cz/?id=5 $cesta = 'images/articles/'; // formulář byl odeslán if ($_POST['submit']=='odeslat') { $id = $_POST['id']; $tittle = $_POST['tittle']; for($i=0;$i<count($id);$i++){ $sql = "UPDATE $tablename SET 'tittle'= '".$tittle[$i]."' WHERE 'image_id' = '".$id[$i]."' LIMIT 1"; //nezapomeň, že tittle a image_id jsou názvy sloupců $query = mysql_query($sql); } } // načtení echo '<table>'; echo '<form method="post">'; $sql = "SELECT * FROM $tablename articleid=$articleid ORDER BY id ASC"; $query = mysql_query($sql); while ($row = mysql_fetch_assoc($query)) { $obrazek = $cesta.$row['image_name']; echo '<tr>'; echo '<td>'; echo '<img src="'.$obrazek.'">'; echo '</td>'; echo '<td>'; echo '<input type="text" name="tittle[]" value="">'; echo '<input type="hidden" name="id[]" value="'.$row['image_id'].'">'; echo '</td>'; echo '</tr>'; } echo '<tr>'; echo '<td>'; echo '<input type="submit" value="odeslat" name="submit">'; echo '</td>'; echo '</tr>'; echo '</form>'; echo '</table>'; ?> nezkoušel jsem, napsal jsem z hlavy, takže určitě to pak dodělat o nějaké kontroly. Na řádku 38 mám chybu změnit na: $sql = "SELECT * FROM $tablename WHERE articleid=$articleid ORDER BY id ASC"; |
||
maaaca Profil |
#9 · Zasláno: 10. 4. 2016, 22:45:44
visionic:
Díky moc za přivedení na správnou cestu. Musel jsem si to ještě trochu doladit, ale už mi to funguje jak potřebuji :) |
||
Časová prodleva: 7 let
|
0