Lid |
|
Yeah maar....
dat geld voor de gevonden resultaten die voldoen aan de voorwaardes... maar ik wil ook de resterende weergeven
Ik zal mijn query laten zien ;)
// email en wachtwoord uit elkaar halen
$data = explode(":", $_COOKIE['mijnSite']);
// op geldigheid controleren
$query = mysql_query('select id FROM site_accounts
WHERE
email = "'.mysql_real_escape_string($data[0]).'"
AND
wachtwoord = "'.mysql_real_escape_string($data[1]).'"') or die(mysql_error());
$rows = mysql_num_rows($query);
if($rows == 1)
{
// er is ingelogd met een geldig account nu ads ophalen aan de
// hand van voorkeuren van deze account
$query = mysql_query('SELECT steden, doelgroep, soort FROM site_accounts
WHERE
email = "'.mysql_real_escape_string($data[0]).'"
AND
wachtwoord = "'.mysql_real_escape_string($data[1]).'"');
$fetch = mysql_fetch_assoc($query);
$steden = $fetch['steden'];
$doelgroep = $fetch['doelgroep'];
$soort = $fetch['soort'];
// nu we de voorkeurs steden, doelgroep en soort hebben dit in een array plaatsen
// zodat we weten hoeveel elk is en deze per in de query kunnen verwerken
$steden = explode(",", $steden);
$doelgroep = explode(",", $doelgroep);
$soort = explode(",", $soort);
$aantal_steden = count($steden);
$aantal_doelgroep = count($doelgroep);
$aantal_soort = count($soort);
$set = 'SELECT * FROM site_advertenties';
// kijken of we "WHERE" moeten toevoegen
if($aantal_steden >= 1){
$set .= ' WHERE ';
} elseif($aantal_doelgroep >=1){
$set .= ' WHERE ';
} elseif($aantal_soort >= 1){
$set .= ' WHERE ';
}
// soort toevoegen
$soort_i = 1;
foreach($soort as $value)
{
if($soort_i < $aantal_soort){
$set .= ' categorie LIKE "%'.$value.'%" OR ';
} else {
$set .= ' categorie LIKE "%'.$value.'%" ';
}
$soort_i++;
}
// als steden niet leeg was dan prefix toevoegen
if($aantal_soort >= 1){
$set .= ' AND ';
}
// steden toevoegen
$steden_i = 1;
foreach($steden as $value)
{
if($steden_i < $aantal_steden){
$set .= ' plaats LIKE "%'.$value.'%" OR ';
} else {
$set .= ' plaats LIKE "%'.$value.'%" ';
}
$steden_i++;
}
// als doelgroep niet leeg was dan prefix toevoegen
if($aantal_doelgroep >= 1){
$set .= ' AND ';
}
// steden toevoegen
$doelgroep_i = 1;
foreach($doelgroep as $value)
{
if($doelgroep_i < $aantal_doelgroep){
$set .= ' doelgroepen LIKE "%'.$value.'%" OR ';
} else {
$set .= ' doelgroepen LIKE "%'.$value.'%" ';
}
$doelgroep_i++;
}
$set .= ' GROUP BY titel ORDER BY id DESC LIMIT 1000';
$query = mysql_query($set) or die(mysql_error());
}
// email en wachtwoord uit elkaar halen $data = explode(":", $_COOKIE['mijnSite']); // op geldigheid controleren WHERE AND if($rows == 1) { // er is ingelogd met een geldig account nu ads ophalen aan de // hand van voorkeuren van deze account $query = mysql_query('SELECT steden, doelgroep, soort FROM site_accounts WHERE AND $steden = $fetch['steden']; $doelgroep = $fetch['doelgroep']; $soort = $fetch['soort']; // nu we de voorkeurs steden, doelgroep en soort hebben dit in een array plaatsen // zodat we weten hoeveel elk is en deze per in de query kunnen verwerken $doelgroep = explode(",", $doelgroep); $aantal_steden = count($steden); $aantal_doelgroep = count($doelgroep); $aantal_soort = count($soort); $set = 'SELECT * FROM site_advertenties'; // kijken of we "WHERE" moeten toevoegen if($aantal_steden >= 1){ $set .= ' WHERE '; } elseif($aantal_doelgroep >=1){ $set .= ' WHERE '; } elseif($aantal_soort >= 1){ $set .= ' WHERE '; } // soort toevoegen $soort_i = 1; foreach($soort as $value) { if($soort_i < $aantal_soort){ $set .= ' categorie LIKE "%'.$value.'%" OR '; } else { $set .= ' categorie LIKE "%'.$value.'%" '; } $soort_i++; } // als steden niet leeg was dan prefix toevoegen if($aantal_soort >= 1){ $set .= ' AND '; } // steden toevoegen $steden_i = 1; foreach($steden as $value) { if($steden_i < $aantal_steden){ $set .= ' plaats LIKE "%'.$value.'%" OR '; } else { $set .= ' plaats LIKE "%'.$value.'%" '; } $steden_i++; } // als doelgroep niet leeg was dan prefix toevoegen if($aantal_doelgroep >= 1){ $set .= ' AND '; } // steden toevoegen $doelgroep_i = 1; foreach($doelgroep as $value) { if($doelgroep_i < $aantal_doelgroep){ $set .= ' doelgroepen LIKE "%'.$value.'%" OR '; } else { $set .= ' doelgroepen LIKE "%'.$value.'%" '; } $doelgroep_i++; } $set .= ' GROUP BY titel ORDER BY id DESC LIMIT 1000'; }
Je ziet dat ik nu alles wat aan de voorwaarden voldoet geselecteerd heb. Echter wil ik ook alles wat niet aan deze voorwaarden voldoet laten zien aan een gesloten achter de resultaten die wel voldoen. |