Bij het opvragen van een overzicht van een vacaturebank wordt de volgende foutmelding weergegeven:

FOUT: The SELECT would examine more rows than MAX_JOIN_SIZE. Check your WHERE and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is ok


SELECT *, DATE_FORMAT(geboortedatum, '%d') AS dag,
DATE_FORMAT(geboortedatum, '%m') AS maand, 
DATE_FORMAT(geboortedatum, '%Y') AS jaar FROM 
vacatures_werkzoekenden AS wz LEFT JOIN 
vacatures_wz_beroepscat AS wzcat 
ON wz.gebruikers_id=wzcat.gebruikers_id 
WHERE wz.tonen !='n' 
AND wzcat.cat_id IN ('2', '6', '29') 
AND wz.provincie IN ('Noord-Holland') 
AND wz.niveau IN ('Hoog') 
AND wz.geslacht IN ('man') 
GROUP BY wz.gebruikers_id


Sinds kort help ik een kennis met zijn website, hoofdzakelijk op layout gebied en CMS. Ik heb nauwelijks kennis van PHP-MySQL. Tot nu toe werkte de vacaturebank goed en bovenstaande foutmelding is nieuw. Ik ben de verschillende PHP scripts nagegaan en ook de documentatie van MySQL nagekeken maar kan niets vinden. Ik begrijp uit de foutmelding dat er een instelling aangepast moet worden.

De auteur van het script is met de noorderzon verdwenen. Wie kan helpen?

Ik ben tevens op zoek naar iemand die tegen een vergoeding scripts kan maken/aanpassen.
Haal in de SQL query, het * eens weg, volgens mij moet dat al een boel schelen. :)
(SELECT *, kolomnaam1, kolomnaam2) met * selecteer je alles al!
Robert, hartstikke bedankt voor de snelle reactie. Zoals gezegd is mijn kennis minimaal. Ik heb de diverse scripts doorgelopen:

vacatures_print.php

<?php
$query= "SELECT *, DATE_FORMAT(aangemaakt, '%d-%m-%Y') AS datum FROM vacatures WHERE vac_id='".$_GET["vacid"]."'";

$query3= "SELECT * FROM vacatures_werkgevers WHERE bedrijfs_id='". $row['bedrijf']."'";
$result3 = mysql_query($query3) or die("FOUT: " . mysql_error());

//vacatures.php

$query6= "SELECT *, DATE_FORMAT(aangemaakt, '%d-%m-%Y') AS datum FROM vacatures WHERE actief='y' ". $voorwaarde1." ".$voorwaarde2." ".$voorwaarde3. " ".$voorwaarde4." ORDER BY vac_id DESC LIMIT $start, $display";
$result6 = mysql_query($query6) or die("FOUT: " . mysql_error() . $query6);

$query3= "SELECT * FROM vacatures_werkgevers WHERE bedrijfs_id='". $row['bedrijf']."'";
$result3 = mysql_query($query3) or die("FOUT: " . mysql_error());

$query2= "SELECT * FROM vacatures_beroepscat where cat_id='".$categorie."'";
$result2 = mysql_query($query2) or die("FOUT: " . mysql_error());

$query5= "SELECT * FROM vacatures_beroepscat where cat_id='".$_GET["cat"]."'";
$result5 = mysql_query($query5) or die("FOUT: " . mysql_error());

//vacatures2.php

$query= "SELECT * FROM vacatures_opleiding";
$result = mysql_query($query) or die("FOUT: " . mysql_error() . $query);

$query= "SELECT * FROM vacatures_opleiding";
$result = mysql_query($query) or die("FOUT: " . mysql_error() . $query);

$query= "SELECT * FROM vacatures_provincies";
$result = mysql_query($query) or die("FOUT: " . mysql_error() . $query);

$query6= "SELECT *, DATE_FORMAT(aangemaakt, '%d-%m-%Y') AS datum FROM vacatures WHERE actief='y' ". $voorwaarde1." ".$voorwaarde2." ".$voorwaarde3. " ".$voorwaarde4." ORDER BY vac_id DESC";
$result6 = mysql_query($query6) or die("FOUT: " . mysql_error() . $query6);

$query3= "SELECT * FROM vacatures_werkgevers WHERE bedrijfs_id='". $row['bedrijf']."'";
$result3 = mysql_query($query3) or die("FOUT: " . mysql_error());

$query2= "SELECT * FROM vacatures_beroepscat where cat_id='".$categorie."'";
$result2 = mysql_query($query2) or die("FOUT: " . mysql_error());

$query4= "SELECT vac_id FROM vacatures WHERE actief='y'";
$result4 = mysql_query($query4) or die("FOUT: " . mysql_error() . $query);

$query5= "SELECT * FROM vacatures_beroepscat where cat_id='".$_GET["cat"]."'";
$result5 = mysql_query($query5) or die("FOUT: " . mysql_error());

$query4= "SELECT * FROM vacatures_contactpersoon WHERE contact_id='". $row['contact']."'";
$result4 = mysql_query($query4) or die("FOUT: " . mysql_error());

//vacaturessenior.php

$query2="SELECT * FROM computers LIMIT 0,1 WHERE computers.opdrachtnummer=opdrachten.id";
$result = mysql_query($query) or die("FOUT: " . mysql_error());
?>

Betekent dit dat ik het * in:

$query= "SELECT *, DATE_FORMAT(aangemaakt, '%d-%m-%Y') AS datum FROM vacatures WHERE vac_id='".$_GET["vacid"]."'";

gewoon kan weghalen?

Ik neem aan dat ik het * in:

$query3= "SELECT * FROM vacatures_werkgevers WHERE bedrijfs_id='". $row['bedrijf']."'";

gewoon moet laten staan?
Je moet het * niet zomaar weghalen, je moet het vervangen door de namen van de kolommen die je wilt selecteren.

Selecteer bij een mysql query altijd alleen de kolommen die je ook daadwerkelijk gaat gebruiken, de rest heb je immers niet nodig.
Heb je gelijk in Blanche, * moet je vervangen door de kolomen die je gebruikt in de rest van het script.. Voor de rest moet je ze eigenlijk wel laten staan..
Vaak scheelt dat al, en helemaal bij die JOINS die jij gebruikt in je script. Je voegt meerdere tabellen samen en selecteerd echt ALLE kolomen, terwijl ik zeker weet dat er minimaal 1 kolom tussenzit die je niet gebruikt in je script..
Is er iemand die dit voor mij kan doen? Mijn kennis is dermate nihil dat ik hier niet aandurf. Natuurlijk kunnen we er een vergoeding voor afspreken.

Alvast bedankt voor jullie steun.
Peter
Mijn kennis is dermate nihil dat ik hier niet aandurf.
Een database bijt echt niet hoor!

En uiteraard werk je op een testomgeving waar je zonder enige gevolgen met de data kunt rommelen. Een backup heb je uiteraard ook bij de hand.

Kortom, ga eens aan de slag en probeer eens wat. Daar leer je het meeste van.
Inderdaad en ik snap je "drempel" maar als je daarover bent wow dan gaat er een wereld voor je open en kan je alles wat je wenst/wilt maken :)

PS dit waren eens de woorden van mijn 'school-maatje Niels' ..... enne....Niels jongen je had/hebt gelijk!!!!
Bedankt voor jullie motivatie en steun. Ik ben de gehele dag bezig geweest het een en ander proberen op te lossen en dat is me dus niet gelukt. Waarschijnlijk lossen jullie dit probleem zo op. Ik ben jaloers op jullie, ik zou willen dat ik dat zo zou kunnen.

Heb hier uiteraard weer van geleerd. Heb ook bij vacatures een oproep geplaatst voor help. Vergoeding is over te praten. Hier zijn de reacties tot nu toe ook nihil.

Dus ik denk dat ik een andere oplossing moet gaan zoeken.

Nogmaals bedankt.

Reageren