Hallo,
ik probeer uit mijn database een beroep te halen uit collumn "beroepen" en dat werkt. Maar nu wil ik extra filteren op een specialisatie uit de collumn "specialisaties". Ik heb onderstaande code die werkt tot //Extra filter op specialisatie, maar in zijn totaliteit werkt het niet op deze manier. Kan iemand mij zeggen wat ik verkeerd doe? Bedankt.
$sql = "SELECT id, member, beroep, specialisatie FROM users WHERE land = $keuzeland AND doelgroep = '$keuzedoelgroep' ORDER BY plaatsprakt";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc())
{
$hlp = explode(',', $row["beroep"]);
if(in_array($rubriek, $hlp))
{
// Extra filter op specialisatie
$hlp1 = explode(',', $row["specialisaties"]);
if(in_array('$doelgroep', $hlp1))
{
echo ......Resultaat
}
}
}
Tja, maar dan worden het wel ontzettend veel kolommen. "Explode" werkt uitstekend, maar het zou nu op twee kolommen moeten toegepast worden. Enig idee?
Sorry, zo een expert ben ik nu ook weer niet. Ik zou al blij zijn als ik explode kon toepassen op twee kolommen. Ik weet dat dat mogelijk is, alleen vind ik niet hoe.
Gewoon omdat ik PHP niet echt goed beheers (anders was mijn vraag ook overbodig). Explode werkte goed op één kolom, dus dacht ik: nu nog op de tweede kolom en daar loopt het mis of doe ik in ieder geval iets verkeerd.
Ik kan onmogelijk heel de database opnieuw gaan indelen, alles uit elkaar gaan halen en in aparte kolommen gaan steken.
Heel de database opnieuw indelen is wel erg overdreven gezegd. De nette manier is dat je gewoon een aparte tabel maakt, waarin je de specialisaties plaatst, en koppelt met de userID's.
Met explode() zou het ook wel kunnen, maar de vraag is: Wat gebeurt er met jouw script?
En waarom wil je niet de betere manier gebruiken die hier aanbevolen wordt?
Ik zie specialisatie en specialisaties (met en zonder s).
Een foutmelding komt er niet, er wordt gewoon niets geselecteerd.
[size=xsmall]Toevoeging op 07/08/2016 23:29:06:[/size]
Adoptive Solution op 07/08/2016 21:31:35
Probeer het eens zonder de aanhalingstekens.
if(in_array('$doelgroep', $hlp1))
De aanhalingstekens was een fout van mij, dat is al verholpen.
[size=xsmall]Toevoeging op 07/08/2016 23:32:49:[/size]
- Ariën - op 07/08/2016 21:23:55
Heel de database opnieuw indelen is wel erg overdreven gezegd. De nette manier is dat je gewoon een aparte tabel maakt, waarin je de specialisaties plaatst, en koppelt met de userID's.
Met explode() zou het ook wel kunnen, maar de vraag is: Wat gebeurt er met jouw script?
En waarom wil je niet de betere manier gebruiken die hier aanbevolen wordt?
Met één explode werkt het script prima, met een tweede er bij worden er geen resultaten meer weergegeven dus hiet doe ik iets verkeerd.
Ik wil best een tweede tabel aanmaken, maar hoe zo een script in elkaar steekt om in twee tabellen vergelijkingen te gaan zoeken..... dat is onbekend terrein voor mij.