-
Il tuo codice è vulnerabile a SQL injection. Tu davvero dovrebbe utilizzare dichiarazioni preparate , in cui si passano le variabili come parametri che non vengono valutati per SQL. Se non sai di cosa sto parlando o come risolverlo, leggi la storia di Tabelle Bobby .
-
Per favore, smetti di scrivere nuovo codice con l'antica estensione MySQL:non è più mantenuta e la community ha iniziato il processo di ritiro . Invece dovresti usare il migliorato MySQLi o il DOP livello di astrazione.
-
Ulteriori informazioni su join SQL .
-
Tu davvero dovrebbe cercare di cambiare il tuo schema per avere uno dei seguenti:
-
una chiave esterna di destinazione nella tabella hotel (se un hotel è associato a non più di una destinazione); o
ALTER TABLE sirev_Hotels ADD COLUMN hoDestination INT, ADD FOREIGN KEY hoDestination REFERENCES sirev_Dests (deDestCode)
-
una tabella delle relazioni destinazione-hotel (se un hotel può essere associato a più destinazioni).
CREATE TABLE sirev_DestinationHotels ( dehoDestination INT, dehoHotel INT, FOREIGN KEY dehoDestination REFERENCES sirev_Dests (deDestCode), FOREIGN KEY dehoHotel REFERENCES sirev_Hotels (hoCode) )
-
-
Se ciò non è possibile, puoi utilizzare
FIND_IN_SET()
funzione come criterio di unione:SELECT hoCode, hoName FROM sirev_Hotels JOIN sirev_Dests ON FIND_IN_SET(sirev_Hotels.hoCode, sirev_Dests.deHotels) WHERE sirev_Dests.deDestName = ?
-
Dopo aver unito le tabelle e ottenuto il
hoCode
ehoName
di tutti gli hotel nella destinazione desiderata, puoi scorrere il set di risultati generando<option value="$hoCode">$hoName</option>
, applicandohtmlentities()
a seconda dei casi.