Autor Zpráva
Filip S.
Profil *
Dobrý den,
mám problém ohledně mysql.
Chci vkládat záznamy pomocí formuláře, který vypadá takto:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Přidání zápasu</title>
</head>

<body>

<h1>Přidání zápasu</h1>

<form action="pridat.php">

<b>Tým:</b> <select name="tym" style="background-color: yellow">
<option value="">Vyber tým</option>
<option value="Ž">Žáci</option>
<option value="D">Dorost</option>
<option value="A">Áčko</option>
<option value="B">Béčko</option>
</select>
<br>
<br>

<b>Soutěž:</b> <select name="soutez" style="background-color: yellow">
<option value="">Vyber soutěž</option>
<option value="1.B třída">1.B třída (Áčko)</option>
<option value="Okresní přebor">Okresní přebor (Žáci, Dorost)</option>
<option value="IV. třída">IV. třída (Béčko)</option>
<option value="Přátelské utkání">Přátelské utkání</option>
</select>
<br>
<br>

<b>Kolo:</b> <select name="kolo"style="background-color: yellow">
<option value="">Vyber kolo</option>
<option value="Přátelák">Přátelák</option>
<optgroup label="Podzim">
<option value="1.kolo">1.kolo</option>
<option value="2.kolo">2.kolo</option>
<option value="3.kolo">3.kolo</option>
<option value="4.kolo">4.kolo</option>
<option value="5.kolo">5.kolo</option>
<option value="6.kolo">6.kolo</option>
<option value="7.kolo">7.kolo</option>
<option value="8.kolo">8.kolo</option>
<option value="9.kolo">9.kolo</option>
<option value="10.kolo">10.kolo</option>
<option value="11.kolo">11.kolo</option>
<option value="12.kolo">12.kolo</option>
<option value="13.kolo">13.kolo</option>
</optgroup>
<optgroup label="Jaro">
<option value="14.kolo">14.kolo</option>
<option value="15.kolo">15.kolo</option>
<option value="16.kolo">16.kolo</option>
<option value="17.kolo">17.kolo</option>
<option value="18.kolo">18.kolo</option>
<option value="19.kolo">19.kolo</option>
<option value="20.kolo">20.kolo</option>
<option value="21.kolo">21.kolo</option>
<option value="22.kolo">22.kolo</option>
<option value="23.kolo">23.kolo</option>
<option value="24.kolo">24.kolo</option>
<option value="25.kolo">25.kolo</option>
<option value="26.kolo">26.kolo</option>
</optgroup>
</select>
<br>
<br>

<b>Den:</b> <select name="den" style="background-color: yellow">
<option value="">Vyber den</option>
<option value="So">Sobota</option>
<option value="Ne">Neděle</option>
<option value="Po">Pondělí</option>
<option value="Út">Úterý</option>
<option value="St">Středa</option>
<option value="Čt">Čtvrtek</option>
<option value="Pá">Pátek</option>
</select>

<b>Datum:</b> <input name="datum" size=10 style="background-color: yellow"> <i>(např. 21.4.2008)</i>

<b>Čas:</b> <input name="cas" size=5 style="background-color: yellow"> <i>(např. 14:00)</i>
<br>
<br>


<b>Domácí:</b> <input name="domaci" size=30 style="background-color: yellow"> <b>Hosté:<b/> <input name="hoste" size=30 style="background-color: yellow">
<input name="goly_d" size=2 style="background-color: yellow">:
<input name="goly_h" size=2 style="background-color: yellow">
<br>
<br>

<b>Sestava:</b> <br><input name="sestava" size=150><br>
<b>Střelci:</b> <br><input name="strelci" size=100>
<br>
<br>

<h2>Žlutá pole musí být vyplněna!</h2>


<input type="submit" value="Přidat zápas">
</form>

</body>
</html>

... a pridat.php je zde:
<?

$spojeni = mysql_connect("mysql.meteorss.cz","db-meteorss","heslo" );
mysql_select_db(db-meteorss, $spojeni);


$vysledek = mysql_query("
insert into zapasy_podzim_08 values(
0,'$tym','$soutez','$kolo','$den','$datum','$cas','$domaci','$hoste' ,'$goly_d','$goly_h','$strelci','$sestava'
)", $spojeni
);


echo "Zápas byl přidán.";

?>



...tabulka v databázi je vytvořena takto:
CREATE TABLE zapasy_podzim_08 (
id INTEGER AUTO_INCREMENT ,
tym VARCHAR (1) NOT NULL,
soutez VARCHAR (15) NOT NULL,
kolo INTEGER NOT NULL,
den VARCHAR (2) NOT NULL,
datum VARCHAR (12) NOT NULL,
cas VARCHAR (5) NOT NULL,
domaci VARCHAR (20) NOT NULL,
hoste VARCHAR (20) NOT NULL,
goly_d INTEGER NOT NULL,
goly_h INTEGER NOT NULL,
strelci VARCHAR (100) DEFAULT "---",
sestava VARCHAR (200) DEFAULT "---"
)

Při zpracování formuláře to žádnou chybu nehlásí, ale do tabulky se žádný záznam nezapíše.
Na jiném serveru (se změněným mysql serverem a přihlaš. údaji) úplně to samé funguje bez problému.

Nevíte kde může být chyba?

Hostin mám u c4.cz.
Kajman_
Profil *
Zkuste si vypsat mysql_error(). Problém může dělat ta nula vkládaná do id. Zkuste null hodnotu nebo úplně id vynechat a vyjmenovat za názvem tabulky použité sloupečky - viz. syntaxe insertu.
Kajman_
Profil *
Také asi předpokládáte register globals, kteréždo bývají pro bezpečnost vypnuty.

$spojeni = mysql_connect("mysql.meteorss.cz","db-meteorss","heslo" );
mysql_select_db("db-meteorss", $spojeni);


$vysledek = mysql_query("
insert into zapasy_podzim_08 (tym,...) values('$_REQUEST[tym]',...); 
Filip S.
Profil *
Kajman_:
Tak jsem to změnil kvůli těm register globals i id jsem nastavil na null.
Stále to nefunguje, tak jsem si zkusil vypsat mysql_error() a vypsalo mi to tohle:
1044: Access denied for user 'db-meteorss'@'%' to database '0' 
1046: No database selected 
Mastodont
Profil
Opravdu máš stejný název databáze i jejího uživatele? - db-meteorss
nightfish
Profil
mysql_select_db(db-meteorss, $spojeni);
řetězcové literály se uzavírají do apostrofů nebo uvozovek (v tomto případě je to jedno)
když to neuděláš, převede se to na "db"-"meteorss", což se kvůli operátoru mínus převede zpět na čísla, a tedy 0-0 => 0
Filip S.
Profil *
Děkuju všem mockrát za rady.
Problém byl tedy v zapnutých register globals a teď poslední problém byl v tom jak píše nightfish, že řetězcové literály se uzavírají do apostrofů nebo uvozovek.

Ještě jednou mockrát dííky :-)
Toto téma je uzamčeno. Odpověď nelze zaslat.