Inserimento dati a cascata

  • Creatore Discussione Creatore Discussione Alex_70
  • Data di inizio Data di inizio
Caspita, lo sapevo che non poteva andare tutto bene :(

andiamo con ordine,

cinetecaAttori.php

ho cominciato ad inserire il css per abbellire la grafica,
aggiustato ckeditor (quello nuovo che punta al link non funziona, serve una versione precente),
sembrava tutto ok,
cerco un attore, modifico lo stato (Carriera) e paf ..sparita la foto,
vado nella scheda, niente, su phpmyadmin anche li non e' presente, il campo e' stato azzerato (come dimostra lo screen nel campo Foto)
adesso non so dove agire :rolleyes:

sshot_codice28.png
 
ho individuato il problema, avevo commentato il codice foto nella form in quanto lo ritengo inutile,
facendo questo pero' quando si aggiorna qualcosa sparisce anche la foto

PHP:
 <td class='paramname'>
            <b>Foto:</b>
          </td>
          <td class='paramvalue'>
            <input type='text' name='foto' id='foto' size='100' value="<?= $row['foto']; ?>"<?= $readonly2; ?> />
          </td>
        </tr>

soluzione? :rolleyes:
 
altro bug :rolleyes:

modificando la scheda il campo career_status viene azzerato di default (null) invece di lasciare l'impostazione precedente

esempio: da Active ritorna inattivo (0)

PHP:
<tr>
          <td class='paramname'>
            <b>Carriera: </b> (<b><font color='red'>selezionare il valore</font></b>)
          </td>
          <td class='paramvalue'>
            <select name='career_status', id='career_status'><?= $opt; ?></select>&nbsp; &nbsp;<?= $row['career_status']; ?>
          </td>
        </tr>
 
Caspita, lo sapevo che non poteva andare tutto bene
ANDRA' TUTTO BENE !!

aggiustato ckeditor (quello nuovo che punta al link non funziona, serve una versione precente),
c'é qualcosa che mi sfugge, riporto il tuo post,

1589545004092.png



modificando la scheda il campo career_status viene azzerato

sei sicuro di non aver modificato nulla nelle righe che seguono il commento
// valorizza la select "career_status"

per quanto mi rigarda l'ho cambiato su una scheda diverse volte e tutto funziona .....
 
ciao marino51 :)
ckeditor ho dovuto cambiare da cosi

JavaScript:
<script src="https://cdn.ckeditor.com/ckeditor5/18.0.0/classic/ckeditor.js"></script>
<script> CKEDITOR.replace('editor1', { extraPlugins: 'colorbutton,colordialog' });</script>

a cosi (che funziona)

JavaScript:
<script src="ckeditor/ckeditor.js"></script>


<script>
    CKEDITOR.replace('editor1', {
        extraPlugins: 'colorbutton,colordialog'
    });
</script>

ma il problema non e' questo, e' quello segnalato sopra



problema:
se tolgo il codice foto e aggiorno con un dato mi sparisce la foto caricata,

PHP:
PHP:

<tr>
          <td class='paramname'>
            <b>Carriera: </b> (<b><font color='red'>selezionare il valore</font></b>)
          </td>
          <td class='paramvalue'>
            <select name='career_status', id='career_status'><?= $opt; ?></select>&nbsp; &nbsp;<?= $row['career_status']; ?>
          </td>
        </tr>


anche per career status che si azzera se inserisco un dato

qui non ho cambiato nulla, come puoi vedere

PHP:
// valorizza la select "career_status"
    $opt = "";
    $career_status = array( 0 => 'scegli uno stato', 1 => 'Active', 2 => 'Retired', 3 => 'Dead' );  // possible options for career status
    for( $i=0; $i < count($career_status); $i++ )
    {
        $selected = $i == $row['career_status'] ? ' selected' : '';
        $opt .= "<option" . $selected . " value='" . $i . "'>" . $career_status[$i] . "</option>";
    }
?>
<!DOCTYPE html>

e si, ANDRA' TUTTO BENE :)
 
il campo foto, come mi hai indicato tu, contiene il nome del file png o jpg della foto
si carica la foto, come mi hai detto tu, componendo la stringa
$row['nome'] . " (" . $row['actor_id'] . ")/" . $row['foto']

é ovvio che se scardini la composizione della stringa, la foto non viene più visualizzata
il campo foto é necessario

se hai cambiato idea sulla gestione della foto, aggiusta il codice secondo la nuova idea
 
<select name='career_status', id='career_status'><?= $opt; ?></select>&nbsp; &nbsp;<?= $row['career_status']; ?>
non capisco a cosa serve la parte che hai aggiunto rispetto all'originale, il campo
$row['career_status'];
contiene valori 0, 1 e 2 che corrispondono ai valori costruiti con la select,
che senso ha la modifica ?
perché ha smesso di funzionare non lo so, bisognerebbe analizzare tutte le modifiche fatte sul codice originale, FUNZIONANTE

perchè non vuoi limitare i tuoi interventi alla cosmesi per ottenere una bella vista, senza fare modifiche al codice ?
 
il campo foto, come mi hai indicato tu, contiene il nome del file png o jpg della foto
si carica la foto, come mi hai detto tu, componendo la stringa
$row['nome'] . " (" . $row['actor_id'] . ")/" . $row['foto']

é ovvio che se scardini la composizione della stringa, la foto non viene più visualizzata
il campo foto é necessario

se hai cambiato idea sulla gestione della foto, aggiusta il codice secondo la nuova idea

andiamo con ordine, forse mi sono espresso male, io NON HO CANCELLATO IL CODICE RELATIVO ALLA FOTO, ho tolto il codice nella FORM, questo

PHP:
<tr>
          <td class='paramname'>
            <b>Carriera: </b> (<b><font color='red'>selezionare il valore</font></b>)
          </td>
          <td class='paramvalue'>
            <select name='career_status', id='career_status'><?= $opt; ?></select>&nbsp; &nbsp;<?= $row['career_status']; ?>
          </td>
        </tr>

penso che si puo benissimo far funzionare il codice senza visualizzare i dati nella form
 
Ultima modifica:
non capisco a cosa serve la parte che hai aggiunto rispetto all'originale, il campo
$row['career_status'];
contiene valori 0, 1 e 2 che corrispondono ai valori costruiti con la select,
che senso ha la modifica ?
perché ha smesso di funzionare non lo so, bisognerebbe analizzare tutte le modifiche fatte sul codice originale, FUNZIONANTE

perchè non vuoi limitare i tuoi interventi alla cosmesi per ottenere una bella vista, senza fare modifiche al codice ?

anche qui chiarimenti, i codice che ho aggiunto serve per visualizzarmi lo status attuale,
senza questo appare solo "scegli uno stato"

PHP:
$row['career_status'];

qui lo status attuale

sshot_codice30.png


sshot_codice29.png


dove sta il problema? appena si modifica la scheda (non lo staus, altro) lo status si azzerra e non viene visualizzato

qui lo status dopo modifica

sshot_codice31.png


sshot_codice32.png


quindi ci sono problemi nell'aggiornamento ;)
 
quindi ci sono problemi nell'aggiornamento ;)

Buongiorno e scusate l'intrusione.... Ma il modello dati non è stato implementato, quindi coerentemente con quanto scritto lo script effettua operazioni errate...

Basterebbe intervenire sulla query utilizzando anche un custom builder che non necessariamente aggiorna l'intera tupla, ma solo i fields modificati...

Intervieni nella query update facendo un map solo dei fields passati e valorizzati...
 
Buongiorno e scusate l'intrusione.... Ma il modello dati non è stato implementato, quindi coerentemente con quanto scritto lo script effettua operazioni errate...

Basterebbe intervenire sulla query utilizzando anche un custom builder che non necessariamente aggiorna l'intera tupla, ma solo i fields modificati...

Intervieni nella query update facendo un map solo dei fields passati e valorizzati...

ciao macus_adi

:p il problema e' farlo, come si e' capito sono un po' scarso con il codice :)
 
quali cortesemente ?
Queste.... semplice update.... quindi se uno di quei dati viene passato a null e/o vuoto lo sovrascrive senza problemi...
Ed immagino che altre siano identiche...

$sql = "INSERT INTO film(movie_title, also_known, year, minutes, distributor, studio, release_data, incollection, synopsis) VALUES (" . " '" . $row['movie_title'] . "'" . ", '" . $row['also_known'] . "'" . ", '" . $row['year'] . "'" . ", '" . $row['minutes'] . "'" . ", '" . $row['distributor'] . "'" . ", '" . $row['studio'] . "'" . ", '" . $row['release_data'] . "'" . ", '" . $row['incollection'] . "'" . ", '" . $row['synopsis'] . "'" . " )"; echo $sql . "<br />";
 
Queste.... semplice update.... quindi se uno di quei dati viene passato a null e/o vuoto lo sovrascrive senza problemi...
Ed immagino che altre siano identiche...
PHP:
    if( in_array( $set['azione'],
                  array("inserisci", "conferma ins", "modifica", "conferma mod") ) )
    {
//      QUI DEVE ESSERE CONTROLLATA LA PRESENZA E CONGRUITA' DEI DATI INSERITI
    }
 
caspita, non bisticciatevi, non ne vale la pena, "ragazzi" se non si trova la soluzione pazienza,
e poi c'e' questo maledetto virus che gia' ci sta' stressando

marino51 ha fatto un ottimo lavoro, onore suo

macus_adi

gia' sono in difficolta' con il php, per uno come me che fino a tempo fa' non sapeva nemmeno cos'era gia' lo considero un traguardo,

usare CodeIgnitier non penso che sia per me, magari in futuro (quando divento bravo come voi)

make love, don't make war
 
in uno degli ultimi post, ti ho proposto una mano per sistemare la grafica,
ma dovresti postare un'idea di come vorresti la visualizzazione, anche se in parte la si vede dalle ultime figure
ed il css adeguato

poi quando avremo sistemato la grafica, se vorrai, inseriremo i dovuti controlli sulle info che vengono trattate,
nella posizione oggi richiamata con un commento

// QUI DEVE ESSERE CONTROLLATA LA PRESENZA E CONGRUITA' DEI DATI INSERITI

soprattutto per la congruità, ( esempio, se DEAD, deve esserci la relativa data, negli altri casi non deve esserci ... eccetera)
tutto ciò senza bisogno di modelli
 

Discussioni simili