I have been working on hours with this one, but it's time to get a second pair of eyes to look at it....
I have this mySQL-query:
SELECT
vaktliste.id AS id,
brukere.navn AS bruker,
steder.navn AS sted,
vaktliste.start AS vl_start,
vaktliste.slutt AS vl_slutt,
timeliste.start AS tl_start
FROM brukere, steder, vaktliste
LEFT JOIN timeliste
ON timeliste.sted=vaktliste.sted
AND timeliste.bruker=vaktliste.bruker
AND DATE(timeliste.start)=DATE(vaktliste.start)
WHERE brukere.id=vaktliste.bruker
AND steder.id=vaktliste.sted
AND timeliste.start IS NULL
AND vaktliste.firma=15
AND vaktliste.bruker = 381
AND MONTH(vaktliste.start) = 6
AND YEAR(vaktliste.start) = 2016
ORDER BY vaktliste.start ASC, brukere.navn
When "run through" a browser, it gives no result, but in phpMyAdmin, it get a result.
When I remove the ORDER BY, I get a result in the browser aswell...
Can anyone tell me why the ORDER BY line is messing up the query?
This is some code from the PHP-file producing the query:
echo("<table id=\"ansatt_tabell\" class=\"ui unstackable celled table\">
<thead>
<tr>
<th>Ansatt</th>
<th>Kunde</th>
<th>Dato</th>
<th>Start</th>
<th>Slutt</th>
<th></th>
</tr>
</thead>
<tbody>");
//Til sammenlangt
$timer_totalt = 0;
$kilometer_totalt = 0;
//Kobler til mySQL-databasen
include("../koble_til_db.php");
//Kjører spørring
$query = "SELECT vaktliste.id AS id, brukere.navn AS bruker, steder.navn AS sted, vaktliste.start AS vl_start, vaktliste.slutt AS vl_slutt, timeliste.start AS tl_start FROM brukere, steder, vaktliste LEFT JOIN timeliste ON timeliste.sted=vaktliste.sted AND timeliste.bruker=vaktliste.bruker AND DATE(timeliste.start)=DATE(vaktliste.start) WHERE brukere.id=vaktliste.bruker AND steder.id=vaktliste.sted AND timeliste.start IS NULL AND vaktliste.firma=$firma";
//Sorterer i henhold til bokser over
if($timeliste_ansatt != 0){
$query = $query . " AND vaktliste.bruker = $timeliste_ansatt";
}
if($timeliste_sted != 0){
$query = $query . " AND vaktliste.sted = $timeliste_sted";
}
if($timeliste_maaned != 0){
$query = $query . " AND MONTH(vaktliste.start) = $timeliste_maaned";
}
if($timeliste_aar != 0){
$query = $query . " AND YEAR(vaktliste.start) = $timeliste_aar";
}
$query = $query . " ORDER BY vaktliste.start ASC, brukere.navn ASC";
$result = mysqli_query($connect, $query);
while($newArray = mysqli_fetch_array($result)){
$id = $newArray['id'];
$bruker = $newArray['bruker'];
$sted = $newArray['sted'];
$start = $newArray['vl_start'];
$start_dato = date('d.m.y', strtotime($start));
$start_tid = date('H:i', strtotime($start));
$slutt = $newArray['vl_slutt'];
$slutt_tid = date('H:i', strtotime($slutt));
//Innhold tabell
echo("<tr>
<td>$bruker</td>
<td>$sted</td>
<td class=\"center aligned\">$start_dato</td>
<td class=\"center aligned\">$start_tid</td>
<td class=\"center aligned\">$slutt_tid</td>
<td class=\"collapsing center aligned\"><div class=\"mini ui green basic button\" onClick=\"adm_timeliste_overfor(this, $id)\">Registrer timer</div></td>
</tr>");
}//while
//Avslutter tabell
echo("</tbody>
The error message received was:
The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET MAX_JOIN_SIZE=# if the SELECT is okay