Record uit vorig statement gebruiken in een nieuw statement lijkt niet te werken.

  • Onderwerp starter Onderwerp starter 3svb
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

3svb

Gebruiker
Lid geworden
21 aug 2006
Berichten
35
Eerst en vooral sorry voor het omslachtige onderwerp .. ik wist niet goed hoe het te formuleren.
Het zit zo:

Ik heb voor mezelf een film bibliotheek geschreven in PHP.
Een pagina wordt getoond waarop alle titels staan die uit een database gelezen worden.
Elke titel is ook een link waarmee ik het ID mee doorstuur naar een volgende pagina.
Op die volgende pagina wordt gebruik gemaakt met de $_GET om het ID op te vangen en zo de juiste gegevens uit te lezen.

Dit alles werkt perfect.

Nu wil ik onderaan de gegevens van de film een tabel waarin ik alle films laat zien met hetzelfde genre.

Ik had dit in gedachten maar het lijkt niet te werken.

PHP:
<? 
$query = mysql_query("SELECT * FROM dvd WHERE genre LIKE " . $film['genre'] . ";") or die (mysql_error()); 
?>
<table width='300px' border='0'>
	<tr>
		<td bordercolor="#333333" bgcolor="#CCCCCC" border="1">FILM</td>
		<?php
		while($rij = mysql_fetch_array($query)) {
		?>
	</tr>
	<tr>
		<td>
		<a href="adminMoviesFilm.php?id=<? echo $rij['id'];?>"><?php echo $rij['naam']; ?></a><br />
		</td>
	</tr>
		<?php
		}
		?>
</table>

$film['genre'] haal ik uit een vorig statement.

Deze foutmelding krijg ik bij een film met genre 'Komedie'.

Unknown column 'Komedie' in 'where clause'

Weet iemand een oplossing of een alternatief ?

Alvast bedankt!
 
Die foutmelding gaat over je eerdere query, en betekent dat de kolom 'Komedie' simpelweg niet bestaat.
 
Uit de foutmelding kan ik opmaken dat het zoekcriterium wel degelijk 'meegegeven' wordt (Komedie).
Echter, als de kolom "genre" een tekstveld (dus geen getal) dan moet het zoekcriterium tussen enkele aanhalingstekens geplaatst worden.
PHP:
<? 
$query = mysql_query("SELECT * FROM dvd WHERE genre LIKE '" . $film['genre'] . "';") or die (mysql_error()); 
?>
Let op het enkele aanhalingsteken achter "LIKE" en verderop voor de ";"
Verder begrijp ik eigenlijk niet goed waarom je een "LIKE" gebruikt!
Volgens mij is "=" hier beter op zijn plaats...

Groetjes,
JHx
 
Die foutmelding gaat over je eerdere query, en betekent dat de kolom 'Komedie' simpelweg niet bestaat.

Eerlijk gezegd begrijp ik ook niet goed waarom $film['genre'] (die blijkbaar de waarde 'Komedie' bevat) in de WHERE-clausule als colomn beschouwd word
 
Uit de foutmelding kan ik opmaken dat het zoekcriterium wel degelijk 'meegegeven' wordt (Komedie).
Echter, als de kolom "genre" een tekstveld (dus geen getal) dan moet het zoekcriterium tussen enkele aanhalingstekens geplaatst worden.
PHP:
<? 
$query = mysql_query("SELECT * FROM dvd WHERE genre LIKE '" . $film['genre'] . "';") or die (mysql_error()); 
?>
Let op het enkele aanhalingsteken achter "LIKE" en verderop voor de ";"
Verder begrijp ik eigenlijk niet goed waarom je een "LIKE" gebruikt!
Volgens mij is "=" hier beter op zijn plaats...

Groetjes,
JHx

Bedankt!!! De enkele quotes deden het.
Ivm "LIKE", die stond er nog van toen ik de fout aan het zoeken was. Opzich speelt dit niet voor rol denk ik ... Alvast allemaal bedankt !
Weer iets bijgeleerd waarop ik moet letten.
 
Geinig, debuggen met een LIKE-operator.
 
... Ivm "LIKE", die stond er nog van toen ik de fout aan het zoeken was. Opzich speelt dit niet voor rol denk ik ...

Dat zal idd ook werken...
Voor de 'puristen' : "=" zal wel sneller werken:)
 
Ik vraag me af of dit jouw wel een goede tabel oplevert.

Lijkt mij dat ie wat uit z'n verband wordt getrokken.
 
Ik bekom de goede tabel ...

Nu toonde hij wel ook de film die reeds getoond werd.
Mijn statement een beetje aangepast.

Hier het werkende script.

PHP:
<? 
$query = mysql_query("SELECT * FROM dvd WHERE genre = '" . $film['genre'] . "' AND naam <> '" . $film['naam'] . "';") or die (mysql_error()); 
?>
<table width='300px' border='0'>
	<tr>
		<td bordercolor="#333333" bgcolor="#CCCCCC" border="1">FILM MET HETZELFDE GENRE</td>
	</tr>
   	 <?php
		while($rij = mysql_fetch_array($query)) {
		?>
	<tr>
		<td>
			<a href="adminMoviesFilm.php?id=<? echo $rij['id'];?>"><?php echo $rij['naam']; ?></a><br />
		</td>
	</tr>
		<?php
		}
		?>
</table>
 
Ik zie dat je nu de tabel hebt aangepast.

Eerst had je nog een </tr> binnen de WHILE lus, daardoor zou jouw tabel scheef gaan lopen. Aangezien je dat nu hebt gefixt is het logisch dat hij nu goed wordt weergegeven :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan