-
Twój kod jest podatny na wstrzyknięcie SQL. Ty naprawdę powinien używać przygotowanych wyciągów , do którego przekazujesz zmienne jako parametry, które nie są oceniane pod kątem SQL. Jeśli nie wiesz, o czym mówię lub jak to naprawić, przeczytaj historię Tabele Bobby .
-
Proszę przestać pisać nowy kod ze starym rozszerzeniem MySQL:nie jest już utrzymywany, a społeczność rozpoczęła proces wycofywania . Zamiast tego powinieneś użyć ulepszonego MySQLi rozszerzenie lub PDO warstwa abstrakcji.
-
Dowiedz się więcej o połączeniach SQL .
-
Ty naprawdę powinien postarać się zmienić schemat tak, aby zawierał:
-
klucz obcy miejsca docelowego w tabeli hoteli (jeśli hotel jest powiązany z nie więcej niż jednym miejscem docelowym); lub
ALTER TABLE sirev_Hotels ADD COLUMN hoDestination INT, ADD FOREIGN KEY hoDestination REFERENCES sirev_Dests (deDestCode)
-
tabela relacji między miejscem docelowym a hotelem (jeśli hotel może być powiązany z wieloma miejscami docelowymi).
CREATE TABLE sirev_DestinationHotels ( dehoDestination INT, dehoHotel INT, FOREIGN KEY dehoDestination REFERENCES sirev_Dests (deDestCode), FOREIGN KEY dehoHotel REFERENCES sirev_Hotels (hoCode) )
-
-
Jeśli nie jest to możliwe, możesz użyć
FIND_IN_SET()
funkcjonować jako kryterium łączenia:SELECT hoCode, hoName FROM sirev_Hotels JOIN sirev_Dests ON FIND_IN_SET(sirev_Hotels.hoCode, sirev_Dests.deHotels) WHERE sirev_Dests.deDestName = ?
-
Po dołączeniu do tabel i uzyskaniu kodu
hoCode
ihoName
wszystkich hoteli w wybranym przez Ciebie miejscu docelowym możesz przeglądać w pętli, wyświetlając<option value="$hoCode">$hoName</option>
, stosująchtmlentities()
w razie potrzeby.