Ano, negace tam byla. Celý Váš příklad jsem zkopíroval k sobě, ale právě to psalo že pole nejsou vyplněna i když byla. Vůbec jsem to nechápal, tak jsem si to upravil bez té negace, kde mi to funguje.
Kód: Vybrat vše
<?php
$spojeni = mysql_connect("localhost","root","")or die("Žádné spojení s MySQL");
mysql_select_db("newsletter")or die("Databáze neexistuje");
MySQL_set_charset('utf8_czech_ci');
mysql_query("SET NAMES 'utf8_czech_ci'");
$jmeno = $_POST['jmeno'];
$prijmeni = $_POST['prijmeni'];
$email = $_POST['email'];
$sqlprikaz = "INSERT INTO odberatele (id, jmeno,prijmeni,email, datum) VALUES ( '', '$jmeno', '$prijmeni', '$email', '')";
$email_form = $_POST['email'];
$email_data = mysql_query("SELECT email FROM odberatele WHERE email='$email_form'");
$email = mysql_fetch_array($email_data);
if (empty($_POST['jmeno'] && $_POST['prijmeni'] && $_POST['email']))
{
echo "Je potreba vyplnit všechny pole! <br />
<a href='http://localhost'>Zpět na formulář:</a>";
}
elseif ($email_form == $email['email'])
{
mysql_close($spojeni);
echo "Tento email je již zaregistrován. Použijte prosím jiný email.";
}
elseif (mysql_db_query("newsletter",$sqlprikaz,$spojeni)or die ("Data nejsou zapsána do databáze"))
{
mysql_close($spojeni) or die ("Není uzavřeno");
echo "Děkujeme za registraci";
}
else
{
mysql_close($spojeni) or die ("Nepodařilo se zavřít databázi");
echo "Registrace se nepovedla";
}
?>
Já mám asi guláš v těch sql příkazech.
Zkoušel jsem si pak napsat příklad na vymazání emailu z databáze.
Kód: Vybrat vše
<?php
$spojeni = mysql_connect("localhost","root","")or die("Žádné spojení s MySQL");
mysql_select_db("newsletter")or die("Databáze neexistuje");
mysql_set_charset('utf8') or die("Nelze nastavit znakovou sadu");
mysql_query("SET NAMES 'utf8_czech_ci'");
$smazat_email = $_POST['delete_email'];
$email_delete = $_POST['delete_email'];
$email_data = mysql_query("SELECT email FROM odberatele WHERE email='$email_delete'");
$email = mysql_fetch_array($email_data);
$sqlprikaz = "DELETE email FROM odberatele WHERE email = $smazat_email";
if (empty($smazat_email))
{
mysql_close($spojeni) or die ("Není uzavřena databáze");
echo "Musíte zadat emailovou adresu!";
}
elseif ($email['email'] !== $_POST['delete_email'])
{
mysql_close($spojeni) or die ("Není uzavřeno");
echo "Tento email není registrován.";
}
elseif (mysql_db_query("newsletter",$sqlprikaz,$spojeni) or die ("Data nejsou vyhledána v databázi"))
{
mysql_close($spojeni) or die ("Není uzavřeno");
echo "Email byl vymazán.";
}
else
{
mysql_close($spojeni) or die ("Není uzavřeno");
echo "Nepodařilo se vymazat email";
}
?>
První dvě podmínky fungují, ale u třetí, kde se to má vymazat to opět píše "Data nejsou vyhledána v databázi". Takže se to zase nepřipojilo. Prosím, kde dělám chybu? Snad se mi pak už rozsvítí.
