Autor | Zpráva | ||
---|---|---|---|
Yuff.3 Profil |
#1 · Zasláno: 2. 1. 2015, 19:39:12
Ahojte,
vytvoril som si jednoduchý kód na odoslanie textov do databázy mysql. Používam php-fusion systém a vypíše mi tam túto chybu vždy: 1064 - 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 ')' at line 1 - viete niekto čo tá chyba znamená a ako ju odstránim, aby mi kód uvedený nižšie fungoval? Už som skúšal asi všetko. (Ten zakomentovaný kód na vytvorenie tabuľky je zakomentovaný preto, lebo tabuľka je vytvorená už a keď som skúsil daný formulár, tak mi vypísalo, že tabuľka už existuje, ale údaje do databázy samozrejme neodoslalo. Predpokladám, že to neodosiela vďaka tej spomínanej chybe.. <?php require_once "maincore.php"; require_once THEMES."templates/header.php"; /*$s = dbquery("CREATE TABLE prefix_zapasy ( `id` smallint(5) unsigned NOT NULL auto_increment, `hra` varchar(255) NOT NULL, `nas_team` varchar(255) NOT NULL, `super_team` varchar(255) NOT NULL, `nas_team_body` varchar(255) NOT NULL, `super_team_body` varchar(255) NOT NULL, `liga` varchar(255) NOT NULL, `datum` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ");*/ ?> <html><body> <h1>Pridať nový zápas</h1> <form method="POST" action=""> Hra: <input name="hra" type="text"> <br> Náš team: <input name="nas_team" type="text"> <br> Súperov team: <input name="super_team" type="text"> <br> Body nášho teamu: <input name="nas_team_body" type="text"> <br> Body súperovho teamu: <input name="super_team_body" type="text"> <br> Liga: <input name="liga" type="text"> <br> <!--Dátum: <br> zistiť ako pridať aktuálny čas <input name="datum" type="text"> --> Dátum: <input name="datum" type="text"> <input class="submit" type="submit" name="ok" value="Odoslať" > </form> </body> </html> <? $hra = $_POST['hra']; $nas_team = $_POST['nas_team']; $super_team = $_POST['super_team']; $nas_team_body = $_POST['nas_team_body']; $super_team_body = $_POST['super_team_body']; $liga = $_POST['liga']; $datum = $_POST['datum']; $odoslat = mysql_query(" INSERT INTO zapasy (hra, nas_team , super_team, nas_team_body , super_team_body , liga , datum ) VALUES( '". $hra ."' , '". $nas_team ."' , '". $super_team ."' , '". $nas_team_body ."' , '". $super_team_body ."' , '". $liga ."' , '". $datum ."' , ) "); if( !$odoslat ) { echo mysql_errno() . " - " . mysql_error(); } else { echo "Bol pridaný nový zápas teamu ".$nas_team." , v hre ".$hra." , proti teamu ".$super_team." , v lige ".$liga." , kde s nase body sú: ".$nas_team_body." a súperove body sú: ".$super_team_body." "; } require_once THEMES."templates/footer.php"; ?> |
||
Zechy Profil |
#2 · Zasláno: 2. 1. 2015, 19:41:30
$odoslat = mysql_query(" INSERT INTO zapasy (hra, nas_team , super_team, nas_team_body , super_team_body , liga , datum ) VALUES( '". $hra ."' , '". $nas_team ."' , '". $super_team ."' , '". $nas_team_body ."' , '". $super_team_body ."' , '". $liga ."' , '". $datum ."' , ) "); Hádám, že ta čárka tam být nemá - SQL očekává, že tam bude ještě nějáká hodnota, místo toho najednou dostane závorku -> Příčina chyby. |
||
Yuff.3 Profil |
Zechy:
Áno, tam bol pes zakopaný. Ďakujem veľmi pekne - všetko už funguje presne ako má. // Zisťujem, že nie celkom tak presne... Php-Fusion mi vypisuje chybovú hlášku - vikita/novy-zapas.php Use of undefined constant fusionU5IW6_zapasy - assumed 'fusionU5IW6_zapasy' Riadok: 63 vikita/novy-zapas.php Undefined index: super_team_body Riadok: 59 čo by sa ale teoreticky dalo ignorovať - vidí to len administrátor v tomto systéme php-fusion. Čo ale neviem vyriešiť je takáto záležitosť. Akokoľvek otvorím tú stránku kde mám daný kód - vždy mi do DB odošle údaje. Aj keď nevyplním nič, odošle prázdne riadky do tabuľky v databáze. Potreboval by som to ošetriť podmienkou, ktorú neviem zapísať. Mala by znieť asi nejak tak, že ak niečo, hocičo z tých inputov (či valuesov) nebude vyplnené alebo teda bude prázdne, tak v kóde nepokračuje - a teda neodošle do DB nič. // Vyriešené - pomohol som si týmto: http://pabi3.com/blog/php-formular-a-email/ |
||
mimochodec Profil |
Yuff.3:
Podmínky používat umíš, viz ř. 65 v kódu. Když chceš testovat, jestli byl formulář vyplněn a odeslán, použij toto if (isset($_POST['hra'])) { .. <input name="email" type="text" size="32" /> .. if ($meno && $email && $predmet && $text){ $_POST['hra'] pracuje s proměnnou $hra . To je poněkud nepěkné a nelze to doporučit. Používej pole $_POST .
|
||
Yuff.3 Profil |
#5 · Zasláno: 3. 1. 2015, 18:23:27
mimochodec:
Ďakujem pekne, vážim si tvojej pomoci. |
||
Časová prodleva: 10 let
|
0