• Home
  • Forum
  • Fare Web
  • PHP

Visualizzare pratiche meno aggiornate

  • Creatore Discussione Creatore Discussione bep74
  • Data di inizio Data di inizio 6 Ott 2010
  • Tag Tag
    convert
B

bep74

Nuovo Utente
6 Ott 2010
5
0
0
  • 6 Ott 2010
  • #1
Ciao ragazzi,
Vorrei visualizzare in ordine di tempo (dalla più recente) tutte le pratiche meno aggiornate per trovare quelle rimaste abbandonate o che hanno bisogno di qualche attività da espletare.

Mi spiego meglio...
Le pratiche contengono un campo 'note' che ogni volta che viene fatta una attività viene aggiornato. Vorrei visualizzare quelle che non vengono aggiornate da tempo.
Purtroppo pero il campo 'note' è un semplice campo di testo (es: 19.09.10 spedita raccomandata).
C'è qualche operazione che possa 'esplodere' il contenuto del capo note, prendere l'ultima data inserita e ordinare la query?
Il database mysql non è modificabile, poichè è di un gestionale già preconfezionato.

L'unica cosa positiva è che il campo note comunque è rigido, cioè ogni volta che viene compiuta un'attività viene inserita la data nel formato gg.mm.aa e poi chiusa con //:

esempio:
Pratica: 1
Cliente: x
Note : 10.01.10 Apertura pratica // 15.03.10 Inviata raccomandata // 16.04.10 Inviata ulteriore raccomandata // 10.09.10 Contattato cliente


Questa è la query che mi visualizza tutte le pratiche in ordine di data o codice pratica:

PHP:
$sql  = "select *, tbl_Clienti.Nominativo as cliente_nome, tbl_Controparti.Nominativo as controparte_nome, date_format(tbl_Pratiche.Data_Apertura, '%d/%m/%y') as Data_Apertura FROM tbl_Clienti, tbl_Controparti, tbl_Operatori, tbl_Pratiche  WHERE tbl_Clienti.ID_Cliente = tbl_Pratiche.ID_Cliente AND tbl_Controparti.ID_Controparte = tbl_Pratiche.ID_Controparte AND tbl_Operatori.ID_Operatore = tbl_Pratiche.ID_Operatore AND tbl_Operatori.Sigla_Operatore='$SO'  AND tbl_Pratiche.Stato=1 ORDER BY Data_Apertura";
Grazie!
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
  • 6 Ott 2010
  • #2
in MySQL esiste la funzione CONVERT che ti permette di effettuare il casting da stringa a data
 
B

bep74

Nuovo Utente
6 Ott 2010
5
0
0
  • 6 Ott 2010
  • #3
Ciao,
si ok, ma a me serve capire se c'è la possibilità di prendere innanzitutto la data dopo l'ultimo //.

E cioè:

Note : 10.01.10 Apertura pratica // 15.03.10 Inviata raccomandata // 16.04.10 Inviata ulteriore raccomandata // 10.09.10 Contattato cliente

Devo far prednere questa ultima data, convertirla nel formato giusto e fare una query su tutte le pratiche elencandomi le pratiche con questa data di ultima attività o modifica.

Spero sia stato chiaro.

Grazie comunque
Giuseppe
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 7 Ott 2010
  • #4
ciao
posso suggerirti questo modo (forse più semplice a farsi che a dirsi)
se come hai detto il campo note viene sempre scritto nella stessa maniera
con query e fetch_array estrai il campo note
Note : 10.01.10 Apertura pratica // 15.03.10 Inviata raccomandata // 16.04.10 Inviata ulteriore raccomandata // 10.09.10 Contattato cliente

$note=$riga['note'];
la esploldi secondo //

$note_esplose=explode("//",$note);
conti quanti array hai ottenuto - 1 (gli array iniziano da zero)
$quanti=count($note_esplose);
e tratti l'ultimo array che, nel caso dell'esempio che hai fatto, risulta essere $note_esplose[3]

togli gli eventuali spazi iniziali e finali
$note_esplose[3]=trim($note_esplose[3]);
riesplodi con separatore spazio

$note_due_volte_esplose=explode(" ",$note_esplose[3]);

nella'array in $note_due_volte_esplose[0] dovresti ritrovarti la data cercata

poi per elaborarla alla prossima puntata
 
B

bep74

Nuovo Utente
6 Ott 2010
5
0
0
  • 7 Ott 2010
  • #5
Ciao,
grazie per il suggerimento.

Sono arrivato qui:
$note_esplose=explode("//",$note);

Poi ho fatto così:
//prendo l'ultimo array
$last = trim(end($note_esplose));

preg_match('/^(..)\.(..)\.(..)/', $last, $match);

$giorno = $match[1];
$mese = $match[2];
$anno = $match[3];

Ora come ricompongo la data per renderla riconoscibile dal php? La inserisco poi direttamente nell'ORDER BY della query ed il gioco è fatto?

Grazie

Grazie
G.
 
Ultima modifica: 7 Ott 2010

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 8 Ott 2010
  • #6
ciao
non so come è fatta la tabella, quindi non so dirti se "il gioco è fatto" anche se credo di no, perche se fosse stato così semplice non servirebbe tutto l'ambaradan che ti ho suggerito.
l'orderby funziona sul valore di un campo e la data che hai estratto non è il valore di un campo, credo quindi che i passaggi siano ancora lunghi.
comunque vedo che hai ottenuto i ntanto i valori di
$giorno = $match[1];
$mese = $match[2];
$anno = $match[3];
secondo me per rendere la data php dovresti trasformarla prima nel formato anno-mese-giorno (es. 2010-10-08) poi in timestamp
se l'anno è espresso di due cifre devi trasformarlo
$anno = "20".$match[3];//es. 10 diventa 2010
se il mese è di una cifra (es 3 => marzo) devi riportarlo (meglio) a due
if(strtlen($mese)<2){$mese="0".$mese;}
analogamente per il giorno
fatto questo ricostruisi la data
$data_umana=$anno."-".$mese."-".$giorno;
e la trasformi in timestamp
$data_stamp=strtotime ($data_umana);
la data in time poi è comodamente trattabile in vari modi
da questo punto (credo) che tutto dipenda da come è la struttura della tabella.
potresti postarla per capire meglio
 
B

bep74

Nuovo Utente
6 Ott 2010
5
0
0
  • 8 Ott 2010
  • #7
Ciao,
fortunatamente le date inserite nel campo note sono sempre nello stesso formato gg.mm.aa quindi passo direttamente a creare la data corretta (modificando solo l'aggiunta del '20' per l'anno in:

$giorno = $match[1];
$mese = $match[2];
$anno = "20".$match[3];
$data_um = "$anno-$mese-$giorno";
$data_stamp=strtotime ($data_um);

Ah ecco quindi è inutile che ci metto nella query ORDER BY '$data_stamp'.

QUale tabella vuoi vedere? Sono più tabelle... ti allego la struttra del database e della tabella PRATICHE (dove c'è il campo Note da cui estraggo quella data per tutto l'ambaradan).

Grazie per il tuo aiuto!
 

Allegati

  • struttura.jpg
    67,1 KB · Visite: 285

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 8 Ott 2010
  • #8
ciao
visto, però devi avere un po' di pazienza, ho alcune giornate di fuoco.
comunque dalla tabella pratiche vuoi vedere le pratiche, e/o i clienti, più vecchie di xxx giorni, se non ho capito male giusto?
 
B

bep74

Nuovo Utente
6 Ott 2010
5
0
0
  • 8 Ott 2010
  • #9
Ciao,
dunque il mio obiettivo e visualizzare le pratiche abbandonate, quindi vorrei ordinarle appunto per quella ultima data estrapolata dal campo 'Note' (data che come abbiamo visto viene estratta con quella operazione ma non è un campo della tabella).

Attualmente l'elenco vedo:

Codice pratica - Data_apertura
Cliente - Controparte
Note

L'ordine deve essere,lo ripeto, dalla pratica in cui l'ultimo aggiornamento (ultima data inserita nel campo Note) è più remoto, così da visualizzare le pratiche dalle più abbandonate alle più aggiornate.

La limitazione è che non posso modificare il database perchè è di un software gestionale... io faccio solo report di estrazione dati personalizzati.

Grazie infinite per la tua disponibilità
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 12 Ott 2010
  • #10
ciao
un po le giornate di fuoco sono passate.
visto che non puoi, come detto, usare l'orderby in quanto la data non è un campo forse puoi operare in
una di questi modi:

intanto ti dico il primo (per il secondo ho un'idea ma devo pensarci sopra)

se hai la possibilità di accedere al db puoi modificare la tabella con alter table, aggiungendo un campo.
ti fai un piccolo script
PHP:
<?php
//dati per la connessione
$modifica="ALTER TABLE nome_tabella ADD ultima INT(18) NULL";
$query=mysql_query($modifica);
?>
in questo modo aggiungi un campo in cui andrai ad inserire il valore (in time stamp) dell'ultima data che hai ricavato
cioè
un altro piccolo script che puoi lanciare ogni tanto e che va a leggere tale data e uppa il campo ultima
con il valore della data dell'ultimo aggiornamento.
(te lo scrivo in pseudo codice)
fai la query di select
leggi il primo record
ricavi l'ultima data
uppi il record
leggi il secondo ecc...


a questo punto puoi usare l'order by DESC o ASC es.
SELECT * FROM mia_tabella ORDER BY ultima
quindi i record ti vengono visualizzati in ordine della data dell'ultimo aggiornamento
quando fai il mysql_fetch_array per visualizzare i record, ti puoi anche ritrasformare (a monitor) la data da timestamp a umana con
PHP:
echo date("d m Y",$riga['ultima'];//risulta es 01 10 2010

il secondo, se non puoi usare quanto sopra, è secondo me un po' più complesso, ci penso meglio e poi ti so dire
 
Devi accedere o registrarti per poter rispondere.

Discussioni simili

I
visualizzare dati tabella
  • Imperor
  • 3 Giu 2024
  • PHP
Risposte
1
Visite
1K
PHP 3 Giu 2024
Imperor
I
I
visualizzare lista utenti registrati
  • Imperor
  • 13 Nov 2023
  • PHP
Risposte
1
Visite
1K
PHP 15 Nov 2023
Imperor
I
N
php problemi a visualizzare video
  • nik13
  • 8 Ott 2023
  • PHP
Risposte
3
Visite
2K
PHP 11 Ott 2023
WmbertSea
P
come posso visualizzare l'nvr online
  • Panda15004
  • 11 Mag 2023
  • IP Cam e Videosorveglianza
Risposte
1
Visite
1K
IP Cam e Videosorveglianza 8 Apr 2024
ortorob
O
K
Visualizzare del html responsive in una Webview
  • klomax
  • 27 Feb 2023
  • Sviluppo app per Android
Risposte
0
Visite
2K
Sviluppo app per Android 27 Feb 2023
klomax
K
M
Visualizzare ultima data registrata
  • muscaril
  • 31 Gen 2023
  • MS Access
Risposte
2
Visite
1K
MS Access 2 Feb 2023
muscaril
M
G
Numero zero null non deve visualizzare nulla
  • Gae
  • 18 Dic 2022
  • PHP
Risposte
0
Visite
1K
PHP 18 Dic 2022
Gae
G
D
visualizzare solo foto filtrate
  • djjunior
  • 13 Ott 2022
  • jQuery
Risposte
1
Visite
2K
jQuery 19 Ott 2022
djjunior
D
M
Visualizzare nuove domande in base a risposta precedente
  • Max61
  • 21 Feb 2022
  • PHP
Risposte
0
Visite
818
PHP 21 Feb 2022
Max61
M
N
  • Bloccata
Non Autorizzato. Dovresti rimuovere il parametro customize_messenger_channel per visualizzare l'anteprima in frontend.
  • Noemi
  • 22 Giu 2021
  • WordPress
Risposte
1
Visite
2K
WordPress 22 Giu 2021
Max 1
M
visualizzare ip cam in windows
  • minosat
  • 29 Mar 2021
  • IP Cam e Videosorveglianza
Risposte
0
Visite
1K
IP Cam e Videosorveglianza 29 Mar 2021
minosat
M
W
  • Bloccata
visualizzare solo file html e sottocartelle di una cartella
  • wilweb
  • 13 Mar 2021
  • PHP
Risposte
1
Visite
1K
PHP 14 Mar 2021
Max 1
visualizzare il codice senza usare gli &
  • napuleone
  • 18 Gen 2021
  • HTML e CSS
Risposte
1
Visite
2K
HTML e CSS 3 Ago 2021
Massimo Moretti
M
Y
Come caricare e visualizzare un'immagine
  • ymod
  • 22 Dic 2020
  • PHP
Risposte
0
Visite
1K
PHP 22 Dic 2020
ymod
Y
M
Visualizzare file PDF con link preso dal DB
  • Max61
  • 26 Lug 2020
  • PHP
Risposte
0
Visite
2K
PHP 26 Lug 2020
Max61
M
Visualizzare 2 bandiere
  • Alex_70
  • 23 Apr 2020
  • PHP
Risposte
6
Visite
1K
PHP 23 Apr 2020
Alex_70
Visualizzare anteprima foto in dropdown
  • Alex_70
  • 20 Apr 2020
  • PHP
Risposte
2
Visite
1K
PHP 20 Apr 2020
Alex_70
L
Visualizzare tabella all'interno finestra modal
  • Luca Ambrosini
  • 29 Feb 2020
  • PHP
Risposte
4
Visite
2K
PHP 5 Mar 2020
Luca Ambrosini
L
P
Visual Studio VB.NET Visualizzare un messaggio alla scadenza.
  • Pacifico
  • 29 Feb 2020
  • .NET Framework
Risposte
0
Visite
2K
.NET Framework 29 Feb 2020
Pacifico
P
J
[PHP] Visualizzare risultato query stessa pagina
  • jamez81
  • 30 Nov 2019
  • PHP
Risposte
3
Visite
2K
PHP 1 Dic 2019
Frozzen
F
Condividi:
Facebook X (Twitter) LinkedIn WhatsApp e-mail Condividi Link
  • Home
  • Forum
  • Fare Web
  • PHP
  • Italiano
  • Termini e condizioni d'uso del sito
  • Policy Privacy
  • Aiuto
  • Home
Community platform by XenForo® © 2010-2024 XenForo Ltd. | Traduzione a cura di XenForo Italia
Menu
Accedi

Registrati

  • Home
  • Forum
    • Nuovi Messaggi
    • Cerca...
  • Novità
    • Featured content
    • Nuovi Messaggi
    • Ultime Attività
X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?

X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?