Scheda progress

funziona :D, mi sa che il campo progress_profile e' inutile, confermi? :rolleyes:

ho inserito la funzione esternamente e lo richiamata cosi

PHP:
<?php

require_once ("../funzioni/funzione_count.php");

?>

ovviamente non ho inserito tutti i campi, se no la percentuale scalava in quanto ci sono vuoti ;)

quanto e' bello essere chiari con cosa si espone senza avere la presunzione di essere dei geni :cool:

funzione_count.png

qui la barra scende

funzione_count_2.png
 
Ultima modifica:
buongiorno

marino mi spieghi questo codice?

PHP:
$career_status = array(
    1 => 'Active',
    2 => 'Retired',
    3 => 'Dead'
    );

PHP:
if ( in_array($key, $textFields) ) { $cc++; if ( !empty($value) )                   $ok++; } else
        if ( $key   == "eye_color" )       { $cc++; if ( in_array($value, $eye_color) )     $ok++; } else
        if ( $key   == "career_status" )   { $cc++; if ( in_array($value, $career_status) ) $ok++;
        if ( $value == "Dead" )            { $cc++; if ( !empty($row["died"]) )             $ok++; } }
        // echo $key." - ".$value." - ".$cc." - ".$ok."<br />";

perche' e' strutturato cosi? :rolleyes:

PHP:
if ( $value == "Dead" ) ?





dovrei inserire anche il campo professione, va bene cosi? :rolleyes:

PHP:
$profession    = array(
    1 => 'Actor',
    5 => 'Actress',
    2 => 'Sinqer',
    3 => 'Singer_Actor'
    );

PHP:
if ( in_array($key, $textFields) ) { $cc++; if ( !empty($value) )                   $ok++; } else
        if ( $key   == "eye_color" )       { $cc++; if ( in_array($value, $eye_color) )     $ok++; } else
        if ( $key   == "career_status" )   { $cc++; if ( in_array($value, $career_status) ) $ok++;
        if ( $value == "Dead" )            { $cc++; if ( !empty($row["died"]) )             $ok++; } }
        if ( $key   == "profession" )      { $cc++; if ( in_array($value, $profession) )    $ok++; }

in career_status alla fine del codice non ci vuole la parentesi graffa?
che invede e' doppia in died
 
Ultima modifica:
si il codice é un po' ermetico, deriva ancora dalla formazione imposta dal primo computer con cui ho lavorato,
aveva solo 8192 bytes di memoria (hai letto bene, non mega o giga ma solo 8k) e quindi il mio codice é sempre strizzato ....

ci sono 3 tipi di controlli nel codice,

1 - campo testo che deve contenere un valore ed i nomi dei campi relativi sono elencati nell'array
$textFields = array( "nome", "performer_aka", "foto", "foto_info", "website", "birthday", "height", "biografia" );
il controllo
if ( in_array($key, $textFields) ) { $cc++; if ( !empty($value) ) $ok++; }

2 - campo con valori da select, viene fatto il test sulla validità del valore in base ai valori possibili ($eye_color e $career_status)
if ( $key == "eye_color" ) { $cc++; if ( in_array($value, $eye_color) ) $ok++; }
if ( $key == "career_status" ) { $cc++; if ( in_array($value, $career_status) ) $ok++;

3 - campo dipendente da un altro, nel caso in esame, se "career_status" = "Dead" deve esistere la data relativa
if ( $value == "Dead" ) { $cc++; if ( !empty($row["died"]) ) $ok++; } }

se aggiungi campi testo, li devi inserire nella query (ovvio) e nell'array $textFields
gli altri vanno valutati vedi punti 2 e 3

in career_status alla fine del codice non ci vuole la parentesi graffa?
che invede e' doppia in died

non ci vuole la parentesi graffa (non é un errore)
perchè la successiva if é legata alla precedente e la doppia parentesi alla fine chiude entrambe le aperte, vedi 3


mi sa che il campo progress_profile e' inutile, confermi?
confermo, perchè é un valore molto dinamico, vale la pena calcolarlo al momento
 
capito, inserisco gli altri campi e vedo il risultato :)

3 - campo dipendente da un altro, nel caso in esame, se "career_status" = "Dead" deve esistere la data relativa

precisazione su died e career_status, non sono dipendenti uno dall'altro

died e' un campo testo separato in cui inserisco la data di decesso

career_status e' un campo Enum in cui seleziono i valori

PHP:
$career_status = array(

    1 => 'Active',  

    2 => 'Retired',

    3 => 'Dead'

i 2 campi non sono collegati, dovrei farlo?

si potrebbe fare che in caso di riempimento del campo died automaticamente si seleziona Dead
ma come?

grazie marino

ps: il mio primo computer e' stato un Intel 80386, caricamento del sistema operativo su floppy disk con tempi di attesa lunghissimi, hard disk 80 mb (se non ricordo male), monitor b/n

che tempi :p
 
Ultima modifica:
precisazione su died e career_status, non sono dipendenti uno dall'altro

died e' un campo testo separato in cui inserisco la data di decesso

career_status e' un campo Enum in cui seleziono i valori

se l'attore é attivo o retired NON deve esserci la "dead"date,
che DEVE essere inserita per career_status = "Dead"
 
si potrebbe fare che in caso di riempimento del campo died automaticamente si seleziona Dead
ma come?
le solite poche righe,

usando come riferimento function displayForm, inserisci la nuova funzione

PHP:
/* ---------------------------------------------------------------- */

function careerStatusAdjust()
{
    global $row;

    if( !empty($row['died']) ) $row['career_status'] = 'Dead';
}

/* ---------------------------------------------------------------- */

function displayForm($azione = "")

mentre nella function displayForm inserisci le 2 righe usando i riferimenti

PHP:
        case "inserisci":
            careerStatusAdjust();
            $btn = "<input type='submit' name='submit' value='conferma ins' />";
            break;

        case "modifica":
            careerStatusAdjust();
            $btn = "<input type='submit' name='submit' value='conferma mod' />";
            break;
 
  • Like
Reactions: Alex_70
effettuato la modifica ma il risultato e' diverso :rolleyes:

ho inserito la data in died e poi salvato

invece di Dead viene selezionato Active


dead.png


dead_active.png
 
la procedura lo spiegata sopra, inserisco solo la data nel campo died e salvo

primo tentativo, qui con died e selezionato active



sshot-1.png


riprovo a reinserire i dati


sshot-2.png


riapro la scheda in modifica dopo salvato e sorpresa, stato Active e sparito e adesso e' vuoto



sshot-3.png


queste le modifiche

PHP:
/* ---------------------------------------------------------------- */

function careerStatusAdjust()
{
    global $row;

    if( !empty($row['died']) ) $row['career_status'] = 'Dead';
}

/* ---------------------------------------------------------------- */


/* ---------------------------------------------------------------- */

function displayForm($azione = "")
{
    global $conn, $set, $row, $message;

    if($set['log']) error_log("displayForm : ".$azione, 0);
    if($set['log']) error_log("errore      : ".$message, 0);

    // gestisci bottoni
    $readonly1 = " readonly";
    $readonly2 = " readonly";
    $disabled  = " disabled='disabled'";

    switch ($azione)
    {
        case "cerca":
        case "conferma":
            $readonly2 = "";
            $disabled  = "";
            $btn = "<input type='submit' name='submit' value='modifica' />"
                 . "<span style='padding-left: 30px;'></span>"
                 . "<input type='submit' name='submit' value='elimina' />";
            break;

        case "inserisci":
            $btn = "<input type='submit' name='submit' value='conferma ins' />";
            break;
            
            careerStatusAdjust(); // new
            $btn = "<input type='submit' name='submit' value='conferma ins' />";
            break;

        case "modifica":
            $btn = "<input type='submit' name='submit' value='conferma mod' />";
            break;
            
            
            careerStatusAdjust();  // new
            $btn = "<input type='submit' name='submit' value='conferma mod' />";
            break;

        case "elimina":
            $btn = "<input type='submit' name='submit' value='conferma elim' />";
            break;
 
dopo i "case" inserisci e modifica, dovevi inserire solo la riga

careerStatusAdjust();

rimetti a posto i due "case" come te li ho postati
 
agggh :D, che sbaglio avevo fatto, fixato, adesso funziona,

pero non fa' all'inverso :rolleyes:, se elimino la data in died e salvo non pulisce il campo Dead azzerandolo

si puo fare?
 
non pulisce il campo Dead azzerandolo
credo tu voglia dire che non sistema il campo career_status, vero ?

nel caso lo debba fare, che mettere di default, "attivo" o "ritirato" ? rischiando di avere l'info ma SBAGLIATA

possiamo mettere un controllo all'ingresso dei dati legando i due campi e impedendo di procedere se non sono coerenti
 
ciao marino, buongiorno :)

se il campo died e' vuoto dovrebbe essere settato lo stato 0 (o null) nel campo career_status

PHP:
$career_status = array(

    1 => 'Active',    

    2 => 'Retired',

    3 => 'Dead'

    );
 
Ultima modifica:
cambia così, sperando di non avere problemi con mysql
PHP:
function careerStatusAdjust()
{
    global $row;

    if( !empty($row['died']) )   $row['career_status'] = 'Dead';
    if(  empty($row['died']) and $row['career_status'] = 'Dead' ) $row['career_status'] = '0';
}

se ci fossero problemi con mysql dovresti dirmi cosa viene inserito se non è attivo retired o dead
 
caspita, sapevo che non poteva andare bene :(

con i codice sopra Active e Retired restano su 0 dopo averli selezionati e salvato

il codice funziona adesso abbinato con il campo died e career_status e selezione Dead

PHP:
$career_status = array(

    1 => 'Active',  

    2 => 'Retired',

    3 => 'Dead'

    );

resettato il codice a prima
 
caspita, sapevo che non poteva andare bene
alle volte succede se non si possono avere le informazioni che servono,
il codice che mi avevi mandato riporta la gestione per indice, sistema a cui mi ero attenuto e che ho provato anche per questa modifica ma, come dici, non funziona
1591117611783.png

credo quindi che nel valore vuoto non ci sia lo zero ma probabilmente un NULL
riesci a confermarlo ?
 

Discussioni simili