Ik heb een hele rare fout. En ik kom er niet uit, omdat hij gewoon klopt. Hier even kort mijn scriptjes:

=============
connect.php
=============

<?php
$dbserver="localhost";
$dbuser="...";
$dbpwd="...";
$connect = mysql_connect($dbserver,$dbuser,$dbpwd) or die("Kan geen verbinding met Mysql maken");
mysql_select_db("lonerdesign",$connect) or die(mysql_error());
?>

=============
Producten_cat.php
=============

<?php
include("connect.php");

$cat = $_GET[cat];
$query = "SELECT * FROM producten WHERE cat=$cat ORDER BY ID";
$result = mysql_query($query,$connect) or die($query."<BR>".mysql_error());
?>

en hier een stukje uit mijn tabel:
http://img135.imageshack.us/img135/7555/tabelproductensu7.jpg

En nu de error...


SELECT * FROM producten WHERE cat=Velgen ORDER BY ID
Unknown column 'Velgen' in 'where clause'


Raar hè...
In mijn tabel producten, staat een rij cat met daarin Velgen. Wanneer ik de cat met een echo oproep, geeft hij wél gewoon het woord Velgen weer. Raar man... Ik snap het niet. Hij ziet af wat hij af moet beelden, maar toch geeft hij de pagina niet weer.

Kent iemand dit rare probleem? Ben ik '' of "" vergeten? Ik snap het niet helemaal meer... Heb alles geprobeerd...

Gr Johan

Ben ik '' of "" vergeten?

Inderdaad

<?php
$query = "SELECT * FROM producten WHERE cat='".$cat."' ORDER BY ID";
?>

Moet werken.
Grote letters?

probeer eens 'Velgen' ipv Velgen
Voor de volgende keer: het woord "column" betekent kolom (dat wist je al) en verwijst naar de kolom zelf en niet de waarde van een kolom. Aangezien Velgen geen kolom is maar een waarde, weet je dus dat er een syntaxerror is, anders heeft ie het niet over een kolom. Oplossing is inderdaad gewoon aanhalingstekens.
Thnx guys! Het is gelukt!

Echter heb ik nu nog een vraagje. In de cat Velgen staan nu een paar keer OZ Racing en MAK. Echter wil ik ze niet allemaal weergeven, maar slechts 1x OZ en 1x MAK. Kan ik mijn query of while lus aanpassen, zodat hij alleen 1x pakt, en de dubbele weglaat?

Bedankt voor de reacties!
SELECT DISCTINT(jouwding) FROM jouwtabel
<? $query = "SELECT DISTINCT ID,productnaam,cat,prodcat,info,opmerking,prijs,prijs_oud,aanbieding FROM producten WHERE prodcat='$prodcat' ORDER BY productnaam"; ?>

en

<? $query = "SELECT DISTINCT FROM producten WHERE prodcat='$prodcat' ORDER BY productnaam"; ?>

werken beide niet. Zo heb ik het gelezen dat het moet. Beide retouneren weer dubbele merknamen. Gebruik ik de functie goed? Volgens meerdere handleidingen is dit volgens mij de manier.
en

<? $query = "SELECT DISTINCT cat FROM producten WHERE cat='$cat' ORDER BY ID"; ?>

retouneerd niets!
SELECT DISTINCT geeft alle van elkaar verschillende sets met resultaten terug. Maar als jij dus meerdere velden selecteerd, zullen alle verschillende combinaties van die velden 1x geretourneerd worden.

Probeer SELECT DISTINCT maar eens op 1 kolom in je tabel. Je zult zien dat als er dubbele records in die kolom staan, ze ook maar 1x weergegeven worden.
Maar ik heb wel alle kolommen nodig, dus ik moet ze wel selecteren. Als ik alleen DISTINCT productnaam ofzo doe, dan krijg ik de rest niet geretourneerd.
Hehe, je hebt wel alle kolommen nodig en er zijn meerdere rijen met daarin OZ Racing en MAK.

Hier zit het probleem waar je tegen aanloopt en wat MYSQL dus ook niet toestaat: hoe ga je bepalen welke rijen je wel en niet wilt selecteren als je maar 1x een rij met OZ Racing en 1x een rij met MAK wilt ophalen.

Reageren