| 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: 12 let
|
|||
0