ciao a tutti ho una situazione del tipo

$mysqlc->query("SELECT strutture.id, telefono, descrizione, keywords, google_maps, link_listino, link_booking, strutture.nome, email, localita.id AS locid FROM strutture LEFT JOIN localita ON strutture.localita=localita.id WHERE strutture.id='".$_GET['id']."';");

e tutto funziona.

solo che ho inserito un'altra select che prende i campi da una terza tabella 'categorie'

come posso integrarla?

grazie della vostra comprensione: daniele.

danielix05 (http://www.viagginelsalento.it - informazioni e promozione turistica del Salento)
1.976 messaggi dal 27 luglio 2005
Contributi
salve Daniele,
danielix05 wrote:
ciao a tutti ho una situazione del tipo

$mysqlc->query("SELECT strutture.id, telefono, descrizione, keywords, google_maps, link_listino, link_booking, strutture.nome, email, localita.id AS locid FROM strutture LEFT JOIN localita ON
strutture.localita=localita.id WHERE
strutture.id='".$_GET['id']."';");

e tutto funziona.

solo che ho inserito un'altra select che prende i campi da una terza tabella 'categorie'

se ho capito cosa intendi, tecnicamente sarebbe
SELECT strutture.id, telefono, descrizione, keywords,
google_maps, link_listino, link_booking, strutture.nome, email, localita.id AS locid
FROM strutture
LEFT JOIN localita ON strutture.localita=localita.id LEFT JOIN altratabella ON altratabella.colonna =
strutture_o_localita.colonna
WHERE strutture.id='".$_GET['id'].

a meno che tu non intenda una subquery, tipo
SELECT strutture.id, telefono, descrizione, keywords,
google_maps, link_listino, link_booking, strutture.nome, email, localita.id AS locid
FROM strutture
LEFT JOIN localita ON strutture.localita=localita.id LEFT JOIN (SELECT ... FROM ..) AS X ON x.colonna =
strutture_o_localita.colonna
WHERE strutture.id='".$_GET['id'].
(che in SQL Server si puo' fare, non so in MySQL)..
saluti

Andrea Montanari
http://www.hotelsole.com - http://www.hotelsole.com/asql/index.php
intanto grazie.

la mia situazione è questa:
1. ho un form in cui modifico i dati già inseriti in una prima tabella
2. in esso 2 select che recuperano dati da altre due tabelle

quindi ho la necessità di far apparire nelle due rispettive select i dati compilati precedentemente.

la tabella 'tipologia' e 'localita' hanno entrambe 2 campi 'id' e 'nome'
la tabella di cui al punto 1. ('struttura')ha diversi campi tra cui 'tipo_struttura' e 'localita' a cui faccio corrispondere gli id delle tabelle 'tipologia' e 'localita'

quindi la select è impostata così

<select name="idlocalita" class="formtext">



<?php



  $mysqlc->query("SELECT * FROM localita;");

  while($result = mysql_fetch_array($mysqlc->result, MYSQL_ASSOC)){

    echo "<option";

    if($result['id'] == $result1['locid']) echo " selected=\"selected\"";

    echo " value='".$result['id']."'>".$result['nome']."</option>";

  }



?>

    </select>


la seconda select è questa più o meno identica

<select name="tipo_struttura" class="formtext">
<?php
  $mysqlc->query("SELECT * FROM tipologia;");

  while($result = mysql_fetch_array($mysqlc->result, MYSQL_ASSOC)){

    echo "<option";

    if($result['id'] == $result1['tipid']) echo " selected=\"selected\"";

    echo " value='".$result['id']."'>".$result['nome']."</option>";

  }



?>

    </select>


che faccio? sono proprio a corto di idee.

a presto: daniele.

danielix05 (http://www.viagginelsalento.it - informazioni e promozione turistica del Salento)
1.976 messaggi dal 27 luglio 2005
Contributi
salve Daniele,
danielix05 wrote:
...
la tabella 'tipologia' e 'localita' hanno entrambe 2 campi 'id' e 'nome' la tabella di cui al punto 1. ('struttura')ha diversi campi tra cui 'tipo_struttura' e 'localita' a cui faccio corrispondere gli id delle tabelle 'tipologia' e 'localita'

se ho ben capito, potresti scrivere
....
FROM tipologia t
JOIN localita l ON l.id = t.id
JOIN struttura s
ON s.localita = l.id
AND s.tipo_struttura = t.id
....

ma non so se ho capito giusto.. la definizione del codice di recupero in PHP che hai postato a me e' indifferente.. preferivo il DDL delle 3 tabelle coinvolte
saluti

Andrea Montanari
http://www.hotelsole.com - http://www.hotelsole.com/asql/index.php
ciao ho risolto in questo modo

SELECT strutture.id, telefono, descrizione, title, keywords, google_maps, link_listino, link_booking, strutture.nome, email, localita.id AS locid, <b>tipologia.id AS tipid</b> FROM strutture LEFT JOIN localita ON strutture.localita=localita.id LEFT JOIN tipologia ON strutture.tipo_struttura=tipologia.id WHERE strutture.id='".$_GET['id']."';");

danielix05 (http://www.viagginelsalento.it - informazioni e promozione turistica del Salento)
STEP SUCCESSIVO

ancora ciao,
ora ho due tabelle, nella prima registro tutti i dati della pagina (meta, descrizione, titolo ecc) nella seconda solo i dati relativi ai menu (dx e sx).

ora dovrei unire le due e sto facendo in questo modo

<b>line 94</b> 
    $mysqlc->query("SELECT pagine.pathpagina, titolo, descrizione, keywords, pag_accessorie.id AS m1id, pag_accessorie.id AS m2id FROM pagine LEFT JOIN pag_accessorie ON pagine.menusx=pag_accessorie.id LEFT JOIN pag_accessorie ON pagine.menudx=pag_accessorie.id WHERE pagine.id='".$_GET['id']."';");


ma mi restituisce questo errore

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /web/htdocs/www/pagina.php on line 94


forse perchè sto unendo più campi della stessa tabella B?

come posso risolvere?

grazie.

danielix05 (http://www.viagginelsalento.it - informazioni e promozione turistica del Salento)

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.