Intanto grazie mille per la rispostaOriginariamente inviato da piero.mac
non ho le tabelle da valutare.
Posso solo segnalarti come fare. In una tabella ci sono tutti i record, nella seconda solo alcuni. Tu vuoi trovare i record della prima tabella che non hanno corrispondenze nella seconda.
Devi fare un left(o right) JOIN. Dipende da come imposti la query.
es.:
in questo modo ti vengono resi i records di s dove l'id risulta NULL nella tabella p.codice:SELECT * FROM segnalazioni s /* tabella LEFT*/ LEFT JOIN pratiche p ON p.SEGNALAZIONE_WEB_ID = s.id WHERE p.SEGNALAZIONE_WEB_ID IS NULL ORDER BY ...
prova.
Quello l'avevo valutato e provato, ma il problema e che poi devo dare la possibilità all'utente di selezionare il tipo di ordinamento che vuole e quindi la strada di buttarmi tutto in un array mi sembrava ottimale...se solo sapessi come ordinarlo
con quella query ottengo solo l'elenco delle segnalazioni che non hanno corrispondenze fra le pratiche. Ma a me serve un conteggio complessivo (mi rendo conto che sto spiegando da cani, chiedo scusa, ma spiegare cose complesse scrivendo è piuttosto difficilotto).
Per ottenere quello che voglio ora mi manca solo un passaggio, che è proprio quello di far ordinare quell'array in base ad una determinata chiave.
sto tentando di costruirmi una funzioncina, ma non ci riesco. L'array che ho sopra è quello complessivo, con tutti i conteggi di cui ho bisogno...conosci mica una qualche funzione che fa al caso mio?
mi sto leggendo in lungo e in largo php.net nella seziona Array, ma per ora non trovo nulla...e a scriverla sono arrivato ad un punto morto:
e non sono nemmeno tanto sicuro che quello che ho scritto fino ad ora vada bene.codice:function sortedArray(&$arr, $key){ $newArr=array(); $min=$arr[0][$key]; // fisso il primo minimo come primo elemento if(sizeof($arr)==0 || $key=="") return false; for($i=0;$i<sizeof($arr)-1;$i++){ foreach($arr[$i] as $k=>$v){ $aus=$arr[$i][$key]; if ($aus<$min) $min=$aus; } } }
![]()