Avatar billede syngredk Nybegynder
05. marts 2006 - 17:48 Der er 25 kommentarer og
1 løsning

Error i SQL syntax

Hej

Jeg får denne fejlbesked:
"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"

Når jeg prøver, at aflæse filen her:

<?php

echo "<br><br>";

require('../access/access_config.php');
if (isset($_GET['deleteID'])) {
    mysql_query("DELETE FROM news WHERE id=".$_GET['deleteID']."") or die(mysql_error());
}

$query = mysql_query("SELECT id,title FROM news ORDER BY id DESC LIMIT ".$offset.",".$cfg['limit']."") or die(mysql_error());
echo '<ul>';
while ($row = mysql_fetch_assoc($query)) {

echo "<a href='news.edit.php?offset=".$offset."&id=".$row['id']."'>Rediger</a> | <a href='?offset=".$offset."&deleteID=".$row['id']."'>Slet</a> | ".$row[title]. "<br>";

}
?>
Avatar billede webudvikleren Nybegynder
05. marts 2006 - 17:52 #1
Prøv den god gammeldags måde.

<?php

echo "<br /><br />";

require('../access/access_config.php');
if (isset($_GET[deleteID])) {
    mysql_query("DELETE FROM `news` WHERE id= $_GET[deleteID]") or die(mysql_error());
}

$query = mysql_query("SELECT `id`, `title` FROM `news` ORDER BY `id` DESC LIMIT $offset, $cfg[limit]") or die(mysql_error());
echo "<ul>";
while ($row = mysql_fetch_assoc($query))
{
  echo "<a href=\"news.edit.php?offset=" . $offset . "&id=" . $row[id] . "\">";
  echo "Rediger</a> | <a href="?offset=" . $offset . "&deleteID=" . $row[id] . "\">";
  echo "Slet</a> | ".$row[title]. "<br />";
}
?>
Avatar billede webudvikleren Nybegynder
05. marts 2006 - 17:53 #2
Desuden - hvor kommer $cfg[limit] fra, og $offset?

mysql_query("DELETE FROM `news` WHERE id= $_GET[deleteID]") or die(mysql_error());
->
mysql_query("DELETE FROM `news` WHERE id=$_GET[deleteID]") or die(mysql_error());
Avatar billede syngredk Nybegynder
05. marts 2006 - 17:57 #3
Så får jeg denne fejl:
parse error: parse error, unexpected '=' in

linie 17
Avatar billede webudvikleren Nybegynder
05. marts 2006 - 18:02 #4
hvor kommer $cfg[limit] fra, og $offset?
Avatar billede syngredk Nybegynder
05. marts 2006 - 18:05 #5
Kommer fra news.edit.php hvor "rediger" skal henvises over til. Det er den linie som også giver fejl:
echo "<a href=\"news.edit.php?offset=" . $offset . "&id=" . $row[id] . "\">";
  echo "Rediger</a> | <a href="?offset=" . $offset . "&deleteID=" . $row[id] . "\">";
  echo "Slet</a> | ".$row[title]. "<br />";
Avatar billede webudvikleren Nybegynder
05. marts 2006 - 18:06 #6
echo "Rediger</a> | <a href=\"?offset=" . $offset . "&deleteID=" . $row[id] . "\">";
Avatar billede syngredk Nybegynder
05. marts 2006 - 18:08 #7
Når jeg sætter den linie ind istedet for, får jeg denne fejl:
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
Avatar billede webudvikleren Nybegynder
05. marts 2006 - 18:09 #8
Eh - kan ikke se andre fejl i dit script. Includere du noget andet, for der må fejlen ligge.
Avatar billede syngredk Nybegynder
05. marts 2006 - 18:15 #9
news.list.php

Herunder vises alle oprettede nyheder i databasen:

<?php

echo "<br /><br />";

require('../access/access_config.php');
if (isset($_GET[deleteID])) {
    mysql_query("DELETE FROM `news` WHERE id=$_GET[deleteID]") or die(mysql_error());
}

$query = mysql_query("SELECT `id`, `title` FROM `news` ORDER BY `id` DESC LIMIT $offset, $cfg[limit]") or die(mysql_error());
echo "<ul>";
while ($row = mysql_fetch_assoc($query))
{
  echo "<a href=\"news.edit.php?offset=" . $offset . "&id=" . $row[id] . "\">";
  echo "Rediger</a> | <a href=\"?offset=" . $offset . "&deleteID=" . $row[id] . "\">";
  echo "Slet</a> | ".$row[title]. "<br />";
}
?>

Det er hele dokumentet.. require('../access/access_config.php'); er den eneste henvisning, og den virker på andre sider, som allerede fungere.
Avatar billede fixxxer Nybegynder
05. marts 2006 - 18:18 #10
Prøv

$sql  = "SELECT `id`, `title` FROM `news` ORDER BY `id` DESC LIMIT $offset, $cfg[limit]";
echo $sql; // copy/paste resultatet herind
$query = mysql_query($sql) or die(mysql_error());
Avatar billede webudvikleren Nybegynder
05. marts 2006 - 18:19 #11
<?php

echo "<br /><br />";

include("../access/access_config.php");
if (isset($_GET["deleteID"])) {
    mysql_query("DELETE FROM `news` WHERE id=$_GET[deleteID]") or die(mysql_error());
}

$query = mysql_query("SELECT `id`, `title` FROM `news` ORDER BY `id` DESC LIMIT $offset, $cfg[limit]") or die(mysql_error());
echo "<ul>";
while ($row = mysql_fetch_assoc($query))
{
  echo "<a href=\"news.edit.php?offset=" . $offset . "&id=" . $row[id] . "\">";
  echo "Rediger</a> | <a href=\"?offset=" . $offset . "&deleteID=" . $row[id] . "\">";
  echo "Slet</a> | ".$row[title]. "<br />";
}
?>

Men skal $offset så ikke være $_GET['offset'] ?
Avatar billede syngredk Nybegynder
05. marts 2006 - 18:37 #12
Efter Fixxers forslag siger den følgende:

Herunder vises alle oprettede nyheder i databasen:

SELECT `id`, `title` FROM `news` ORDER BY `id` DESC LIMIT , 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
Avatar billede fixxxer Nybegynder
05. marts 2006 - 18:42 #13
Se det er jo fordi de to variabler, $offset og $cfg['limit'] er udefinerede.

Post dit script hvor du erklærer de 2 ovenstående variabler.
Avatar billede syngredk Nybegynder
05. marts 2006 - 18:45 #14
Det andet dokument hedder news.edit.php

<?php

require('../access/access_config.php');

$query = mysql_query("SELECT * FROM news WHERE id=".$_GET['id']."") or die(mysql_error());
$row = mysql_fetch_assoc($query);
?>

<h1>Rediger nyhed</h1>

<form method="post" action="news.config.php">
<input type="hidden" name="referer" value="news.edit">
<input type="hidden" name="id" value="<?php echo $_GET['id']; ?>">
<input type="hidden" name="offset" value="<?php echo $_GET['offset']; ?>">

Overskrift <input type="text" name="title" value="<?php echo $row['title']; ?>" style="width: 300px"><br>
Synopsis <textarea name="synopsis" rows="5" cols="0" style="width: 300px"><?php echo $row['synopsis']; ?></textarea><br><br>

Emne/Kategori<br><br>

Billede <input type="text" name="image" value="<?php echo $row['image']; ?>" style="width: 300px"><br><br>

Nyheden <textarea name="text" rows="10" cols="0" style="width: 300px"><?php echo $row['text']; ?></textarea><br><br>

<input type="submit" value="Send">

</form>

Og den går så igen ind i min news.config.php hvor ALLE nyhedsoplysninger samles til denne fil:

if ($_POST['referer'] == 'news.edit') {
    mysql_query("UPDATE news SET title='".$_POST['title']."', synopsis='".$_POST['synopsis']."', text='".$_POST['text']."', image='".$_POST['image']."' WHERE id=".$_POST['id']."") or die(mysql_error());
    header("Location: news.list.php?offset=".$_POST['offset']);
}
Avatar billede webudvikleren Nybegynder
05. marts 2006 - 18:47 #15
$query = mysql_query("SELECT `id`, `title` FROM `news` ORDER BY `id` DESC LIMIT $_GET[offset], $cfg[limit]") or die(mysql_error());

Og ved stadig ikke hvor du har $cfg["limit"] fra.
Avatar billede fixxxer Nybegynder
05. marts 2006 - 18:50 #16
$offset = ($_GET['offset'])?$_GET['offset']:0; //sæt offset
$cfg['limit'] = 5; //limit på 5

$query = mysql_query("SELECT `id`, `title` FROM `news` ORDER BY `id` DESC LIMIT ".$offset.", ".$cfg['limit']) or die(mysql_error());
Avatar billede syngredk Nybegynder
05. marts 2006 - 18:53 #17
fixxxer --> Hvilke dokumenter mener du det skal rettes i?
Avatar billede fixxxer Nybegynder
05. marts 2006 - 18:55 #18
Et skud i tågen ville være det dokument du i første omgang mener du har problemer med..

<?php

echo "<br><br>";

require('../access/access_config.php');
if (isset($_GET['deleteID'])) {
    mysql_query("DELETE FROM news WHERE id=".$_GET['deleteID']."") or die(mysql_error());
}

$query = mysql_query("SELECT id,title FROM news ORDER BY id DESC LIMIT ".$offset.",".$cfg['limit']."") or die(mysql_error());
echo '<ul>';
while ($row = mysql_fetch_assoc($query)) {

echo "<a href='news.edit.php?offset=".$offset."&id=".$row['id']."'>Rediger</a> | <a href='?offset=".$offset."&deleteID=".$row['id']."'>Slet</a> | ".$row[title]. "<br>";

}
?>
Avatar billede syngredk Nybegynder
05. marts 2006 - 18:56 #19
Fixxxer -->

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
- det er den fejl jeg får nu, efter at havde skrevet

$query = mysql_query("SELECT `id`, `title` FROM `news` ORDER BY `id` DESC LIMIT ".$offset.", ".$cfg['limit']) or die(mysql_error()); ---> Det er skrevet ind i news.list.php


$offset = ($_GET['offset'])?$_GET['offset']:0; //sæt offset
$cfg['limit'] = 5; //limit på 5
- ved ikke hvor du vil havde den henne?
Avatar billede fixxxer Nybegynder
05. marts 2006 - 18:57 #20
Bevares.. her en udgave rettet til med mine ændringer..:

<?php

echo "<br><br>";

require('../access/access_config.php');
if (isset($_GET['deleteID'])) {
    mysql_query("DELETE FROM news WHERE id=".$_GET['deleteID']."") or die(mysql_error());
}

$offset = ($_GET['offset'])?$_GET['offset']:0; //sæt offset
$cfg['limit'] = 5; //limit på 5

$query = mysql_query("SELECT id,title FROM news ORDER BY id DESC LIMIT ".$offset.",".$cfg['limit']) or die(mysql_error());
echo '<ul>';
while ($row = mysql_fetch_assoc($query)) {

echo "<a href='news.edit.php?offset=".$offset."&id=".$row['id']."'>Rediger</a> | <a href='?offset=".$offset."&deleteID=".$row['id']."'>Slet</a> | ".$row[title]. "<br>";

}
?>
Avatar billede syngredk Nybegynder
05. marts 2006 - 18:57 #21
Fixxxer, 05/03-2006 18:55:57 --> er ændret i dokumentet. Men giver samme fejl, som beskrevet i 05/03-2006 18:56:15
Avatar billede fixxxer Nybegynder
05. marts 2006 - 19:00 #22
Det skyldes nok at jeg blot henviste til hvilket original script, du skulle foretage ændringerne i.. Som du kan se 05/03-2006 18:57:19 har jeg skrevet et færdigt eksempel til dig..
Avatar billede syngredk Nybegynder
05. marts 2006 - 19:01 #23
Fixxxer --> 05/03-2006 18:57:19
Det hjalp, nu virker det således at jeg kan komme ind og rette enkle nyheder :-)
Avatar billede fixxxer Nybegynder
05. marts 2006 - 19:02 #24
Er dit oprindelige problem så løst?

I såfald vil jeg tillade mig at svare.
Avatar billede syngredk Nybegynder
05. marts 2006 - 19:04 #25
Fixxxer --> Takker, og jooh det er skam løst :-)

webudvikleren --> Tak for din hjælp også, selv om det var en anden som løste det.
Avatar billede webudvikleren Nybegynder
05. marts 2006 - 19:16 #26
Det er helt i orden
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