Autor Zpráva
Akali
Profil
php script (soubor test.php)
<?php
$db = mysqli_connect ('localhost', 'root', 'heslo', 'test');
if(!$db)
echo "nepodařilo se připojit";


if (isset($_POST['zprava']))
{
  // Vytvoření SQL příkazu typu INSERT.
  $sql_prikaz = 
    "INSERT INTO dorost(pridal,datum,text) "
    ."VALUES(NOW(),'"
    .mysqli_real_escape_string($db,$_POST['pridal'])
    ."','"
    .mysqli_real_escape_string($db,$_POST['datum'])
    ."','"
    .mysqli_real_escape_string($db,$_POST['text'])
    ."')"
    ;

  
  $objekt_vysledku = mysqli_query($db, $sql_prikaz);
 
  if (!$objekt_vysledku)
  {
    echo 'Poslání SQL příkazu se nepodařilo, sorry';
    echo '<br />';
    echo 'Popis chyby: ', mysqli_error($db);
    exit();
  }
  echo 'Nový zápis do knihy návštěv přidán.<br />';
} 
?>


html kód (soubor joj.html)
<form name="kniha" action="test.php" method="post">
<b>Jméno:</b><br />
<input name="pridal" size="40"><br />
<br />
<b>datum:</b><br />
<input name="datum" size="40"><br />
<br />
<b>text:</b><br />
<textarea name="text" rows="5" cols="30"></textarea><br />
<br />
<input type="submit" value="Odeslat zprávu">
</form>



tabulka ->
DROP TABLE IF EXISTS `dorost`;
CREATE TABLE IF NOT EXISTS `dorost` (
`Pridal` text collate utf8_czech_ci NOT NULL,
`Datum` text collate utf8_czech_ci NOT NULL,
`Text` text collate utf8_czech_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;


Mohl by mi někdo říct, proč se to neodešle do DB? :(
Mastodont
Profil
Zřejmě proto, že voláš mysqli_real_escape_string a předáváš jakési $db_spojeni namísto $db, které sis vytvořil předtím ...
Akali
Profil
Tak to už jsem opravil, ale pořád nic : (
Mastodont
Profil
No pak tam ještě vidím isset($_POST['zprava'], ale ve formuláři žádný prvek "zprava" není.
Akali
Profil
Aha, tak teď jsem tam místo "zprava" dal "text" a hodilo to tuto chybu

Poslání SQL příkazu se nepodařilo, sorry
Popis chyby: Column count doesn't match value count at row 1
Mastodont
Profil
Jo, protože v závorkách za názvem tabulky máš tři sloupce, ale posíláš NOW + 3 hodnoty.
Akali
Profil
No super, funguje to. Díky moc!

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:

0