-
Uw code is kwetsbaar voor SQL-injectie. Jij echt zou voorbereide verklaringen moeten gebruiken , waarin u uw variabelen doorgeeft als parameters die niet worden geëvalueerd voor SQL. Als je niet weet waar ik het over heb, of hoe je het kunt oplossen, lees dan het verhaal van Bobbytafels .
-
Stop alsjeblieft met het schrijven van nieuwe code met de oude MySQL-extensie:deze wordt niet langer onderhouden en de community is begonnen met de afschrijvingsproces . In plaats daarvan moet u ofwel de verbeterde MySQLi gebruiken extensie of de BOB abstractielaag.
-
Meer informatie over SQL-joins .
-
Jij echt zou moeten proberen uw schema te wijzigen om een van de volgende te hebben:
-
een buitenlandse bestemmingssleutel in de hotelstabel (als een hotel aan niet meer dan één bestemming is gekoppeld); of
ALTER TABLE sirev_Hotels ADD COLUMN hoDestination INT, ADD FOREIGN KEY hoDestination REFERENCES sirev_Dests (deDestCode)
-
een tabel met relaties tussen bestemming en hotel (als een hotel aan meerdere bestemmingen kan worden gekoppeld).
CREATE TABLE sirev_DestinationHotels ( dehoDestination INT, dehoHotel INT, FOREIGN KEY dehoDestination REFERENCES sirev_Dests (deDestCode), FOREIGN KEY dehoHotel REFERENCES sirev_Hotels (hoCode) )
-
-
Als dat niet mogelijk is, kunt u MySQL's
FIND_IN_SET() functioneren als een lidmaatschapscriterium:SELECT hoCode, hoName FROM sirev_Hotels JOIN sirev_Dests ON FIND_IN_SET(sirev_Hotels.hoCode, sirev_Dests.deHotels) WHERE sirev_Dests.deDestName = ?
-
Nadat we ons bij de tabellen hadden gevoegd en de
hoCode
. hebben verkregen enhoName
van alle hotels op uw gewenste bestemming kunt u de resultatenset doorlopen dooruit te voeren , toepassen van
htmlentities()
indien van toepassing.