krijg deze fout als ik op de site naar pagina 2 wil gaan : res1: 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

code :

<?php
require("connect.php"); // maak verbinding met de database


$res1 = mysql_query("SELECT COUNT(product_id) FROM produkten WHERE soort =$HTTP_GET_VARS[id]") or die("res1: ".mysql_error()); // vraag het AANTAL items op
$items_totaal = mysql_result($res1, 0); // het totaal aantal items
mysql_free_result($res1); // geef het resultaat vrij

$items_per_pagina = 6; // vrij te kiezen
$aantal_paginas = ceil($items_totaal / $items_per_pagina); // het aantal items per pagina

// de huidige pagina opvragen
$huidige_pagina = 0; // default
if(isset($_GET['p']) && is_numeric($_GET['p']) && $_GET['p'] > 0 && $_GET['p'] < $aantal_paginas) {
$huidige_pagina = $_GET['p'];
}

// items van de huidige pagina ophalen
$offset = $huidige_pagina * $items_per_pagina;
$res2 = mysql_query("SELECT * FROM `produkten` WHERE `soort` =$HTTP_GET_VARS[id] ORDER BY product_id ASC LIMIT ".$offset.","
.$items_per_pagina) or die("res2:". mysql_error());

$aantalFotos = mysql_num_rows($res2);
</php>
Steve schreef op 07.10.2009 13:25
... to use near '' at line ...

Oftewel: Er is iets leeg.

Zet dit bovenin je script.
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);

// rest
?>

Je script in je post is nu niet echt leesbaar. Pas je post even aan en gebruik [ignore]
 en 
[/ignore] tags om je code heen. Om php code zet je uiteraard dit:<?php en ?>Gebruik je knop om dit te doen.

SanThe.
<?php
$sQuery = "SELECT COUNT(product_id) AS aantal FROM produkten WHERE soort = ".(int)$_GET['id'];
$sResult = mysql_query($sQuery);

if($sResult) {
if(mysql_num_rows($sResult) > 0) {
$sRij = mysql_fetch_assoc($sResult);

$items_per_pagina = 6;
$aantal_paginas = ceil($sRij['aantal']/$items_per_pagina);

$huidige_pagina = 0;
if(isset($_GET['p']) && is_numeric($_GET['p']) && $_GET['p'] > 0 && $_GET['p'] < $aantal_paginas) {
$huidige_pagina = $_GET['p'];
}

$offset = $huidige_pagina * $items_per_pagina;

$pQuery = "SELECT * FROM produkten WHERE soort = ".(int)$_GET['id']." ORDER BY product_id ASC LIMIT ".$offset.",".$items_per_pagina;
$pResult = mysql_query($pQuery);

if($pResult) {
$aantalFotos = mysql_num_rows($pResult);
} else {
echo mysql_error().' in query: '.$pQuery;
}
} else {
echo 'Geen records gevonden.';
}
} else {
echo mysql_error().' in query: '.$sQuery;
}
?>

Vergelijk mijn en jouw script eens.
heb deze code (volledig)

<?php
require("connect.php"); // maak verbinding met de database
$res1 = mysql_query("SELECT COUNT(product_id) FROM `produkten` WHERE `soort` = $HTTP_GET_VARS[soort]") or die("res1: ".mysql_error()); // vraag het AANTAL items op
$items_totaal = mysql_result($res1, 0); // het totaal aantal items
mysql_free_result($res1); // geef het resultaat vrij

$items_per_pagina = 6; // vrij te kiezen
$aantal_paginas = ceil($items_totaal / $items_per_pagina); // het aantal items per pagina

// de huidige pagina opvragen
$huidige_pagina = 0; // default
if(isset($_GET['p']) && is_numeric($_GET['p']) && $_GET['p'] > 0 && $_GET['p'] < $aantal_paginas) {
$huidige_pagina = $_GET['p'];
}

// items van de huidige pagina ophalen
$offset = $huidige_pagina * $items_per_pagina;
$res2 = mysql_query("SELECT * FROM `produkten` WHERE `soort` = $HTTP_GET_VARS[soort] ORDER BY product_id ASC LIMIT ".$offset.","
.$items_per_pagina) or die("res2:". mysql_error());

$aantalFotos = mysql_num_rows($res2);

echo "<table width=\"505\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";
for($i=0;$i<$aantalFotos;$i+=2){
echo "<tr>";
$bKolomWisselaar = true;
for($j=0;$j<2;$j++){
if(($i+$j) >= $aantalFotos){
$foto = "foto/empty.gif";
}
else{
$naam=mysql_result($res2,$i+$j,"naam");
$merk=mysql_result($res2,$i+$j,"merk");
$foto=mysql_result($res2,$i+$j,"foto");
$omschrijving=mysql_result($res2,$i+$j,"omschrijving");
$product_id=mysql_result($res2,$i+$j,"product_id");
$soort=mysql_result($res2,$i+$j,"soort");
}
echo "<td width=250 align='center'>";
if (isset($foto) && isset($product_id)){
if(($i+$j) >= $aantalFotos){
echo "<img src='".$foto."'>";
}else{
echo "
<table cellpadding='0' cellspacing='0' border='0' width='250'>
<tr>
<td bgcolor='white' valign='top'><font face='Verdana' size='-2' color='#FFFFFF'><img src='$foto' alt='' border='0' height='110'></td>
<td bgcolor='white' valign='top'><font face='Verdana' size='-2' color='#437F87'><strong>
$merk
<br>$naam</strong>
<hr width='180' size='1' align='left'>
$omschrijving</td>
</tr>
</table>
";
}
}
echo "</td>";
if($j<(5-1)){
if($bKolomWisselaar){
echo "<td width='5'>&nbsp;</td>";
$bKolomWisselaar = false;
}
else{
echo "<td width='5'>&nbsp;</td>";
$bKolomWisselaar = true;
}
}
}
echo "</tr>";
echo "<tr><td colspan='3' height='5'></td></tr>";
}
echo "</table>";



// resultaten vrijgeven
mysql_free_result($res2);



// navigatie
// scriptnaam + de querystring, met uitzondering van de navigatie-variabele
for($i = 0; $i < $aantal_paginas; $i++) {
if($huidige_pagina == $i) {
// huidige pagina is niet klikbaar
echo "<font face='Verdana' size='-2' color='#ffffff'><b>".($i+1)."</b>";
} else {
// een andere pagina
echo "<a href=\"".$_SERVER['PHP_SELF']."?p=".$i."\"><font face='Verdana' size='-2' color='#ffffff'><u>".($i+1)."</u></a>";
}
// deel-streepje tussen alle items
if($i < $aantal_paginas - 1) {
echo " - ";
}
}
?>

Fout is dus als ik meer dan 6 producten heb en ik op pagina 2 klik van de navigatie :

Notice: Undefined index: soort in D:\inetpub\wwwroot\***\***account\***.be\www\lijst.php on line 115
res1: 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

Link komt van produkten.php : a href='lijst.php?soort=$soort_id'


als ik in mijn code "WHERE `soort` = $HTTP_GET_VARS[soort]" weglaat lukt het perfect dus zit het volgens mij hier!

Gelieve Niet Bumpen:

Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de knop om je tekst aan te passen.

SanThe.
SanThe schreef op 07.10.2009 13:40
[quote='Steve schreef op 07.10.2009 13:25']... to use near '' at line ...

Oftewel: Er is iets leeg.[/quote]
Die 'soort' bestaat nergens dus je query heeft 'iets' leeg.
Waarom gebruik je niet gewoon $_POST of $_GET? En check of die variabele bestaat, met isset ().
gevonden

<a href=\"".$_SERVER['PHP_SELF']."?soort=".$soort."&p=".$i."\">
ipv
<a href=\"".$_SERVER['PHP_SELF']."?p=".$i."\">
Ja, joh. Sla hulp maar af. Zo leer je nooit fatsoenlijk te scripten.
ik sla toch geen hulp af... heb gewoon verder zitten proberen en opeens lukte het wel - het was dus leeg

Maar je volgt advies niet van andere mensen..

Reageren