SfondoL'implementazione di un sistema di giunzione "configurabile", in modo sicuro
Ciao, sto sviluppando uno strumento sperimentale/educativo in PHP e MySQL. Sono nuovo di SQL, ma voglio fare le cose nel modo giusto fin dall'inizio. Uso le istruzioni PDO preparate per tutte le sostituzioni variabili e il backticking ovunque possibile (quindi, come ho capito, non sarà trasferibile su database non MySQL). Per quanto riguarda il mio problema, ho un'idea su come andare avanti, ma ci vorranno diverse ore per implementare (sono nuovo anche per la sintassi di SQL), quindi nel frattempo ho pensato di creare una domanda prima solo nel caso qualcuno possa urlare, "Questo non è il modo di farlo!" e salvami ore di sforzi.
Problemi
desidero creare un'interfaccia in cui un utente seleziona dal menu a discesa:
- un tavolo
A
, - uno o più campi in quella tabella, ad esempio
A.x
eA.y
, - un tavolo
B
, - uno o più campi in quella tabella, ad esempio
B.z
eB.y
,
e su presentazione avrebbe eseguito il codice di un join interno, corrispondenti rispettivamente ciascun campo, ad esempio A.x = B.z
, A.y = B.y
, ecc. E restituiscono tutte le righe corrispondenti.
Il mio piano è semplicemente generare un'istruzione SQL INNER JOIN
, eseguire il looping dei campi e inserire segnaposti (?
), associare i rispettivi parametri e infine eseguire l'istruzione.
C'è un modo più semplice per farlo? C'è un modo migliore per farlo? Sarà in qualche modo sfruttabile?
Grazie mille, in anticipo. Se nessuno risponde entro la fine (dubbioso), posterò la mia soluzione.
Misc.
supponga che io convalidare
- che l'utente seleziona un numero uguale di campi tra
A
eB
, - che esistono i campi e tabelle,
- ecc
e che i nomi dei campi non devono essere identici: verranno abbinati in ordine. (Indicare altri dettagli di cui potrei non essere a conoscenza!)
Infine, l'obiettivo è che queste selezioni vengano salvate in una tabella "Impostazioni". In effetti, gli utenti creano "viste" che vorrebbero vedere ogni volta che tornano.
+1 domanda veramente informativa ... strada da percorrere. – Wh1T3h4Ck5