Hallo,

ik heb een zoekveld op mijn site. ik zoek in meerdere tabellen maar het lukt mij niet om dat in 1 query te zetten. Nu heb ik dit opgelost door voor elke tabel een aparte pagina te maken. deze pagina's include ik dan bij elkaar in 1 pagina en zo wordt alles netjes weergegeven. nu is alleen het probleem dat als hij niks kan vinden wil ik dat hij zegt geen resultaten gevonden. Ik dacht zelf dat als ik bij de zoekpagina's een if statement neer zet met als rsultaat 0 is dat hij dan een variabel aanmaak. deze roep ik dan allemaal op in de resultaten pagina zodat hij kan zeggen of hij geen resultaten heeft.
zal even de codes neer zetten.


<?php
//dit is de code voor de zoekpagina, zo heb ik er vier voor vier verschillende tabellen
$rks_s1 = "vierkleuren";
		$SQL_s1 = 	"SELECT id, nummer, titel, jaar, IF (users_id IS NULL, 0, 1) AS heb_ik FROM ".$rks_s1." LEFT JOIN users_reeksen ON( ".$rks_s1."_id = id AND users_id = ".$_SESSION['user_id'].") WHERE titel LIKE '%" . $zoekterm . "%'";
 		$result_s1 = mysql_query($SQL_s1);
		
		if(mysql_num_rows($result_s1) == 0){
			//hier is dan de variabel
                        $leeg = "leeg";
			}else{ 

//hier is dan de resultaten pagina
                include('zoek_vierkleuren.php');
		include('zoek_blauw.php'); 
		include('zoek_vl_ongekleurd.php'); 
	        include('zoek_vl_twee_kleuren.php'); 
		
                //hier wil ik dus 4 variabelen terug laten komen voor als ze allemaal niks op leveren
		if($leeg, $leeg2 == 0){
		If ($leeg = "leeg"){
		 echo $leeg;
		 }else{
		 echo "wel";
		}
		
?>


Ik snap dat dit niet de schoonheidsprijs verdien (denk ik). als er betere suggesties zijn dan hoor ik dat uiteraard graag.

groeten
Inderdaad alles in 1 query gooien.

Nu snap ik niet wat die kleuren inhouden (vierkleuren, blauw, ongekleurd, twee_kleuren), maar het ruikt naar een zeer slecht opgezette database.

Als je producten hebt in verschillende varianten, moet het in 1 tabel!
Nu heb je er (waarschijnlijk) 4: een per combinatie.
Maar dat is dus echt fout.

En dan lukt het inderdaad niet met 1 query.

Geef eens een print-screen van je tabel(len) vanuit phpMyAdmin oid.
die kleuren zijn de namen van de php files het zijn niet de namen van mijn db. Ik heb meerdere tabellen omdat ik dat niet kan zetten in 1 tabel. dat is veels te veel. nu zijn het er nog maar 4 maar dat worden er wel 20. elke tabel heeft 8 velden. Als ik dat allemaal in 1 tabel moet gaan zetten dan zit ik op 160 velden in 1 tabel. Ik heb mijn tabellen naar mijn weten zo ver mogelijk geoptimaliseerd. Maar de vraag is dan hoe kan ik het dan het beste oplossen? Is mijn idee niet haalbaar dan?

Het feit dat er meer tabellen bij moeten komen als er meer producten komen geeft maar 1 ding aan: GEEN NORMALISATIE.
Laat Ger van Steenderen het maar niet horen :D

Je moet echt met koppeltabellen gaan werken.

TABEL PRODUCTEN:
id, naam, mouwen_id, maat_id

TABEL MOUWEN
id, mouwtype (keuze van: geen, kort, lang, gevouwen etc)

TABEL maat
id, XS
id, S
id, M
id, L
id, XL (etc)

Geen tientallen/honderden kolommen maken. Koppelen.
Wordt geavanceerder, maar daardoor ook kleiner. Vergelijk de eerste computer maar met de modernste telefoon...

Reageren