onderstaande code werkt perfect, maar nu wil ik in de $sql nog een tweede criteria inbouwen. Deze is echter als aray opgeslagen in de database als "$therapie" en heeft voor ieder lid verschillende inhoud (zo bevat $therapie voor Jan bijvoorbeeld (2 17 112) en voor Jef (2 5 76 86 123).
Ik heb al gebprobeerd met explode(), for each en if(inarea()), maar ik kom er niet uit.
Heeft iemand een oplossing? Dank u.
Dit is mijn code:
<?php
include('config.php');
// Create connection
$conn = $db;
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo $_POST["rubriek"]; //geselecteerd op indexpagina SELECT > OPTION > VALUE
echo $_POST["keuze_land"]; //geselecteerd op indexpagina SELECT > OPTION > VALUE
$rubriek = $_POST["rubriek"];
$keuzeland = $_POST["keuze_land"];
$sql = "SELECT id, member, paswoord, land FROM users WHERE land = $keuzeland";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc())
{
echo "<br> id: ". $row["id"]. " - Name: ". $row["member"]. " " . $row["paswoord"] . " " . $row["land"] . "<br>";
}
}
else {
echo "0 results";
}
$conn->close();
?>
Deze is echter als array opgeslagen in de database
Dus je hebt in één veld in de db meerdere dingen opgeslagen?
Heeft iemand een oplossing?
Je databasemodel omgooien dan!
In plaats van in het veld therapie 2 17 112 opslaan, maak je een extra therapie tabel aan met bijvoorbeeld user_ID en therapie. Voor elke therapie komt er dan een regeltje bij in de db.
Dat begrijp ik niet goed, ik heb inderdaad in één veld meerdere dingen opgeslagen per lid. Het moet toch mogelijk zijn om deze aray te ontleden en als er in deze aray iets overeenstemt met $rubriek, dan moet al het relevante van dit lid toch getoond kunnen worden en daarna het volgende lid zoeken dat aan dezelfde criteria zou kunnen voldoen om daar ook al het relevante van te tonen, enz?
Ik heb een tabel met daarin de velden ID, naam, adres, telefoon, website,... en uiteraard ook het veld "therapie". Moet ik dan een tweede tabel aanmaken nog eens met ID, therapie en in dat veld 2 17 112 opslaan? Hoe ga ik dat klaar krijgen bij de input, twee verschillende tabellen aanspreken. Enfin, ik ben echt niet mee. Er zijn ruim 120 verschillende therapiemogelijkheden te selecteren. Een voorbeeld misschien?
"In plaats van in het veld therapie 2 17 112 opslaan, maak je een extra therapie tabel aan met bijvoorbeeld user_ID en therapie. Voor elke therapie komt er dan een regeltje bij in de db."
Op het moment dat je een gebruiker opvraagt.. kun je ook alle therapieën opvragen.. en die nummers zijn dan weer gekoppeld aan de therapie...(uiteraard uit een andere tabel).
Ok, bedankt. Ik zal het nog een paar keer moeten lezen om het echt te snappen, maar we gaan proberen. Het probleem is wel dat elk lid meerdere therapieën kan aanbieden en hoe ik dat bij de input van zijn gegevensblad uit elkaar moet gaan trekken om in verschillende tabellen te gaan opslaan, is voor mij nog een groot vraagteken.
"om in verschillende tabellen te gaan opslaan, is voor mij nog een groot vraagteken.`
op de plek waar je nu iets gekunsteld hebt om de verschillende waarden in 1 kolom op te slaan, zul je iets moeten maken waarbij een aantal INSERTquery´s komen om de getallen los op te slaan.
Om aan te denken:
eerste de user opslaan, en pas daarna de therapieën, want anders heb je het user_id nog niet
als er mogelijk een therapie kan verdwijnen, moet je naast een insert- ook een delete-actie uit kunnen voeren.
combinatie user_id+therapie_id zal waarschijnlijk uniek zijn, dus een unique-constraint is op z'n plek
Voordeel is niet alleen dat databases zo bedoeld zijn, maar dat je uiteindelijk ook op kunt vragen hoeveel users gebruik maken van therapie 3 bijvoorbeeld.
in principe kun je de kolom user_therapie_ID achterwege laten. De combinatie user_ID + therapie_ID is al ee unieke combinatie. Daar hoeft dus niet ook nog een keer een aparte ID kolom bijgezet te worden.