-
Váš kód je zranitelný vůči vložení SQL. Vy opravdu by měl používat připravené výpisy , do kterého předáváte své proměnné jako parametry, které se nevyhodnocují pro SQL. Pokud nevíte, o čem mluvím, nebo jak to napravit, přečtěte si příběh Tabulky Bobby .
-
Přestaňte prosím psát nový kód se starým rozšířením MySQL:již není udržován a komunita zahájila proces ukončení podpory . Místo toho byste měli použít buď vylepšené MySQLi rozšíření nebo CHOP abstraktní vrstva.
-
Další informace o připojení k SQL .
-
Vy opravdu měli byste se pokusit změnit své schéma tak, aby mělo buď:
-
cizí klíč destinace v tabulce hotelů (pokud je hotel spojen pouze s jednou destinací); nebo
ALTER TABLE sirev_Hotels ADD COLUMN hoDestination INT, ADD FOREIGN KEY hoDestination REFERENCES sirev_Dests (deDestCode)
-
tabulka vztahů mezi destinacemi a hotelem (pokud lze hotel přidružit k více destinacím).
CREATE TABLE sirev_DestinationHotels ( dehoDestination INT, dehoHotel INT, FOREIGN KEY dehoDestination REFERENCES sirev_Dests (deDestCode), FOREIGN KEY dehoHotel REFERENCES sirev_Hotels (hoCode) )
-
-
Pokud to není možné, můžete použít MySQL
FIND_IN_SET()
fungovat jako kritérium spojení:SELECT hoCode, hoName FROM sirev_Hotels JOIN sirev_Dests ON FIND_IN_SET(sirev_Hotels.hoCode, sirev_Dests.deHotels) WHERE sirev_Dests.deDestName = ?
-
Po spojení tabulek a získání
hoCode
ahoName
ze všech hotelů v požadované destinaci, můžete přepnout smyčku na výslednou sadu s výstupem<option value="$hoCode">$hoName</option>
, pomocíhtmlentities()
podle potřeby.