Problem solving con Codeigniter, il filtraggio dei dati: applicare il metodo Sagan!

Quando si sviluppano applicazioni web c’è sempre un momento dove l’aspirante programmatore va in crisi: come si filtrano i dati? Come mai non funzionano le sessioni? Perchè non mi prende la clausola order by per filtrare i dati? Come risolvo un semplice filtraggio per voto? Come mai se metto tutto in ambiente di produzione non mi funziona? Lo scenario delle problematiche che possono sorgere è talmente vasto che a un certo punto nella mente del programmatore succede come negli scacchi, quando una regina deve difendere contemporaneamente più di un collega sulla scacchiera ma non ce la può fare e va in sovraccarico. Quando accadono questi momenti in cui le cose non progrediscono c’è una sola cosa fda fare, aspettare tempi migliori senza accanirsi a voler perseguire un risultato immediato. Ne sa qualcosa il mitico Sagan che in una recente vittoria del giro d’Italia avvenuta dopo un anno e due mesi di digiuno ha dichiarato finalmente felice all’ intervistatore: a volte se le cose non le cerchi, ti arrivano da sole ed é proprio così, magari se hai la sensazione di sbattere contro under the doom con sceneggiatura di Stephen King devi per forza abbandonare i tuoi tentativi di vittoria che per Sagan richiedono una volata tempestiva in compagnia di una accanita concorrenza e per il programmatore semplicemente una lampadina che dovrà accendersi prima o poi. Vediamo ad esempio la questione del perchè non funziona su Server Aruba. Uno ragionandoci dice in locale funziona quindi cambio i parametri di aggancio al db in rete e importo la tabella poi modifico anche l’url base presente nel file config.php e sono a posto. Poi scarichi i file via FTP e ti compare un messaggio di errore che ti dice pagina inesistente (evidentemente si riferisce alla root dell’ applicazione cioé la index). Allora pensi é perché ho appena installato wordpress nella root e gli amministratori di Aruba di default mettono delle restrizioni magari nella root e nel file hosts? Allora ti viene l’idea adesso cambio path e lo carico nell’ altro spazio che ho in rete e quando fai il tutto ti accorgi di ottenere lo stesso risultato, la pagina non si carica. Ok allora ce sta la macumba? No, semplicemente devi a mente serena allargare le opzioni del problem solving. Tu hai scaricato la penultima versione che monta come motore la versione 7.1 di PHP ma tu attualmente nel tuo spazio non la sopporti ecco, questo per esempio potrebbe essere un ottimissimo motivo per risponderti da solo, vuoi vedere che sta qui il problema? Come lo risolvo? Un modo potrebbe essere ad esempio quello di andare su Aruba nel proprio pannello di controllo e vedere se é possibile allinearsi e cambiare versione. Se anche dopo ricevi 404 Page Not Found, the page you requested was not found, allora si deve accendere un altra lampadina e cercare qualcosa di diverso, magari nell’ http per distrazione hai dimenticato una S di https e nel file path del config non lo hai inserito etc etc. Vediamo ad esempio in dettaglio la questione dei dati da filtrare nella nostra cineteca western. L’errore più comune per il neofita che non conosce CODEIGNITER e come funziona la logia dei rimbalzi MVC è quello di fare delle operazioni procedurali. Ad esempio se ho una pagina che raccoglie tutti i film con vari voti assegnati e voglio solo estrapolare quelli più belli che hanno preso otto dalla critica verrebbe spontaneo mettere nel link che rimanda alla pagina filtrata il parametro arbitrario magari value e assegnargli un valore sei. Dall’ altra parte nella pagina di allunaggio faccio lavorare la suprglobals $_GET che analizza i dati dopo il punto interrogativo della URL e tramite una semplice istruzione dove definisco un contenitore variabile con $value e gli assegno il valore = $_GET[‘value’]; che cattura il valore della stringa transitata sul browser ottengo un parametro utile per la query della pagina a quel punto nel momento della stampa a video gli dirò nel recordset tirami fuori tutti i dati della colonna voto dove il valore equivale a $value (clausola WHERE) che deve essere per forza piena, altrimenti rimandami indietro un messaggio di errore. Ma CODEIGNITER non funziona così. ha una index (metodo e pagina) dopo il basepth che é localhost/western se si lavora in locale (che si può anche omettere) seguita dal nome del controller e dai metodi inseriti nel controller (possono essere anche più di uno) e infine se c’è anche un parametro finale utile in quei casi dove devo trasferire qualcosa da raccogliere da qualche altra parte come visto sopra con il procedurale. A questo punto è chiaro che ci devono essere delle modifiche importanti nel modello e nel controller e nelle viste, che non dovranno più necessariamente appoggiarsi a quella base (oppure si). Per cui mi servirà la logica per estrapolare con query diversi i voti da sei-sette-otto etc e questa logica catturata da alcune funzioni del controller costruite per spedirei dati in uscita alla vista, quindi alle nuove pagine corrispondenti legate tra loro da coerenza e affinità (non posso fare una query che estrapola un valore sei e poi il controller mi spedisce i dati dopo averli elaborati alla pagina western8_view, naturalmente servirà una western6_view.php. Certamente occorre e serve autonomia nell’ andare acercare le risoluzioni perché tutto quello che ci capita é già capitato ad altri che hanno già risolto dandoci la possibilità di risparmiare tempo. Tutto é mutevole e un consiglio dato per una certa versione di una tecnologia oggi magari non vale più. In ogni caso la guida di riferimento della tecnologia data con il pacchetto file è oro e anche vari siti che propongono vari tutorial possono aiutare digitando sui motori di ricerca i criteri giusti per identificare e circoscrivere il fatto su cui documentarsi. Insomma chi sperava di imparare codeigniter come la famosa dieta di Pozzetto e Montesano deve rivedere le sue concezioni, non bastano sette giorni per perdere 7 kg o come in questo caso per risolvere tutte le magagne. L’importante è ricordarsi di quello che é successo a Sagan a digiuno di vittore di un anno e due mesi e con l’affanno di voler centrare l’obiettivo alla prima occasione che però deluderà le nostre aspettative. Quando i risultati non arrivano bisogna avere pazienza e continuare a lavorarci sopra, non sempre le squadre di calcio che perdono a ripetizione magari in serie A in fondo classifica, sono destinate a dare i tre punti a tutti. I momenti di soddifazione arriveranno come è stato per noi ad esempio la scoperta dei dati filtrati a proprio uso e consumo per la nostra cineteca western. E’ bene tenere presente che risolta una questione dietro l’angolo ne subentrerà subito un’altra che busserà all’ uscio della nostra pazienza zen!

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google photo

Stai commentando usando il tuo account Google. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...