Avatar billede flol Nybegynder
14. december 2006 - 20:15 Der er 4 kommentarer og
1 løsning

Problemer med SQL syntax

Hey, har lige en side jeg er ved at bygge op, men så opdagede jeg lige nogle små fjel, som jeg ikke selv kunne rette.  :/
måske i ville hjælpe med at finde fejlen på en af mine sider, da det er den samme fejl der går igen?

Fjel:
-----------------------------------------------------------------
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
-----------------------------------------------------------------


Kode:
-----------------------------------------------------------------
<?
session_start();
include('connect.php');

$query = mysql_query("SELECT * FROM spilsys WHERE id = '$_GET[id]'") or die(mysql_error());
while ($row = mysql_fetch_assoc($query)) {

$navn = $row['navn'];
$besked = $row['besked'];
$time = $row['time'];
$fil = $row['fil'];
$billede = $row['billede'];
?>
<style type="text/css">
A {text-decoration: none}
body {
    background-image: url(../image-filer/baggrund.png);
}
</style>
<table width="500" height="400" align="center" cellpadding="0" cellspacing="0">
    <tr>
        <td width="620" height="9">
            <p align="center"><? echo"$navn"; ?></navn></p>
        </td>
    </tr>
    <tr>
        <td width="500" height="400"><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="500" height="400">
            <param name="movie" value="<? echo "$fil"; ?>">
            <param name="play" value="true">
            <param name="loop" value="true">
            <param name="quality" value="high">
<embed width="500" height="400" src="<? echo "$fil"; ?>" play="true" loop="true" quality="high" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"></object></td>
    </tr>
</table>
</body>
</html>
<center>
<?
}

if (isset($_POST[submit])) {
$kommentar = $_POST['kommentar'];
$bruger = $_SESSION['Brugernavn'];
$spilid = $_GET['id'];

$days = array ('Søndag','Mandag','Tirsdag','Onsdag','Torsdag','Fredag','Lørdag');
$months = array('januar','februar','marts','april','maj','juni','juli','august','september','oktober','november','december');

$tid = $days[date("w")] . ' den ' . date("j. ") . $months[date("n")-1] . date(" Y") . " kl. " . date("H:i:s", time());

mysql_query("INSERT INTO spilkom VALUES('', '$spilid', '$bruger', '$kommentar', '$tid'") or die(mysql_error());
echo '<font color="green"> Din kommentar er oprettet!</font>';
}
   
$con = mysql_query("SELECT * FROM spilkom WHERE spilid = '$_GET[id]'") or die(mysql_error());
while ($hentdb = mysql_fetch_assoc($con)) {

    $kommentar = $hentdb['kommentar'];
    $bruger = $hentdb['brugernavn'];
    $tid = $hentdb['time'];
?>
<table width="300" height="68" border="0" cellpadding="0" cellspacing="0">
<tr>
<td height="18"><? echo "$bruger - $tid"; ?></td>
</tr>
<tr>
<td><? echo "$kommentar"; ?></td>
</tr>
</table><br />
<? } ?>

<?
    if ($_SESSION['admin'] == 'admin') {
?>
    <form action="spil.php" name="form" method="post">
    Skriv kommentar:<br />
    <textarea cols="30" rows="5"></textarea><br />
    <input type="submit" name="submit" value="Send">
    </form><hr />
<? exit; }
    if ($_SESSION['loget_in'] == 1) {
    ?>
        <form action="spil.php" name="form" method="post">
    Skriv kommentar:<br />
    <textarea cols="30" rows="5"></textarea><br />
    <input type="submit" name="submit" value="Send">
    </form><hr />
   
<? exit; }
    if ($_SESSION['over_normal'] == over_normal) {
?>
    <form action="spil.php" name="form" method="post">
    Skriv kommentar:<br />
    <textarea cols="30" rows="5"></textarea><br />
    <input type="submit" name="submit" value="Send">
    </form><hr />
<?
    exit; } ?></center>

-----------------------------------------------------------------

fejlen kommer når jeg prøver at gemme min kommentar, som lavet i koden
Avatar billede pidgeot Nybegynder
14. december 2006 - 20:39 #1
Du mangler en slutparantes i din query:

mysql_query("INSERT INTO spilkom VALUES('', '$spilid', '$bruger', '$kommentar', '$tid'") or die(mysql_error());

ændres til

mysql_query("INSERT INTO spilkom VALUES('', '$spilid', '$bruger', '$kommentar', '$tid')") or die(mysql_error());
Avatar billede flol Nybegynder
14. december 2006 - 21:08 #2
okay tak den havde jeg ikke lige set ! hehe :P

men måske du kunne hjølpe mig med en anden kode som gir samme fejl ?

Kode:
----------------------------------------------------------------------

<style type="text/css">
A {text-decoration: none}
body {
    background-image: url(../../image-filer/baggrund.png);
}
</style>
<?
include("connect.php");

$query4 = mysql_query("SELECT * FROM forumkommentar WHERE emneid = '$_GET[id]' order by time DESC LIMIT ".$start.", ".$prside) or die(mysql_error());
while ($row4 = mysql_fetch_assoc($query4)) {

$titel = $row4['overskrift'];
$kommentar = $row4['kommentar'];
$time = $row4['time'];
$brugernavn = $row4['brugeroprettet'];
?>
<table>
<tr>
<td><? echo "$titel"; ?></td>
</tr>
<tr>
<td><? echo "$kommentar"; ?></td>
</tr>
<tr>
<td><? echo "$brugernavn"; ?></td><td><? echo "$time"; ?></td>
</tr>
<?
}
$antal = mysql_result(mysql_query("SELECT COUNT(*) FROM forumkommentar WHERE emneid = '$_GET[id]' order by time DESC"),0) or die(mysql_error());
if($start > 0) {
    echo "<a href=?s=".($start-$prside).">"; ?><center>Forrige</a><br /></center><?
}

if($start < FLOOR($antal/$prside)*$prside) {
    echo " <a href=?s=".($start+$prside).">"; ?><center>N&aelig;ste</a><br /></center><?
}
?>
--------------------------------------------------------------------
Avatar billede pidgeot Nybegynder
14. december 2006 - 21:15 #3
$start og $prside lader ikke til at være defineret noget sted. Det er nok den sidste af dem der reelt "mangler", hvis den også der siger du skal kigge i nærheden af "ingenting".

Såfremt det ikke er det der er problemet, så er fejlen ikke i det kodefragment du har postet herind. Det er i øvrigt derfor det kan være en rigtig god ide ikke kun at bruge mysql_error() i sin die, da det ikke siger hvor i scriptet det er gået galt - der er die(__FILE__ . ':' . __LINE__ ': ' . mysql_error()); bedre, da du så får filnavn og linienummer umiddelbart før fejlen.
Avatar billede flol Nybegynder
16. januar 2007 - 09:57 #4
Tak for hjælpen pidgeot, lig et svar
Avatar billede pidgeot Nybegynder
16. januar 2007 - 10:29 #5
Kommer her :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester