• Home
  • Forum
  • Fare Web
  • PHP

[PHP] Sistema di gestione presenze

  • Creatore Discussione Creatore Discussione brasoft2019
  • Data di inizio Data di inizio 10 Mag 2019
  • Tag Tag
    attendance campo incrementale gestionale jquery datatable presenze
Stato
Chiusa ad ulteriori risposte.
Prec.
  • 1
  • 2
Primo Prec. 2 di 2

marino51

Utente Attivo
28 Feb 2013
3.205
207
63
Lombardia
  • 13 Mag 2019
  • #21
ok, vediamo di sintonizzarci,

1) "lectia" è settato a zero in tutta la colonna (374 record per adesso ….
quindi intendi andare in crescendo ovvero bisogna incrementare di 1 e fare il controllo per > 7 per restituire l'alert ?

in login.php modifica
PHP:
$student_lectia = 1 + $f_student['lectia'];  //il valore viene recuperato dall'anagrafica, ma credo vada incrementato di 1

2) il controllo sopraddetto vale solo per "tipabonament" = "8_sedute" vero ?

in check.php modifica
PHP:
        if ( $f_student['tipabonament'] = "8_sedute" and $f_student['lectia'] > 7 ) {
            echo 'Error3';

3) gli occasionali vengono conteggiati, ma senza influire sul funzionamento, (giusto per avere uniformità nella gestione di "lectia")


4) altro che ti viene in mente ?
 
Ultima modifica: 13 Mag 2019

brasoft2019

Nuovo Utente
22 Apr 2019
20
0
1
  • 13 Mag 2019
  • #22
Gentile Marino 51,
mi viene in mente che non so come sdebitarmi con te ... ti sto sfrucugliando i maroni sino alla nausea ...
adesso sono fuori casa. Appena rientro ti rispondo piu' dettagliatamente.
Il fatto e' che non so come spiegarmi come si deve e col codice zoppico alquanto...
 

Max 1

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
29 Feb 2012
4.445
338
83
  • 13 Mag 2019
  • #23
@brasoft2019
Per favore niente parolacce sul forum!
Grazie
 

brasoft2019

Nuovo Utente
22 Apr 2019
20
0
1
  • 13 Mag 2019
  • #24
Mi scusi, signor Super Moderatore.
Chiaramente questo non è il posto dove un poco di (eldulcorata) sottile ironia è apprezzata;
Senza offesa, ho l'impressione che Lei probabilmente vive in una isola felice dove la gente è tutta di Alta Cultura ed irreprensibilità.
Oppure è talmente immerso nei Bit/Kilobit/Megabit della sua Super Cultura da non vedere che, soprattutto quando si toccano con mano le disgrazie della vita, un sorriso discreto può aiutare a sentirsi un pò meglio?
Se non guarda la TV (dove si vede e si ascolta molto di peggio) fa bene. Neanch'io la guardo più, da anni. Telegiornali compresi.
Ciò non significa, però, che non capisco e non vedo come vive il nostro Paese.
Per questo sono emigrato e non mi piace vivere in Italia.
Stia tranquillo. Non mi permetterò più.
 

brasoft2019

Nuovo Utente
22 Apr 2019
20
0
1
  • 13 Mag 2019
  • #25
Bene, Marino51.
Polemica chiusa col Super Moderatore, spero.
Ritorniamo al progetto che mi sta a cuore.
L'ultima release, prima delle varianti da me introdotte e spiegate nella replica #11, prevedeva il "countdown" a partire dalla cifra 8 (restituisce un 7 alla prima scansione) sino ad arrivare allo zero.
La modalità è piaciuta, perchè nell'alert ho scritto "ancora ... lezioni.
Non sono ancora riuscito ad applicare gli ultimi suggerimenti, ci proverò domattina all'alba (io lavoro bene dalle 5,30 alle 8,30 del mattino, di pomeriggio/sera tra moglie, figlia, telefono, gatti, rumori vari la mia concentrazione va a "farsi benedire"(AIUTO!!! si potrà dire o è off limits? - con buona pace del Vaticano - ...)
La cosa che mi viene in mente forse è banale: e se si potesse lasciare il valore relativo ai bimbi "occasionali" o senza programmazione a zero, quando non partecipano e impostarlo manualmente a 1 quando partecipano (no ciclo di lezioni) senza alcun aggiornamento incrementale o decrementale? Nel report del CRUD rimarrebbe costantemente il numero 1, legato naturalmente alla data, all'ora e all'insieme di tutte le modalità correlate all'anagrafica.
Cioè nel corso di un mese, se la famiglia lo porta con una certa costanza, potrebbe avere più volte la partecipazione con valore 1.
Questo significherebbe dover scrivere una query particolare che vada ad aggiornare il campo "lectie" solo in presenza della condizione 8_sedute di "tipabonament"?
Il file di configurazione delle query del CRUD BOOTSTRAP (student.php) ha una sezione iniziale che fa una SELECT, un array e una query INSERT per una nuova riga (21 campi) - CREATE, una seconda sezione che fa il READ (una SELECT sempli), una terza che fa l'UPDATE (array e query 21 campi) e l'ultima che fa il DELETE (query).
... continua ...
 

brasoft2019

Nuovo Utente
22 Apr 2019
20
0
1
  • 13 Mag 2019
  • #26
Per evitare di pasticciare i dati nell'update, per esempio, ho commentato gli array che volevo intoccati e ho letteralmente "tolto" dalla query il riferimento ai campi da proteggere.
Funziona.
Fare questo in modo dinamico, però, è tutto un altro film, credo...
A ri-grazie.
 

marino51

Utente Attivo
28 Feb 2013
3.205
207
63
Lombardia
  • 13 Mag 2019
  • #27
come detto, dobbiamo prima sintonizzarci perché mi sembra che io non lo sia con le tue idee,

hai scritto
"Adesso il campo "lectie" è settato a zero in tutta la colonna (374 record"
poi hai scritto
"L'ultima release, prima delle varianti da me introdotte e spiegate nella replica #11, prevedeva il "countdown" a partire dalla cifra 8 (restituisce un 7 alla prima scansione) sino ad arrivare allo zero."

per poterlo decrementare, per "tipabonament" = "8_sedute",
dal valore 8 iniziale, a scalare per ogni scansione di barcode, fino a zero, "lectia" deve essere valorizzato a 8
con una query che aggiorna lectia = 8 per tutti i "tipabonament" = "8_sedute"

così si può decrementare in login.php
PHP:
if ( $f_student['tipabonament'] = "8_sedute" ) { $student_lectia = $f_student['lectia'] - 1; }
else                                           { $student_lectia = 1 }

ed al contempo check.php produce l'alert con
PHP:
        if ( $f_student['tipabonament'] = "8_sedute" and $f_student['lectia'] < 1 ) {
            echo 'Error3';
cioè se è un bimbo che partecipa a 8 lezioni ed ha completato il ciclo, "lectia" é uguale a zero quindi il controllo "< 1" attiva l'alert

e tutti gli altri bimbi, dovranno continuare ad avere zero nella colonna "lectia" in "student",
che verrà sostituito con 1 ( e rimarrà 1 ) ad ogni partecipazione (scansione di barcode) (vedi modifica login.php ) ?
​
fino qui siamo d'accordo ?

ti posto comunque
PHP:
<?php
// login.php
require_once 'admin/connect.php';
$student = $_POST['student'];

$time = date("H:i", strtotime("+0 HOURS"));
$date = date("Y-m-d", strtotime("+0 HOURS"));

$q_student = $conn->query("SELECT * FROM student WHERE student_no = '$student'") or die(mysqli_error());
$f_student = $q_student->fetch_array();

$student_name = $f_student['lastname']." ".$f_student['firstname'];
if ( $f_student['tipabonament'] = "8_sedute" ) { $student_lectia = $f_student['lectia'] - 1; }
else                                           { $student_lectia = 1 }

$conn->query("INSERT INTO time VALUES('', '$student', '$student_name', '$time', '$date', '$student_lectia')") or die(mysqli_error());
$conn->query("UPDATE student set lectia = '$student_lectia' WHERE student_no = '$student'") or die(mysqli_error());

echo "<h3 class = 'text-muted'>".$student_name." <label class = 'text-info'> la ".date("H:i", strtotime($time))."</label></h3>";
?>

PHP:
// check.php
require_once 'admin/connect.php';
$student = $_POST['student'];

$q_student = $conn->query("SELECT * FROM `student` WHERE `student_no` = '$student'") or die(mysqli_error());
$v_student = $q_student->num_rows;

if($v_student > 0) {
    while($f_student = $q_student->fetch_array()) {
        if ( $f_student['tipabonament'] = "8_sedute" and $f_student['lectia'] < 1 ) {
            echo 'Error3';
        }
        else {
            echo 'Success';
        }
    }
}
else {
    echo 'Error2';
}
 

brasoft2019

Nuovo Utente
22 Apr 2019
20
0
1
  • 14 Mag 2019
  • #28
Buongiorno, Marino 51.
vedi? non so spiegarmi bene, mea culpa.
Il sw non è ancora utilizzato dall'associazione. Lo sto testando, a casa e con loro.
Bisogna considerare che questo verrà applicato in una realtà che già funziona da tempo, dove i bimbi vengono inseriti in gruppi omogenei per tipologia di trattamento e per data d'inizio. Che non è uguale per tutti i gruppi. Impossibile fare un RESET e uno START a tutti. La lista è parziale, sia di quelli che vengono sia di quelli che non vengono più. Alla fine quella completa dovrebbe arrivare quasi a 800 soggetti.
La Segreteria deve andare a valorizzare manualmente via CRUD la data d'inizio e il numero di sedute di ciascun bambino quindi, rispetto alla data di oggi, per esempio, ci potrà essere un gruppo (5-6 bambini ciascuno, di media) alle 10 del mattino che, prima dell'ingresso, ha a disposizione ancora 6 lezioni, uno alle 11 che ne ha 2, uno alle 12 che ne ha 3, uno alle 14 che ne ha 7 e così via.
Il lavoro di UPDATE sarà certosino, per la segreteria, ma soltanto la prima volta. Poi ci prenderanno l'abitudine e, di volta in volta, andranno a riaggiornare le valorizzazioni per ogni bimbo, anche in funzione delle diverse attività che non sono fisse ma dipendenti dalle decisioni di psicomotricisti, psicologi, logopedisti e fisioterapisti che lavorano nel centro.
Io ho settato il campo a zero per test, andando a valorizzare con numeri diversi soltanto a scopo dimostrativo, mettendo ad esempio il valore 8 al primo record, il valore 3 al secondo e così via per qualche record, leggendo i barcode con il lettore e verificando i report via CRUD.
Adesso (leggo il tuo post dalle 06:00) : Ok per il valore zero. Non ho ancora provato a modificare, lo faccio non appena termino di scrivere qui.
Bene, verificherò più tardi se potrà essere così.

- Riassunto funzionamento -
Condizione 1: quando "lectie" sarà a zero e "tipabonament" sarà a "occasionale", "no_prog" oppure a "8_sedute" il sistema dovrà restituire l'alert.
Condizione 2: quando "lectie" sarà a 8 e "tipabonament" sarà a "8_sedute" partirà il countdown, che deve poter arrivare sino a zero.
Condizione 3: quando "lectie" sarà a 1 e "tipabonament" sarà a "occasionale"/"no_prog", la registrazione del barcode dovrebbe restituire sempre 1, a meno che venga reimpostato a zero manualmente, dalla segreteria.
Spero di essere stato più chiaro, adesso.

Se il tutto fosse estremamente complicato, avrei trovato una soluzione spartana ma funzionante:
- imposto per i cicli come anzidetto.
- lascio a zero chi non viene.
- imposto un valore 10000 a chi viene occasionalmente
- imposto un valore 6000 a chi viene senza programmazione.

A vista e immediatamente si capisce, dal numero restituito nell'alert, che tipo di attività viene svolta.
Fare i conteggi nella reportistica poi, è semplice.
Che ne dici? Ovvio che, andando a provare le modifiche da te suggerite, adesso, se si risolve meglio è ... ottimo!
Ti faccio sapere, grazie.
 

brasoft2019

Nuovo Utente
22 Apr 2019
20
0
1
  • 14 Mag 2019
  • #29
Buongiorno, Marino 51.
Mi spiace, il codice che mi hai dato non funziona, nel senso che il barcode non viene registrato e non viene restituito alcun errore.
Guarda: se dovesse essere un problema, non crucciarti: tu hai già fatto così tanto che la soluzione "empirica" che io ho applicato può funzionare da subito, anche se non è molto elegante.
Magari c'è un altro modo ma, come ho già detto, io non lo conosco e forse non lo saprei facilmente applicare.
Di funzionalità che mi piacerebbe implementare ce ne sono diverse ma, tutto sommato, non posso permettermi di chiedere troppo ... soprattutto a chi ha già fatto molto.
Se ritieni di volerci provare ancora fai pure, ti ringrazio comunque infinitamente, altrimenti ... no problem. A tua discrezione.
Cordiali saluti.
 

Max 1

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
29 Feb 2012
4.445
338
83
  • 14 Mag 2019
  • #30
Dal regolamento del forum
2.3 Il rispetto degli altri è una regola fondante di questa comunità. Per questo motivo sono vietati i messaggi offensivi, violenti e volgari e verranno allontanati gli utenti il cui unico scopo è creare scompiglio e/o infastidire l'attività della comunità.
In particolar modo sono vietati i messaggi:

  • contenenti espressioni e/o immagini comunque idonei a ledere la sensibilità altrui;
  • contenenti volgarità e/o espressioni offensive indirizzate a iscritti o terze persone;
  • Infine, data la natura di questo forum, è preferibile evitare discussioni di natura politica
Clicca per allargare...
Chiudo
 
Prec.
  • 1
  • 2
Primo Prec. 2 di 2
Stato
Chiusa ad ulteriori risposte.

Discussioni simili

T
Sistema di gestione schede clienti PHP
  • Tetsuia Kohime
  • 28 Giu 2011
  • PHP
Risposte
2
Visite
3K
PHP 29 Giu 2011
Tetsuia Kohime
T
R
[PHP] Creare sistema random
  • rino2002
  • 22 Lug 2019
  • PHP
Risposte
3
Visite
2K
PHP 22 Lug 2019
macus_adi
Ho un problema nella creazione di un sistema di commenti in PHP
  • loois
  • 11 Giu 2017
  • PHP
Risposte
11
Visite
2K
PHP 14 Giu 2017
loois
Sistema votazione mysql - php a stelle
  • Alessandro Le Mura
  • 25 Mag 2013
  • PHP
Risposte
3
Visite
2K
PHP 26 Mag 2013
Longo8
M
PHP/MySQL: Sistema per trovare multiaccount
  • Malware
  • 25 Mar 2013
  • PHP
Risposte
7
Visite
2K
PHP 30 Mar 2013
Malware
M
R
Sistema di commenti in php
  • Respawn
  • 8 Ago 2011
  • PHP
Risposte
1
Visite
3K
PHP 10 Ago 2011
Eliox
P
Sistema di messaggistica in PHP
  • peppepegasus
  • 3 Gen 2011
  • PHP
Risposte
2
Visite
4K
PHP 3 Gen 2011
peppepegasus
P
L
Sistema login Ajax/Php
  • lughino
  • 7 Apr 2010
  • Ajax
Risposte
0
Visite
2K
Ajax 7 Apr 2010
lughino
L
A
PHP e sistema di autenticazione
  • ale.sasha
  • 1 Ott 2009
  • PHP
Risposte
2
Visite
2K
PHP 2 Ott 2009
ale.sasha
A
M
PHP su sistema votazioni configurabile a 5/10 stelle
  • manablo7
  • 21 Apr 2009
  • PHP
Risposte
0
Visite
2K
PHP 21 Apr 2009
manablo7
M
H
Need Help with PHP Database Connection Issues
  • hellmmithha
  • 19 Dic 2024
  • PHP
Risposte
1
Visite
723
PHP 21 Mar 2025
therope
T
F
Cerco Hosting con VECCHIE versioni di php
  • frk
  • 4 Mar 2024
  • Hosting
Risposte
0
Visite
2K
Hosting 4 Mar 2024
frk
F
Captcha php
  • Cosina
  • 21 Gen 2024
  • PHP
Risposte
1
Visite
2K
PHP 22 Gen 2024
WmbertSea
S
passare un valore da un form a un file .php con metodo post
  • smack2005
  • 15 Nov 2023
  • PHP
Risposte
4
Visite
1K
PHP 23 Nov 2023
zorro
N
php msyql
  • nik13
  • 10 Ott 2023
  • PHP
Risposte
6
Visite
2K
PHP 23 Ott 2023
zorro
N
php problemi a visualizzare video
  • nik13
  • 8 Ott 2023
  • PHP
Risposte
3
Visite
2K
PHP 11 Ott 2023
WmbertSea
A
menu a tendina php
  • Annama74
  • 30 Apr 2023
  • PHP
Risposte
1
Visite
2K
PHP 1 Mag 2023
marino51
D
  • Bloccata
protezione cartelle: blocco visualizzazione/scaricamento contenuto, ma abilitazione utilizzo dati da parte di file .php presenti sul sito
  • dastur67
  • 5 Apr 2023
  • Web Server
Risposte
1
Visite
3K
Web Server 5 Apr 2023
dastur67
D
F
Php date_diff
  • Fra_23
  • 30 Mar 2023
  • PHP
Risposte
1
Visite
1K
PHP 31 Mar 2023
marino51
K
[PHP] Aggiungere caratteri ad una stringa in base alla lunghezza della stessa
  • Kiko74b
  • 16 Mar 2023
  • PHP
Risposte
2
Visite
2K
PHP 18 Mar 2023
Kiko74b
K
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?