- Home
- Categorie
- Coding e Sistemistica
- MYSQL e altri Database
- aiuto php mysql
-
aiuto php mysql
salve sono nuovo
avrei bisogno di una mano sono incasinatissimo.
allora vi pondo il mio problema:
ho una base di dati per gestire il trasporto pubblico
con queste tabelle:LINEA:id_linea,nome,stazione_partenza,stazione_arr ivo;
FERMATA: id_fermata,nome,id_linea; id_linea è foreign key per LINEA
SCALO: id_scalo, id_fermata,id_linea1,id_linea2; è una fermata che ha due lineeora data una stazione di arrivo e una di partenza
vorrei ottenere una tupla con la stazione di partenza, eventuali scali e la stazione di arrivo.
come potrei fare? sono giorni che ci sbatto la testa ma non riesco a trovare una soluzione decente.
ps:magari utilizzando anche una funzionevi prego aiutatemi.
-
$stazionePartenza= stringa_quotata($stazionePartenza);
$stazioneArrivo= stringa_quotata($stazioneArrivo);"select fermata.id_fermata, fermata.nome, scalo.id_scalo
from linea,fermata,scalo
where linea.stazione_partenza = ".$stazionePartenza." and
linea.stazione_arrivo = ".$stazioneArrivo;prova così
-
Detto che la struttura del database non mi sembra affatto ragionevole, il che implica restrizioni (possibile che non ci sia una "posto" dove passano 3 linee?)
e difficolta' nelle query, motivo dei giorni di sbattimento della testa (join su FERMATA e SCALO che sono due tabelle con contenuti dello stesso tipo)....SELECT
id_linea,
nome,
stazione_partenza,
stazione_arrivo,
IFNULL(FERMATA.nome,FERMATA1.nome),
IFNULL(FERMATA2.nome,'non applicabile')
FROM LINEA
LEFT JOIN FERMATA
USING(id_linea)
LEFT JOIN SCALO AS SCALO1
ON LINEA.id_linea = SCALO1.id_linea1
LEFT JOIN FERMATA AS FERMATA1
SCALO1.id_fermata = FERMATA1.id_fermata
LEFT JOIN SCALO AS SCALO2
ON LINEA.id_linea = SCALO2.id_linea2
LEFT JOIN FERMATA AS FERMATA2
SCALO1.id_fermata = FERMATA2.id_fermata
WHERE
stazione_partenza = $stazione_partenza
stazione_arrivo =$stazione_arrivoQuesta penso faccia piu' o meno quello di cui hai bisogno (chiaramente non ho potuto testarla)... facci sapere.
Onestamente ti consiglierei di ristrutturare completamente il database in maniera ragionevole. Le query sarebbero banali.
ciao