Zelf probeer ik hetvolgende, ik heb deze mysqli query gemaakt:
$settingquery = mysqli_query($connect_mysql, "SELECT * FROM `usersettings` WHERE `user_id` = '".$user['id']."'");
$setting = mysqli_fetch_assoc($settingquery);
Nu wil ik eigenlijk niet steeds opnieuw dezelfde query maken om elke keer een andere info op te vragen.
Ik wil bijvoorbeeld in dat tabel de informatie van bijvoorbeeld setting_id de POB tonen, hoe kan ik dit het beste doen zonder de volgende query:
$settingquery = mysqli_query($connect_mysql, "SELECT * FROM `usersettings` WHERE `user_id` = '".$user['id']."' AND `setting_id` = 'POB'");
$setting = mysqli_fetch_assoc($settingquery);
Als ik zo zie haal je nu alle usersettings van één persoon op in een array in $settings.
Dus dan kan je alles van die persoon al ophalen, zodat je die per setting kan benaderen:
Waarom wil je de query opnieuw uitvoeren?
Je slaat de hele array met *alle* settings van de gebruiker op in $settings. Of is die lijst echt gruwelijk groot met vele honderden records?
Elke setting is één row dus je hebt voor alle gebruikers een database waar per setting één aparte regel is, ik wil per aparte regel werken dus als ik de regel POB wil hebben moet ik dus op basis van id en setting_id de info uit die regel tonen, het is dus niet dat alle settings in één regel staan.
Ik zag eerder iets van $settings->POB->input1 maar weet niet hoe dat precies werkt
Als elke setting één row is, dan is het probleem toch opgelost? Dat laat ik ook in mijn oplossing zien...
Gooi $setting anders eens door print_r() en zie wat er in zit.
En graag niet steeds het voorgaande bericht volledig quoten a.u.b. want dat is nergens voor nodig. ;-)
// run query
$result = mysqli_query($connect_mysql, "SELECT * FROM usersettings WHERE user_id=" . $user['id']);
if($result === false) {
throw new Exception(mysql_error($connect_mysql));
exit;
}
// overschrijf settings
while($row = mysqli_fetch_assoc($result)) {
$settings[$row['setting_id']] = $row['setting_value']; // IK WEET NIET WELKE KOLOMNAMEN JE HEBT DUS VERANDER settings_value naar een bestaande kolomnaam.
}
// voor deze test laat even het resultaat zien
echo '<pre>' . print_r($settings, true) . '</pre>';
// normaal gebruik
if($settings['POB'] == 0) {
// doe iets
}
?>