Autor Zpráva
Martin73
Profil *
mam funkci :

f
unction addZavodnik($nSezona,$zCas, $zName, $zDatum, $zMisto) 
{ 

$query = mysql_query("INSERT INTO $nSezona VALUES(null,'$zCas','$zName','$zDatum','$zMisto')") or die (mysql_error()); 


} 


pricemz
$nSezona = $_GET['id']
.. a id je v url ve stylu ../addzavodnik.php?id=sezona2011

kdyz toto chci udelat a pridat zavodnika tak mi to vypise sql chybu :

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''' VALUES(null,'15:20','Vaclav Martin','2010-11-03','Praha')' at line 1 ..

nevíte nekdo co s tím ? kdyz zadam nazev tabulky normalne tak to funguje ale kdyz pomocí toho GET tak to haze chybu ... :/ prosim za odopoved
xmark
Profil
Martin73:
kdyz zadam nazev tabulky normalne tak to funguje ale kdyz pomocí toho GET tak to haze chybu

INSERT INTO '$nSezona' VALUES ..
Alphard
Profil
xmark:
INSERT INTO '$nSezona' VALUES ..
Klasické apostrofy ne, když už, tak zpětné.

Martin73:
Vypište celý dotaz.
Martin73
Profil *
toto pracuje s formularem :

<?php



if (isset($_POST['addZavodnik'])) {
if (($_POST['jmenoprijmeni']) != ""){
addZavodnik($_GET['id'],$_POST['cas'],$_POST['jmenoprijmeni'],$_POST['datum'],$_POST['misto']);
Header("Location: sezony.php");
}else {
echo "Zadejte jméno a příjmení závodníka!!";

}

}

?>


a funkce addZavodnik().. je taková jakou jsem psal v 1# tzn:

function addZavodnik($nSezona,$zCas, $zName, $zDatum, $zMisto) 
{ 

$query = mysql_query("INSERT INTO $nSezona VALUES(null,'$zCas','$zName','$zDatum','$zMisto')") or die (mysql_error()); 


}  


to s temi apostrofy '$nSezona' sem samozřejmě skoušel a chyba nezmizela , skoušel jsem i šíkmé apostrofy(nebo jak se tomu říká ``)
xmark
Profil
Martin73:
funkce addZavodnik
Ta funkce nikoho nezajímá. Vypiš si obsah toho mysql_query(). Jestli v něm nenajdeš chybu sám, zkus to dát sem.
mmch.. když ten dotaz budeš mít v kompletním tvaru
INSERT INTO table (col1,col2,col3) VALUES ('$neco1', '$neco2', '$neco3')

budeš vědět, co se kam snažíš ukládat a vyloučíš tak jednu z možných chyb.

Alphard:
Klasické apostrofy ne, když už, tak zpětné.
Sorry, já tuhle syntaxi nesnáším a nepoužívám.
Martin73
Profil *
skoušel jsem místo toho $_GET['id'] vložit ten nazev ktery se tam ma vlozit a funguje to ... ale kdyz dam za tu promennou `$nSezona` ty zpetne lomitka tak to napise incorrect table name misto te chyby kterou jsem psal .. takze vím urcite ze je chyba ve vypsani toho jmeno co vypisuje $_GET['id'] jenomze nevím kde ... cela aplikace má fungovat tak že na začátku uživatel vytvoří tabulku ( napise jen rocnik ) a ona se pojmenuje sezona(rocnik) tzn treba sezona2011 pak ta tabulka se da upravovat .. kdyz se klikne na jednu z moznosti s nazvem rekordy tak se zobrazi obsah te tabulky na strance rekordy.php?id=sezona2011 pricemz to $_GET['id'] = sezona2011 a proto to pouzivam protoze tam chci mit jeste funkce jako pridat zavodnika ( ke kteremu je pripsat cas rekordu , kde to zabehl , a datum , jmeno atd.. ) a kdyz bude tech sezon víc tak aby se to pridalo jen do te sezony do ktere budu chtít a abych nemusel ke kazde zvlast vytvaret novou funkci... nevím jestli vás napadá jíná možnost jak toto udělat byl bych moc rád ( to $_GET['id'] asi není zrovna nejrozumnejsi resení )
xmark
Profil
Martin73:
Jdeš na to špatně.
Vyrob si tabulku "vysledky" se sloupci "sezona", "zavodnik", "vysledek" a dalšími, co potřebuješ. Časem přijdeš na to, že je užitečné mít jména (jmeno, prijmeni) závodníků, názvy závodů a příp. další věci v dalších extra tabulkách, ale to ti asi v této fázi nikdo nevysvětlí.
Martin73
Profil *
děkuju moc, proč to dělat složitě když to jde jednoduše ...
Alphard
Profil
Martin73:
Tím vypsat dotaz myslíme tohle, bude se vám to určitě hodit i jindy.
$query = mysql_query($q="INSERT INTO $nSezona VALUES(null,'$zCas','$zName','$zDatum','$zMisto')");
if (!$query)
{
  echo "$q<br><br>".mysql_error();
}

nevím jestli vás napadá jíná možnost jak toto udělat
Víceméně souhlas s [#7]. Je mi ale jasné, že ty dva řádky na pochopení nestačí. Jestli vás to zajímá, nezbývá vám nic jiného než studovat principy relačních databází.

Nevypadá to, že byste si dělat těžkou hlavu s ošetřováním dat. Opět udělám reklamu skvělému dibi, třeba se vám zalíbí.

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: