-
Votre code est vulnérable à l'injection SQL. Vous vraiment devrait utiliser instructions préparées , dans lequel vous transmettez vos variables en tant que paramètres qui ne sont pas évalués pour SQL. Si vous ne savez pas de quoi je parle ou comment y remédier, lisez l'histoire de Bobby Tables .
-
Veuillez arrêter d'écrire du nouveau code avec l'ancienne extension MySQL :elle n'est plus maintenue et la communauté a commencé le processus d'abandon . Au lieu de cela, vous devez utiliser l'amélioration MySQLi ou l'PDO couche d'abstraction.
-
En savoir plus sur les jointures SQL .
-
Vous vraiment devrait s'efforcer de modifier votre schéma pour avoir :
-
une clé étrangère de destination dans la table des hôtels (si un hôtel n'est associé qu'à une seule destination) ; ou
ALTER TABLE sirev_Hotels ADD COLUMN hoDestination INT, ADD FOREIGN KEY hoDestination REFERENCES sirev_Dests (deDestCode)
-
un tableau des relations destination-hôtel (si un hôtel peut être associé à plusieurs destinations).
CREATE TABLE sirev_DestinationHotels ( dehoDestination INT, dehoHotel INT, FOREIGN KEY dehoDestination REFERENCES sirev_Dests (deDestCode), FOREIGN KEY dehoHotel REFERENCES sirev_Hotels (hoCode) )
-
-
Si ce n'est pas possible, vous pouvez utiliser MySQL
FIND_IN_SET()
fonctionner comme critère de jointure :SELECT hoCode, hoName FROM sirev_Hotels JOIN sirev_Dests ON FIND_IN_SET(sirev_Hotels.hoCode, sirev_Dests.deHotels) WHERE sirev_Dests.deDestName = ?
-
Avoir rejoint les tables et obtenu le
hoCode
ethoName
de tous les hôtels de la destination souhaitée, vous pouvez parcourir le jeu de résultats en affichant<option value="$hoCode">$hoName</option>
, en appliquanthtmlentities()
le cas échéant.