Filtri order by e where 'dinamici'

Pascal Pavan

Nuovo Utente
27 Ago 2012
16
0
0
Ciao a tutti, ho un problema: (nella discussione precedente mi sono espresso male!
Vorrei che attraverso una form io possa selezionare delle nazioni e che le possa poi ordinare con priorità, cioè:
zona -> priorità 2
dossier -> priorità 1
dataScarico -> priorità 3
query -> select * from pianificazioneSettimanale
order by dossier, zona, dataScarico
Chiaro il concetto?

E in caso ci fossero state checckate delle dazioni ch-> checked, I->checked la query sarebbe stata:
select * from pianificazionesettimanale
where nazione in ('CH','I')
order by dossier, zona, dataScarico

Avete idee? GRazie mille!
PHP:
<form method="POST" name="orderPianificazioneSettimanale">
    Seleziona le nazioni da visualizzare: <br>
    <input type="checkbox" name="nazione1" value="CH">CH
    <input type="checkbox" name="nazione2" value="DE">DE
    <input type="checkbox" name="nazione3" value="I">I
    <input type="checkbox" name="nazione4" value="F">F
    <input type="checkbox" name="nazione5" value="E">E <br>
    Come li vuoi ordinare/precedenza? <br>
    <input type="checkbox" name="order1" value="Zone">
    <select name="priorita1">
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
    </select>Zona
    <input type="checkbox" name="order1" value="Dossier">
    <select name="priorita1">
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
    </select>Dossier
    <input type="checkbox" name="order1" value="Mittente">
    <select name="priorita1">
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
    </select>Mittente
    <input type="checkbox" name="order1" value="dataCarico">
    <select name="priorita1">
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
    </select>Data di carico
    <input type="checkbox" name="order1" value="dataScarico">
    <select name="priorita1">
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
    </select>Data di scarico
    <br><br>
<input type="submit" name="invia" value="Invia!">     
</form>

<?php

$db = new db();

if(isset($_POST['invia'])){
    $checkedNazione = "se checcato lo salva in un array";
    $order = "se ceccati li salva in un array";
    $priorita = "di quelli ceccati recuper la priorità, cioè, quello che dovrà essere messo per primo
        nella query quando si fa order by";
    $query = "select * from pianificazione settimanle
        where nazione in ($checkedNazione)
            order by $order"; //Ma nel freattemo vorrei che se non si seleziona nessuna nazione
                              //ma si fa solo un order by, ordini i dati di tutte le nazioni.
}else{
    $query = "select * from pianificazioneSettimanale";
}
$db->api_db_execute_query($query);
$db->api_close_db();
?>
 
Ultima modifica di un moderatore:
ciao
intanto modificherey i checkbox
HTML:
<!-- .... -->
    <input type="checkbox" name="nazione[0]" value="CH">CH
    <input type="checkbox" name="nazione[1]" value="DE">DE
    <input type="checkbox" name="nazione[2]" value="I">I
    <input type="checkbox" name="nazione[3]" value="F">F
    <input type="checkbox" name="nazione[4]" value="E">E <br>
<!-- .... -->
poi per il where farei

PHP:
//.........

$nazioni=$_POST['nazione'];
$wh =" WHERE 1=1";//se non selzioni nulla rimane questo solo e selezioni tutti
if(is_array($nazioni)){
	foreach($nazioni as $chiave => $valore){
		if($nazioni[$chiave] != ""){
			$wh .=" OR zona ='".$valore. "' ";
		}
	}
}
//..
//quindi nella select
$query = "select * from pianificazioneSettimanale $wh ORDER BY dossier, zona, dataScarico";
//.....
prova al massimo non funzia
 

Discussioni simili