[php] select personalizzata

isidoro80

Utente Attivo
5 Feb 2007
32
0
0
In un mio script ho inserito una select che visualizza il contenuto di una colonna di una tabella di un database mysql.
vi psoto il codice
Codice:
//query nel database
mysql_select_db($database_diserbo, $diserbo);
$query_Recordset1 = "SELECT * FROM pa ORDER BY pa ASC";
$Recordset1 = mysql_query($query_Recordset1, $diserbo) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);

//select nel form
<select name="pa" id="select16">
          <option value="%">seleziona </option>
          <?php
do {  
?>
          <option value="<?php echo $row_Recordset1['id_pa']?>"><?php echo $row_Recordset1['pa']?></option>
          <?php
} while ($row_Recordset1 = mysql_fetch_assoc($Recordset1));
  $rows = mysql_num_rows($Recordset1);
  if($rows > 0) {
      mysql_data_seek($Recordset1, 0);
	  $row_Recordset1 = mysql_fetch_assoc($Recordset1);
  }
?>
        </select>

questa select visualizza tutti i valori contenuti nella colonna pa della tabella pa.
Io vorrei modificare la select affinchè esclusa determinati valori contenuti nella colonna pa

esempio la tabella pa contiene
id pa
1 pippo
2 pluto
3 minni
4 zio paperone
5 gastone
.. .......

vorrei che nella select compaiano tutti i valori tranne zio paperone e pluto
 
a scusami. i dati da escludere li potrei tranquillamente digitare io nello script oppure se è più semplice posso aggiungere al database una tabella che li contiene.
 
Ecco qui il sistema per definizione all'interno dello script. Basta inserire nell'array i nomi da escludere:
PHP:
<?php
// dati da escludere
$exclude = array('zio paperone', 'pluto');

//query nel database
mysql_select_db($database_diserbo, $diserbo);
$query_Recordset1 = "SELECT * FROM pa ORDER BY pa ASC";
$Recordset1 = mysql_query($query_Recordset1, $diserbo) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
?>
//select nel form
<select name="pa" id="select16">
          <option value="%">seleziona </option>
          <?php
do {  
	if(in_array($row_Recordset1['pa'], $exclude))
		continue;
	
          <option value="<?php echo $row_Recordset1['id_pa']?>"><?php echo $row_Recordset1['pa']?></option>
          <?php
} while ($row_Recordset1 = mysql_fetch_assoc($Recordset1));
  $rows = mysql_num_rows($Recordset1);
  if($rows > 0) {
      mysql_data_seek($Recordset1, 0);
	  $row_Recordset1 = mysql_fetch_assoc($Recordset1);
  }
?>
        </select>
 
E' molto semplice, praticamente definisce un array con i nomi da escludere e poi tramite queste righe:
PHP:
    if(in_array($row_Recordset1['pa'], $exclude))
        continue;
Controlla se il nome attuale trova una corrispondenza nell'array con i nomi da escludere. Se sì, passa al ciclo successivo con il costrutto continue. Praticamente continue serve per passare alla iterazione dopo la seguente, è come break, con la differenza che non interrompe tutto il ciclo ma solo questa iterazione.
 

Discussioni simili