chyba v php
Re: chyba v php
Můžete mi prosím ještě poradit, jak ověřit hodnotu v databazi zda již existuje.
Napsal jsem:
if ($_POST['email'] == "???") echo "Email je již registrován. Zadejte prosím jiný email.".mysql_close($spojeni);
ale vůbec nevím jak to tam napsat. Databáze se jmenuje db a tabulka odberatele. Děkuji
Napsal jsem:
if ($_POST['email'] == "???") echo "Email je již registrován. Zadejte prosím jiný email.".mysql_close($spojeni);
ale vůbec nevím jak to tam napsat. Databáze se jmenuje db a tabulka odberatele. Děkuji
- Petr Hnátek
- Level 3.5
- Příspěvky: 654
- Registrován: listopad 13
- Pohlaví:
- Stav:
Offline
Re: chyba v php
Zkus to takto, nezkoušel jsem, ale fungovat by to mělo.
Kód: Vybrat vše
$email_form = $_POST['email'];
$email_data = mysql_query("SELECT email FROM odberatele WHERE email='$email_form'");
$email = mysql_fetch_array($email_data);
if($email_form == $email)
{
echo('E-mail již v databázi existuje, zadejte jiný.');
}
else
{
echo('E-mail v databázi neexistuje.');
}
Re: chyba v php
Děkuji, ale bohužel nejde. Hlásí to chybu u toho fetch_array.
- Petr Hnátek
- Level 3.5
- Příspěvky: 654
- Registrován: listopad 13
- Pohlaví:
- Stav:
Offline
Re: chyba v php
Už to vidím.
Zkus to takto:
Zkus to takto:
Kód: Vybrat vše
$email_form = $_POST['email'];
$email_data = mysql_query("SELECT email FROM odberatele WHERE email='$email_form'");
$email = mysql_fetch_array($email_data);
if($email_form == $email['email'])
{
echo('E-mail již v databázi existuje, zadejte jiný.');
}
else
{
echo('E-mail v databázi neexistuje.');
}
- CZechBoY
- Master Level 9.5
- Příspěvky: 8813
- Registrován: srpen 08
- Bydliště: Brno
- Pohlaví:
- Stav:
Offline
- Kontakt:
Re: chyba v php
To by melo byt jedno.
Musíš mít sloupce na utf8 kódování a vkládat s připojením nastaveným na utf8.
Smaz obsah tabulky a zkus to vložit znova s tím MySQL_set_charset.
Petr Hnátek: to nemusí nastavit kódování pro funkci na escapovani.
Musíš mít sloupce na utf8 kódování a vkládat s připojením nastaveným na utf8.
Smaz obsah tabulky a zkus to vložit znova s tím MySQL_set_charset.
Petr Hnátek: to nemusí nastavit kódování pro funkci na escapovani.
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
Re: chyba v php
Bohužel to nefunguje,ale myslím, že to mám blbě zapsané.
Můžete prosím poradit, kde je chyba? Děkuji
Kód: Vybrat vše
<?php
MySQL_set_charset('utf8_czech_ci');
$spojeni=mysql_connect("localhost","root","");
if(!$spojeni) die("Žádné spojení s MySQL");
$jmeno = $_POST['jmeno'];
$prijmeni = $_POST['prijmeni'];
$email = $_POST['email'];
$email_form = $_POST['email'];
$email_data = mysql_query("SELECT email FROM odberatele WHERE email='$email_form'");
$email = mysql_fetch_array($email_data);
$sqlprikaz = "INSERT INTO odberatele (id, jmeno,prijmeni,email, datum) VALUES ( '', '$jmeno', '$prijmeni', '$email', '')";
if($email_form == $email['email'])
{
echo "E-mail již v databázi existuje, zadejte jiný.
<br />
<a href='http://localhost'>Zpět na formulář:</a>";
}
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 (mysql_db_query("newsletter",$sqlprikaz,$spojeni)) echo "Děkujeme za registraci";
mysql_close($spojeni);
?>
Můžete prosím poradit, kde je chyba? Děkuji
Re: chyba v php
Já si myslím, že tam nemám připojenou databázi, proto to nevyhledá jestli to je již použité.
Trochu jsem to zjednodušil pouze na výpis zda existuje nebo ne.
Dále tam nikde nemám zapsáno databázi newsletter, která obsahuje právě tabulku uzivatele.
Nemůže to být také tím?
Děkuji
Trochu jsem to zjednodušil pouze na výpis zda existuje nebo ne.
Kód: Vybrat vše
<?php
MySQL_set_charset('utf8_czech_ci');
$spojeni=mysql_connect("localhost","root","");
if(!$spojeni) die("Žádné spojení s MySQL");
$email = $_POST['email'];
$email_form = $_POST['email'];
$email_data = mysql_query("SELECT email FROM odberatele WHERE email='$email_form'"); // nemá tady být propojení na $spojeni ???
$email2 = mysql_fetch_array($email_data);
if($email_form == $email2['email'])
{
echo('E-mail již v databázi existuje, zadejte jiný.');
}
else
{
echo('E-mail v databázi neexistuje.');
}
?>
Dále tam nikde nemám zapsáno databázi newsletter, která obsahuje právě tabulku uzivatele.
Nemůže to být také tím?
Děkuji
- Petr Hnátek
- Level 3.5
- Příspěvky: 654
- Registrován: listopad 13
- Pohlaví:
- Stav:
Offline
Re: chyba v php
Připojené to máš co koukám, ale ten SQL dotaz pro vložení do databáze musíš umístit do té podmínky.
Re: chyba v php
Já už jsem se v tom nějak ztratil. Mohu poprosit jak?
- Petr Hnátek
- Level 3.5
- Příspěvky: 654
- Registrován: listopad 13
- Pohlaví:
- Stav:
Offline
Re: chyba v php
Takto.
Kód: Vybrat vše
<?php
$spojeni = mysql_connect("localhost","root","")or die("Žádné spojení s MySQL");
mysql_select_db("sprava")or die("Databáze neexistuje");
MySQL_set_charset('utf8_czech_ci');
$jmeno = $_POST['jmeno'];
$prijmeni = $_POST['prijmeni'];
$email = $_POST['email'];
$email_form = $_POST['email'];
$email_data = mysql_query("SELECT email FROM odberatele WHERE email='$email_form'");
$email = mysql_fetch_array($email_data);
if($email_form == $email['email'])
{
mysql_close($spojeni);
echo('E-mail již v databázi existuje, zadejte jiný.');
echo('<br />');
echo('<a href='http://localhost'>Zpět na formulář:</a>');
}
else
{
if (!empty($jmeno && $prijmeni && $email))
{
mysql_query("INSERT INTO odberatele (id, jmeno,prijmeni,email, datum) VALUES (0, '$jmeno', '$prijmeni', '$email', '')");
mysql_close($spojeni);
echo('Děkujeme za registraci');
}
else
{
echo('Je potreba vyplnit všechny pole!<br />');
echo('<a href='http://localhost'>Zpět na formulář:</a>');
}
}
?>
Re: chyba v php
Děkuji, bohužel to píše při vyplněných polích "Je potřeba vyplnit všechny pole". Ale díky tomuto Vašemu zápisu jsem pochopil spoustu věcí, co jsem nepobral z knížky.
Zápis jsem upravil takto: nyní funguje
Nejdříve jsem zkoušel tento zápis, ale tam to nezapíše data do databáze. Netušíte, proč to vypisuje "Data se nezapsala do databáze"?
Myslel jsem, že je databáze připojena pomocí
Nebo se pletu? V prvním příkladu je INSERT vyřešen pomocí proměnné a poté mysql_db_query.
tady celý zápis:
Jinak v databázi to pořád píše špatné znaky u diakritiky, ale to teď na učení zas tak nevadí.
Ještě jednou moc děkuji za Vaši pomoc Petr Hnátek , snad se to časem také naučím.
Zápis jsem upravil takto: nyní 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";
}
?>
Nejdříve jsem zkoušel tento zápis, ale tam to nezapíše data do databáze. Netušíte, proč to vypisuje "Data se nezapsala do databáze"?
Myslel jsem, že je databáze připojena pomocí
Kód: Vybrat vše
mysql_select_db("newsletter")or die("Databáze neexistuje");
Nebo se pletu? V prvním příkladu je INSERT vyřešen pomocí proměnné a poté mysql_db_query.
tady celý zápis:
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'];
$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 (!empty($_POST['jmeno'] && $_POST['prijmeni'] && $_POST['email']))
{
mysql_query("INSERT INTO odberatele (id, jmeno, prijmeni, email, datum) VALUES ('', '$jmeno', '$prijmeni', '$email', '',)") or die("Data se nezapsala do databáze");
mysql_close($spojeni) or die ("Není zapsáno");
echo "Děkujeme za registraci";
}
else
{
mysql_close($spojeni) or die ("Nepodařilo se zavřít databázi");
echo "Registrace se nepovedla";
}
?>
Jinak v databázi to pořád píše špatné znaky u diakritiky, ale to teď na učení zas tak nevadí.
Ještě jednou moc děkuji za Vaši pomoc Petr Hnátek , snad se to časem také naučím.
- Petr Hnátek
- Level 3.5
- Příspěvky: 654
- Registrován: listopad 13
- Pohlaví:
- Stav:
Offline
Re: chyba v php
V PHP používej pouze zápis utf8, utf8_czech_ci pak pro nastavení tabulek v databázi.
nebo
mysql_db_query(); jsem já nepoužil, pouze jsem zdůraznil, že je to další způsob, kterým to lze zapsat.
Další věc je, že váš "celý kód" neodpovídá tomu, co jsem zde včera napsal. SQL dotaz pro zápis do databáze je napsán jinak. Takže si to zkontrolujte.
Kód: Vybrat vše
MySQL_set_charset('utf8);
nebo
Kód: Vybrat vše
mysql_query("SET NAMES 'utf8'");
mysql_db_query(); jsem já nepoužil, pouze jsem zdůraznil, že je to další způsob, kterým to lze zapsat.
Další věc je, že váš "celý kód" neodpovídá tomu, co jsem zde včera napsal. SQL dotaz pro zápis do databáze je napsán jinak. Takže si to zkontrolujte.
-
- Mohlo by vás zajímat
- Odpovědi
- Zobrazení
- Poslední příspěvek
-
- 1
- 1847
-
od Roman Tyčka
Zobrazit poslední příspěvek
25 pro 2023 18:41
-
- 1
- 1988
-
od petr22
Zobrazit poslední příspěvek
04 zář 2023 16:09
-
- 9
- 1488
-
od Domoo27
Zobrazit poslední příspěvek
12 úno 2024 23:54
-
-
Windows 98 chyba při startu ......VXD Příloha(y)
od Radovan-kocour » 24 říj 2023 18:49 » v Windows 11, 10, 8... - 5
- 1435
-
od Radovan-kocour
Zobrazit poslední příspěvek
25 říj 2023 15:24
-
-
- 9
- 1725
-
od petr22
Zobrazit poslední příspěvek
21 říj 2023 13:29
Zpět na “Programování a tvorba webu”
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 3 hosti