Unknow column? Dacht het niet...
=============
connect.php
=============
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?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());
?>
$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
=============
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?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());
?>
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...
Code (php)
1
2
2
SELECT * FROM producten WHERE cat=Velgen ORDER BY ID
Unknown column 'Velgen' in 'where clause'
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
Gewijzigd op 01/01/1970 01:00:00 door Johan
Quote:
Ben ik '' of "" vergeten?
Inderdaad
Moet werken.
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.
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
Code (php)
1
<? $query = "SELECT DISTINCT ID,productnaam,cat,prodcat,info,opmerking,prijs,prijs_oud,aanbieding FROM producten WHERE prodcat='$prodcat' ORDER BY productnaam"; ?>
en
Code (php)
1
<? $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.
retouneerd niets!
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.
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.
Mijn link in de browser is:
..../producten_detail.php?prodcat=OZ%20Racing
In mijn tabel staat in de kolom prodcat OZ Racing.
Hij vindt niets. Ligt dat aan de %20, of moet hij de spatie gewoon herkennen? Ik weet dat %20 in de URL voor spatie staat, maar kan dit een probleem zijn / veroorzaken?
Gewijzigd op 01/01/1970 01:00:00 door Johan
Ik weet niet waarom je OZ Racing en MAK maar 1 keer geslecteerd wilt hebben, heb je daar nog een bepaald criterium voor?
Blanche:
Ik weet niet waarom je OZ Racing en MAK maar 1 keer geslecteerd wilt hebben, heb je daar nog een bepaald criterium voor?
Het is al opgelost. Boven jouw vraag staat een korte nieuwe vraag :-)
In welke mysql query heb je die GET variabele staan? In principe worden die %20 tekens gewoon gelezen als spatie door php...
De $_GET functie op producten_detail.php
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
include("connect.php");
$cat = $_GET['prodcat'];
$query = "SELECT * FROM producten WHERE prodcat='$prodcat' ORDER BY productnaam";
$result = mysql_query($query,$connect) or die($query."<BR>".mysql_error());
?>
include("connect.php");
$cat = $_GET['prodcat'];
$query = "SELECT * FROM producten WHERE prodcat='$prodcat' ORDER BY productnaam";
$result = mysql_query($query,$connect) or die($query."<BR>".mysql_error());
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
include("connect.php");
$cat = $_GET['prodcat'];
$query = "
SELECT *
FROM producten
WHERE prodcat = '".$cat."'
ORDER BY productnaam
";
$result = mysql_query($query,$connect) or die($query."<BR>".mysql_error());
?>
include("connect.php");
$cat = $_GET['prodcat'];
$query = "
SELECT *
FROM producten
WHERE prodcat = '".$cat."'
ORDER BY productnaam
";
$result = mysql_query($query,$connect) or die($query."<BR>".mysql_error());
?>
Haal tevens je variabelen altijd buiten de quotes.
Bedankt man!