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)
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 (Microsoft MVP - SQL Server)
http://www.asql.biz - http://italy.mvps.org
http://www.hotelsole.com - http://www.hotelsolericcione.de
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)
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 (Microsoft MVP - SQL Server)
http://www.asql.biz - http://italy.mvps.org
http://www.hotelsole.com - http://www.hotelsolericcione.de
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.
Community
Ultimi messaggi
UTENTI ONLINE
In primo piano

I più letti di oggi

Media
In evidenza
MISC