Autor Zpráva
vavroch
Profil *
Zdravím
Mám tento problém:U níže uvedeného skriptu jsem položil na databazi tento dotaz:
CREATE TABLE IF NOT EXISTS `seznam` (
`mail` varchar(255) collate latin2_czech_cs NOT NULL,
`jmeno` text(50) collate latin2_czech_cs NOT NULL,
PRIMARY KEY (`mail`)
) ENGINE=MyISAM DEFAULT CHARSET=latin2 COLLATE=latin2_czech_cs;


A k nemu je prirazený tento skript,dokud jsem zadavl jenom mail,fungovalo to dobre,ted jsem chtel rozsirit databazi o jmeno,ale uz se to nepovede..(Do Db se zapise pouze mail).
Tusite nekdo v cem je chyba?

<form action="?vlozit=1" method="post">
<fieldset>
<label for="fun-text">E-mail pro zasílání novinek:</label>
<p><input type="text" name="funclub" id="fun-text" /></p>
<label for="jmeno">Zadejte prosím vaše <strong>jméno</strong>:</label>
<p><input type="text" name="jmeno" id="jmeno" /></p>
<label for="hodnota-text">Opište prosím číslicí <strong>osm</strong>:</label>
<p><input type="text" name="hodnota" id="hodnota-text" /></p>
<p><input type="submit" value="ok" /></p>
</fieldset>
</form>

<?php
mysql_connect ( "mysql.ic.cz", "ic_jirivavru", "connect" );

mysql_select_db("ic_jirivavru");

/*spojení s databází*/

$hodnota = $_POST['hodnota'];
$funclub = $_POST['funclub'];
$jmeno = $_POST['jmeno'];
/*příjem proměnné, která je odesílána z formuláře*/

if ($_GET['vlozit'] == 1) {

/*kontrola, zda chce form. někdo odelslat*/
if (empty($funclub)) {
/*jestli je pole prázdné, vypíše se varování*/
echo "<small>Musíte vyplnit e-mailovou adresu!</small>";
}
if (empty($jmeno)) {
/*jestli je pole jmeno prázdné, vypíše se varování*/
echo "<small>Musíte vyplnit jméno!</small>";
}
if($hodnota != "8")
echo "<small>Zadejte správně ověřovací kod</small>";

else {

$dotaz = "SELECT * FROM seznam WHERE mail='$funclub'";
$dotaz_jmeno = "SELECT * FROM seznam WHERE jmeno='$jmeno'";
$vysledky = mysql_query ($dotaz) or die (mysql_error());

$cislo = mysql_num_rows($vysledky);

/*kontrola, jestli zadaná e-mailová adresa již v databázi není*/

if ( $cislo == 0 and !empty($funclub)) {
$dotaz = "INSERT INTO seznam (mail) VALUES ('$funclub')";
$dotaz = "INSERT INTO seznam (jmeno) VALUES ('$jmeno')";
$vysledky = mysql_query ($dotaz) or die (mysql_error());

/*vloží se adresa do DB*/

echo "<small class='vyrazny'>E-mail je uložen.</small>.";
/*Vypíše hlášku, která se zobrazí po přidání mailu do DB*/

} elseif (!empty($funclub)) {
echo "<small class='vyrazny'>Tento e-mail už v seznamu je!</small>";

/*Vypíše hlášku při shodě e-mailů v databázi*/
}
}
}
?>
Mastodont
Profil
$dotaz = "INSERT INTO seznam (mail) VALUES ('$funclub')";
$dotaz = "INSERT INTO seznam (jmeno) VALUES ('$jmeno')"; 

Proč vkládáš nejdřív záznam s mailem a bez jména a pak další záznam se jménem a bez mailu?
$dotaz = "INSERT INTO seznam (mail, jmeno) VALUES ('$funclub', '$jmeno')";
vavroch
Profil *
Super!Už to funguje..ještě diakritika nesla korektne,ale to je uz vyreseno.
Ted to jeste ale vypisuje varovnou hlasku:
mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/free/ic.cz/j/jirivavru/root/www/novinky_mailem/zadani-mailu.php on line 44
Duplicate entry 'Jooo@seznam.cz' for key 1

Kde muze byt chyba ted?Je mozne,ze je to tim,ze je primarni klic nastaven na hodnotu mail?

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