Autor Zpráva
ondra.prenek
Profil
Ahoj chci zadat do databáze z formuláře select fci. Dal jsem name selectu a když ho potom chci v phpku vypsat, tak se mi vypíše jen nula...
ve formuláři mám tedy jeden řádek

<select name="inzstav"><option value="nove">Nové</option><option value="pouzite">Použité</option></select>

a potom na to odkazuji



if($_POST['inzvloz'])
        {

            if($_POST['inztyp'] && $_POST['inzstav'] && $_POST['inztitulek'] && $_POST['inzcena'] && $_POST['inztext'])
            {


pak to pokračuje klasicky... (include "config.php" a blablala......, prostě zbytek funguje, jen mi nejde uložit v tomto případě "nové" nebo "použité" jako hodnotu do řádku do databáze... Vypíše to jen 0

Mohli byste mi pomoci?
Díky moc za radu
Fisir
Profil
Reaguji na ondra.prenka:
Zkontroluj, jestli sloupec, do kterého to ukládáš, nemá nastavený datový typ číslo. Jestli ne, ukaž přímo kód se SELECTem.
ondra.prenek
Profil
jo měl jsem zrovna u tohohle chybu v mysql, zapoměl jsem to tam změnit z int na varchar... tak když už jsem to změnil tak se mi nezoobrazuje nic :D
každopádně posílám celou tu tabulku a pak celý to phpko


<form method="POST" id="inzform">
  <table id="inztab">
  <tr><th>Vložení inzerátu
  <tr><td><select name="inztyp"><option value="prodam">Prodám</option><option value="koupim">Koupím</option> <option value="vymenim">Vyměním</option> <option value="ostatni">Ostatní</option> </select>
  <select name="inzstav"><option value="nove">Nové</option><option value="pouzite">Použité</option></select>
  <tr><td>Titulek inzerátu: <input type="text" name="inztitulek">
  <tr id="cena"><td>Cena: <input type="number" name="inzcena"><span id="kc">Kč</span>
  <tr><td>Podrobnější informace<textarea name="inztext"></textarea>
  <tr><td><input type="submit" name="inzvloz" value="Vložit inzerát">
  </table>
</form>
<br>
  <?php
  if($_POST['inzvloz'])
        {

            if($_POST['inztyp'] && $_POST['inzstav'] && $_POST['inztitulek'] && $_POST['inzcena'] && $_POST['inztext'])
            {
              
                        include "config.php"; 
                        mysql_connect($server, $user, $pass);
                        mysql_select_db($db);
            
                        $query = mysql_query("SELECT * FROM inzeraty WHERE titulek ='".$_POST['inztitulek']."'"); 
                        if(mysql_num_rows($query) == 0)
                        {           
                       
                          mysql_query("INSERT INTO inzeraty 
                          VALUES(NULL,'".$_POST['inzttyp']."','".$_POST['inzstav']."','".$_POST['inztitulek']."','".$_POST['inzcena']."','".$_POST['inztext']."')");  
                          echo "Vložení inzerátu proběhlo úspěšně.<br> Budete přesměrováni na hlavní stránku<meta http-equiv='refresh' content='2;url=index.php'>";
                        }
                        else echo "Titulek existuje";
             
              
            }  
            else echo "Vyskytla se chyba. Nejsou vyplněna všechna pole";
          }  
        
      ?> 

    </table>
  </form>    



Fisir:
#3
Fisir
Profil
Reaguji na ondra.prenka:
Zkontroluj, jestli je v tabulce třetí sloupec v pořadí opravdu určen pro inzstav. Jestli ano, vlož před mysql_query s INSERTem tohle:
echo('<xmp>');
var_dump($_POST['inzstav']);
die('</xmp>');
a pošli, co to vypsalo.

Kromě toho, že používáš zastaralé PHP rozšíření mysql_* vstupní data ani neescapuješ, takže ti kdokoliv může rozhodit celou databázi.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0