Autor Zpráva
Ben
Profil *
Mám formulářovou tabulku která mi načte obsah MySQL tabulky a po odeslání ke zpracování mi neupdatuje data.

$sql mi vrací:
UPDATE czsk_inserty SET jmeno="j", rok="r", firma="f", cislo="c", cena="c", where zaznam="3". 
Což je poslední řádek tabulky, který vypadá takto: jmeno="jmeno3", rok="rok3", firma="firma3", cislo="cislo3", cena="cena3", zaznam="3"



Nějaké nápady proč?

<?php 

$sql='UPDATE czsk_inserty SET jmeno="'.$_POST['jmeno'][$klic].'", rok="'.$_POST['rok'][$klic].'", firma="'.$_POST['firma'][$klic].'", cislo="'.$_POST['cislo'][$klic].'", cena="'.$_POST['cena'][$klic].'", where zaznam="'.$_POST['zaznam'][$klic].'"';

//vlozeni souboru na spojeni s MySQL
include("../config.php");

/*zpracovani pri odeslani formulare*/
if($_POST['ok']){echo"<b>Odesláno OK</b>";
                 foreach($_POST["zaznam"] as $klic => $data["zaznam"])
                        {
                         mysql_query($sql);
                        }
                }


//hlavicka formulare
?>
<form action="<?php echo $PHP_SELF ?>" method="post" enctype="multipart/form-data">
 <table width="820"align="center" border="1" cellspacing="0">
 <tr>
   <td align="center"><b>Záznam</b></td>
   <td align="center"><b>Jméno</b></td>
   <td align="center"><b>Rok</b></td>
   <td align="center"><b>Firma</b></td>
   <td align="center"><b>Číslo</b></td>
   <td align="center"><b>Cena</b></td>
   <td align="center"><b>Obrázek</b></td>
 </tr>


<?php
//kdyz je odeslano OK, nacteni hodnot z formulare
//pri prostem zobrazeni formulare se nactou data z databaze
$vysledek=mysql_query("select * from czsk_inserty");
 while ($data=MySQL_Fetch_Array($vysledek)):
    ?>
    <TR>
      <TD align="center"><input type="text" name="zaznam" value="<? if(!$_POST['ok']){echo $data["zaznam"];} else echo $_POST['zaznam'];?>"></TD>
      <TD align="center"><input type="text" name="jmeno" value="<? if(!$_POST['ok']){echo $data["jmeno"];} else echo $_POST['jmeno'];?>"></TD>
      <TD align="center"><input type="text" name="rok" value="<? if(!$_POST['ok']){echo $data["rok"];} else echo $_POST['rok'];?>"></TD>
      <TD align="center"><input type="text" name="firma" value="<? if(!$_POST['ok']){echo $data["firma"];} else echo $_POST['firma'];?>"></TD>
      <TD align="center"><input type="text" name="cislo" value="<? if(!$_POST['ok']){echo $data["cislo"];} else echo $_POST['cislo'];?>"></TD>
      <TD align="center"><input type="text" name="cena" value="<? if(!$_POST['ok']){echo $data["cena"];} else echo $_POST['cena'];?>"></TD>
      <TD align="center"><?echo odkaz ?></TD>
          
    </TR>
 <?php    
  endwhile;
 ?> 
 </table>
<br />
<br />
<center><input type="submit" name="ok" value="Odeslat"><br /><br /></center>
<center><input type="reset" value="Vrátit původní hodnoty"></center>
</form>


Moderátor Alphard: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
fuckin
Profil
Zkus si vypsat jakou chybu ti db vrati.

....
mysql_query($sql) or die(mysql_error());
...
Ben
Profil *
db žádnou chybu nevrací, chyba je podle me tady foreach($_POST["zaznam"] as $klic => $data["zaznam"])
panther
Profil
Ben:
vypiš si proměnnou $sql, jestli je její obsah takový, jaký očekáváš.

Vypiš si i výstup z toho foreache, jestli je takový, jaký chceš. Pokud ani jeden z těch dvou, které jsem vybral, nebude špatně, vypisuj si postupně, co je jiné, než očekáváš.
Ben
Profil *
když dám vypsat $klic, tak mi to nic nevrati
Ben
Profil *
panther: OK

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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