Newsgroup: it.comp.www.php
Titolo: un piccolo aiuto di compilazione

ho una condizione che è cosi
if($_GET['nazioneID'] && $_GET['nazioneID'] > 0)
ma se vorrei aggiungere sulla stessa riga anche la medesima condizione per 
regioneID come devo piazzarlo il codice?
cosi'?
if(($_GET['nazioneID'] && $_GET['nazioneID'] > 0) & ($_GET['regioneID'] && 
$_GET['regioneID'] > 0))

 ha scritto nel messaggio 
news:4631d577$0$4786$4faf...@reader4.news.tin.it...

in pratica è corretto il codice scritto cosi o c'è qualche errore di 
sintassi?
if(($_GET['nazioneID'] && $_GET['nazioneID'] > 0) & ($_GET['regioneID'] && 
$_GET['regioneID'] > 0))
{
$query_rs_nomeitinerario = "SELECT itinerarioID, nomeitinerario, nazioni, 
regione FROM tbl_itinerari WHERE nazioni = $_GET[nazioneID] & regione = 
$_GET[regioneID] ORDER BY nomeitinerario ASC";
}
if(($_GET['nazioneID'] && $_GET['nazioneID'] > 0) & ($_GET['regioneID'] && 
$_GET['regioneID'] = 0))
{
$query_rs_nomeitinerario = "SELECT itinerarioID, nomeitinerario, nazioni, 
regione FROM tbl_itinerari WHERE nazioni = $_GET[nazioneID] ORDER BY 
nomeitinerario ASC";
} else {
$query_rs_nomeitinerario = "SELECT itinerarioID, nomeitinerario, nazioni, 
regione FROM tbl_itinerari ORDER BY nomeitinerario ASC";
} 

 $_GET['regioneID'] > 0))
C'e` un errore, anche se invisibile: & e` un operatore bit a bit. Devi
usare && anche li` in mezzo.
Bye.

 ha scritto nel messaggio 
news:59e3f0F...@mid.individual.net...

mmm  non funziona!
 il mio problema è questo
Ho 3 tabelle
 tbl_nazioni
nazioneID nomenazione
1                                Italia
2                                Belgio
3                                Ecc ecc.
tbl_regioni
regioneID  nomeregione nazione
1                      Umbria      1
2                      Toscana     1
3                      Regione di Bruxelles 2
tbl_itinerari
itinerarioID  nomeitinerario      nazioni regione
1                   Tour dell'Umbria      1          1
2                   Tour di Bruxelles      2          3
Ora osservate la pagina 
itinerarimondo.netsons.org/itinerari.php
Se selezionate Umbria o Regione di Bruxelles spunta solo l'itinerario 
relativo a quella regione.
Ma se andate a selezionare la nazione viene fuori l'elenco completo di tutte 
le regioni inserite e di tutti gli itinerari presenti nel database di 
qualunque nazione o regione essi siano.
Dove sto sbagliando??
Le query sono queste: rs_nomeitinerario che dovrebbe estrarre l'elenco 
condizionato degli itinerari, rs_nazioni che estrae l'elenco delle nazioni, 
rs_regioni che dovrebbe estrarre l'elenco condizionato delle regioni:
mysql_select_db($database_server, $server);
if($_GET['nazioneID'] && $_GET['nazioneID'] > 0)
{
$query_rs_nomeitinerario = "SELECT itinerarioID, nomeitinerario, nazioni, 
regione FROM tbl_itinerari WHERE nazioni = $_GET[nazioneID] ORDER BY 
nomeitinerario ASC";
}
if(($_GET['nazioneID'] && $_GET['nazioneID'] > 0) && ($_GET['regioneID'] && 
$_GET['regioneID'] > 0))
{
$query_rs_nomeitinerario = "SELECT itinerarioID, nomeitinerario, nazioni, 
regione FROM tbl_itinerari WHERE nazioni = $_GET[nazioneID] & regione = 
$_GET[regioneID] ORDER BY nomeitinerario ASC";
}
if($_GET['regioneID'] && $_GET['regioneID'] > 0)
{
$query_rs_nomeitinerario = "SELECT itinerarioID, nomeitinerario, nazioni, 
regione FROM tbl_itinerari WHERE regione = $_GET[regioneID] ORDER BY 
nomeitinerario ASC";
} else {
$query_rs_nomeitinerario = "SELECT itinerarioID, nomeitinerario, nazioni, 
regione FROM tbl_itinerari ORDER BY nomeitinerario ASC";
}
$rs_nomeitinerario = @mysql_query($query_rs_nomeitinerario, $server) or 
die(mysql_error());
$row_rs_nomeitinerario = @mysql_fetch_assoc($rs_nomeitinerario);
$totalRows_rs_nomeitinerario = @mysql_num_rows($rs_nomeitinerario);
$query_rs_nazioni = "SELECT nazioneID, nomenazione FROM tbl_nazioni ORDER BY 
nomenazione ASC";
$rs_nazioni = mysql_query($query_rs_nazioni, $server) or die(mysql_error());
$row_rs_nazioni = mysql_fetch_assoc($rs_nazioni);
$totalRows_rs_nazioni = mysql_num_rows($rs_nazioni);
$query_rs_regioni = "SELECT regioneID, nomeregione FROM tbl_regioni ORDER BY 
nomeregione ASC";
$rs_regioni = mysql_query($query_rs_regioni, $server) or die(mysql_error());
$row_rs_regioni = mysql_fetch_assoc($rs_regioni);
$totalRows_rs_regioni = mysql_num_rows($rs_regioni);
?>
I form inseriti nella pagina sono questi
1) Il primo per la nazione:
  </select>
    </form>    </td>
  </tr>
  <tr>
    <td nowrap="nowrap"><em>Per Nazione</em></td>
    <td><select name="nomenazione" id="nomenazione" 
onchange="window.location = ('<?php echo $_SERVER['PHP_SELF']; 
?>?nazioneID='+nomenazione.options[this.selectedIndex].value)">
             <option value="null">Tutti</option>
             <?php
do {
if($_GET['nazioneID'] && $_GET['nazioneID'] == $row_rs_nazioni['nazioneID'])
{
?>
<option value="<?php echo $row_rs_nazioni['nazioneID']?>" 
selected="selected"><?php echo $row_rs_nazioni['nomenazione']?></option>
<?php
} else {
?>
<option value="<?php echo $row_rs_nazioni['nazioneID']?>"><?php echo 
$row_rs_nazioni['nomenazione']?></option>
<?php
}
} while ($row_rs_nazioni = mysql_fetch_assoc($rs_nazioni));
  $rows = mysql_num_rows($rs_nazioni);
  if($rows > 0) {
      mysql_data_seek($rs_nazioni, 0);
              $row_rs_nazioni = mysql_fetch_assoc($rs_nazioni);
  }
?>
2) Il secondo per le regioni
</select></td>
  </tr>
  <tr>
    <td nowrap="nowrap">Per Regione </td>
    <td><select name="nomeregione" id="nomeregione" 
onchange="window.location = ('<?php echo $_SERVER['PHP_SELF']; 
?>?regioneID='+nomeregione.options[this.selectedIndex].value)">
             <option value="null">Tutti</option>>
      <?php
do {
  if($_GET['regioneID'] && $_GET['regioneID'] == 
$row_rs_regioni['regioneID'])
{
?>
      <option value="<?php echo $row_rs_regioni['regioneID']?>" 
selected="selected">><?php echo $row_rs_regioni['nomeregione']?></option>
      <?php
              } else {
?>
<option value="<?php echo $row_rs_regioni['regioneID']?>"><?php echo 
$row_rs_regioni['nomeregione']?></option>
<?php
}
} while ($row_rs_regioni = mysql_fetch_assoc($rs_regioni));
  $rows = mysql_num_rows($rs_regioni);
  if($rows > 0) {
      mysql_data_seek($rs_regioni, 0);
              $row_rs_regioni = mysql_fetch_assoc($rs_regioni);
  }
?>
    </select>
3) Il terzo per gli itinerari
<td nowrap="nowrap"><em>Scegli tra tutti gli itinerari </em></td>
    <td><form id="frm_peritinerario" name="frm_peritinerario" method="get" 
action="itinerari_dettagli.php">
      <select name="nomeitinerario" id="nomeitinerario">
<option value="null">-------</option>
<?php
do {
?><option value="<?php echo $row_rs_nomeitinerario['itinerarioID']?>" 
selected="selected"><?php echo 
$row_rs_nomeitinerario['nomeitinerario']?></option>
<?php
} while ($row_rs_nomeitinerario = mysql_fetch_assoc($rs_nomeitinerario));
$rows = mysql_num_rows($rs_nomeitinerario);
if($rows > 0) {
mysql_data_seek($rs_nomeitinerario, 0);
$row_rs_nomeitinerario = mysql_fetch_assoc($rs_nomeitinerario);
}
?>
        </select>
      <input name="Submit" type="submit" id="Submit" value="Submit" />

 mmm  non funziona!
al momento sono riuscito solo a far apparire le regioni della relativa 
nazione scelta ma non gli itinerari!
ho modificato la query rs_regioni con questa condizione
if($_GET['nazioneID'] && $_GET['nazioneID'] > 0)
{
$query_rs_regioni = "SELECT regioneID, nomeregione, nazione FROM tbl_regioni 
WHERE nazione = $_GET[nazioneID] ORDER BY nomeregione ASC";
} else {
$query_rs_regioni = "SELECT regioneID, nomeregione, nazione FROM tbl_regioni 
ORDER BY nomeregione ASC"; 

> mmm  non funziona!
allora al momento diciamo che ho risolto il problema parzialmente in quanto 
oggi sono proprio stordito
la query sulla nazione l'ho ridotta cosi
mysql_select_db($database_server, $server);
if($_GET['nazioneID'] && $_GET['nazioneID'] > 0)
{
$query_rs_nomeitinerario = "SELECT itinerarioID, nomeitinerario, nazioni, 
regione FROM tbl_itinerari WHERE nazioni = $_GET[nazioneID] ORDER BY 
nomeitinerario ASC";
} else {
$query_rs_nomeitinerario = "SELECT itinerarioID, nomeitinerario, nazioni, 
regione FROM tbl_itinerari ORDER BY nomeitinerario ASC";
}
eliminando la parte delle regioni
pero ora noto che se scelgo italia mi spuntano tutte le regioni italiane e 
gli itinerari italiani ma se scelgo umbria vengono fuori tutti!
come mai???

 ha scritto nel messaggio 
news:4631fc1b$0$17941$4faf...@reader1.news.tin.it...
in pratica dovrei trovare un modo per dirgli se tu scegli quella regione 
allora sul form nazione si deve posizionare su quella nazione in automatico!
ma come?

che brutti quei GET dentro alla query........ se ti scoprono ti sventrano il 
database.....
leggiti qualcosa sui problemi della sicurezza...... 


sarà il prossimo problema che dovro' risolvere dopo questo propostovi 

 $totalRows_rs_nomeitinerario = @mysql_num_rows($rs_nomeitinerario);
In fase di test non nascondere mai gli errori.
E nemmeno in produzione, gia` che ci sei.
Gestiscili.
 
Bye.


sono nelle canne ... non riesco a capire l'errore ... potresti aiutarmi? non 
ho capito cosa debbo togliere e cosa lasciare :-(
che codice devo usare per dire che:
- se la nazione è uguale a X allora deve compilare l'elenco delle regioni 
relative alla nazione X e di conseguenza l'elenco degli itinerari con quelli 
della nazione X
- se la regione è uguale a Y allora la nazione nell'elenco delle nazioni 
deve diventare quella corrispondente alla regione Y e gli itinerari debbono 
essere solo quelli riferiti a quella regione Y?
Grazie mille per l'aiuto
Marco

 Metti solo la regione e usa una join per ricavare la nazione.
non posso omettere la nazione in tbl_itinerari perchè ci sono itinerari ai 
quali non è stata collegata nessuna regione ma solo una nazione!