J'essaie de comprendre comment obtenir une instruction select à remplir par un nombre en constante évolution de where. Ceci est pour une application de suivi de l'état des commandes. Fondamentalement, l'idée est qu'un utilisateur (client de notre société) se connecte, et peut voir ses commandes, vérifier son statut, etc. Pas de problème. Le problème se pose lorsque cet utilisateur doit être associé à plusieurs sociétés. Supposons qu'ils travaillent ou possèdent deux sociétés différentes, ou qu'ils travaillent pour une société qui possède plusieurs sous-sociétés, chaque commande individuellement, mais le big-shot doit voir tout commandé par toutes les entreprises. C'est là que je rencontre un problème. Je n'arrive pas à trouver un bon moyen d'y arriver. La seule chose que je suis venu avec ceci:
PHP/MYSQL: instruction SELECT, plusieurs où, rempli à partir de la base de données
client='Client Name One' OR client='Client name two' AND hidden='0' OR client='Client name three' AND hidden='0' OR client='Client name four' AND hidden='0'
(Notez que le client dans le code précédent fait référence à la société de l'utilisateur, ainsi notre client)
placé à l'intérieur d'une colonne appelée entreprise ma table d'utilisateurs de la base de données. Cela s'appelait alors comme ceci:
$clientnamequery = "SELECT company FROM mtc_users WHERE username='testing'";
$clientnameresult = mysql_query($clientnamequery); list($clientname)=mysql_fetch_row($clientnameresult);
$query = "SELECT -redacted lots of column names- FROM info WHERE hidden='0' AND $clientname ORDER BY $col $dir";
$result = mysql_query($query);
Chose est, alors que cela fonctionne, je ne peux pas sembler faire PHP ajouter dans le client = » et « ET cachés = » 0' correctement. De plus, c'est un peu kludgy.
Des idées? Merci d'avance!
Dans ce cas, la réduction à une instruction SQL unique est la voie à suivre. Dans d'autres cas, vous pouvez utiliser 'implode' pour générer une chaîne à partir d'une séquence:' "(client = '". Implode ("' OR client = '", exploser (', ', $ clientsnames)).' ') AND hidden = 0 "' – outis