Inserimento dati a cascata

  • Creatore Discussione Creatore Discussione Alex_70
  • Data di inizio Data di inizio
niente, ricevo errore

PHP:
case "cerca":
            $sql = "SELECT  film_id, movie_title, also_known, year, minutes, distributor, studio, release_data, incollection, synopsis"
                 . "  WHERE film_id='" . $row['film_id'] . "'";
            break;

sshot_codice5.png
 
Ciao marino51, buongiorno :)

ho aggiornato la query ma continua a dare errore :rolleyes:


PHP:
case "cerca":
            $sql = "SELECT  film_id, movie_title, also_known, year, minutes, distributor, studio, release_data, incollection, synopsis"
                 . " FROM film WHERE film_id='" . $row['film_id'] . "'";
            break;


PHP:
SELECT film_id, movie_title, also_known, year, minutes, distributor, studio, release_data, incollection, synopsis FROM film WHERE film_id='508'

Fatal error: Call to undefined method mysqli::fetch_assoc() in E:\OSPanel\domains\localhost\cinema\archivioFilm.php on line 165

line 165

PHP:
     $row = $conn->fetch_assoc();
 
in accordo con il manuale php sezione mysqli,
aggiorna così, spostando e correggendo in modo da avere tutto mysql vicino

PHP:
function aggiornaDB($azione = "")
{
    global $row, $message;

    switch ($azione)
    {
        case "inserisci":

//--------------------------------------

    echo $sql . "<br />";


    $servername = "localhost";
    $username   = "username";
    $password   = "password";
    $dbname     = "myDB";
    $conn = new mysqli($servername, $username, $password, $dbname);
    if ($conn->connect_errno) { $message = "ERRORE : connessione al db fallita, " . $conn->connect_error; return; }

    $result = $conn->query($sql);
    if ( !$result ) { $message = "ERRORE : aggiornaDB, errore nella query, " . $conn->error; return; }

    if ($azione == "cerca")
    {
        $row = $result->fetch_assoc();

        $result->free();
    }
    else
 
ancora errore :confused:

spostato e copiato, mi sembra corretto ma...

PHP:
SELECT film_id, movie_title, also_known, year, minutes, distributor, studio, release_data, incollection, synopsis FROM film WHERE film_id='508'

Fatal error: Call to a member function close() on null in E:\OSPanel\domains\localhost\cinema\archivioFilm.php on line 198

line 198

$conn->close();
 
Ultima modifica:
ti posto tutta la funzione aggiornaDB,

PHP:
function aggiornaDB($azione = "")
{
    global $row, $message;

    switch ($azione)
    {
        case "inserisci":
            $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']     . "'"
                 . "  )";
            break;

        case "modifica":
            $sql = "UPDATE film SET"
                 . "  movie_title='"   . $row['movie_title']  . "'"
                 . ", also_known='"    . $row['also_known']   . "'"
                 . ", year='"          . $row['year']         . "'"
                 . ", minutes='"       . $row['minutes']      . "'"
                 . ", distributor='"   . $row['distributor']  . "'"
                 . ", studio='"        . $row['studio']       . "'"
                 . ", release_data='"  . $row['release_data'] . "'"
                 . ", incollection='"  . $row['incollection'] . "'"
                 . ", synopsis='"      . $row['synopsis']     . "'"
                 . "  WHERE film_id='" . $row['film_id']      . "'";
            break;

        case "elimina":
            $sql = "DELETE FROM film"
                 . " WHERE film_id='" . $row['film_id']. "'";
            break;

        case "cerca":
            $sql = "SELECT film_id, movie_title, also_known, year, minutes, distributor, studio, release_data, incollection, synopsis"
                 . " FROM film WHERE film_id='" . $row['film_id'] . "'";
            break;

        default:
            $message = "ERRORE : aggiornaDB, azione non riconosciuta";
            return;
            break;
    }
    echo $sql . "<br />"; error_log($sql, 0);


    $servername = "localhost";
    $username   = "exadmin";
    $password   = "expass";
    $dbname     = "xxx";
    $conn = new mysqli($servername, $username, $password, $dbname);
    if ($conn->connect_errno) { $message = "ERRORE : connessione al db fallita, " . $conn->connect_error; return; }

    $result = $conn->query($sql);
    if ( !$result ) { $message = "ERRORE : aggiornaDB, errore nella query, " . $conn->error; return; }

    if ($azione == "cerca")
    {
        $row = $result->fetch_assoc();  $result->free();
    }
    else
    {
        inizializzaVariabili();

        $message = "Congratulazioni, il database é stato aggiornato.";
    }
    $conn->close();
}
 
adesso funziona, riesco a fare la ricerca ma... altro problema.. non visualizzo i bottoni per modifica ed elimina :p

sshot_codice6.png
 
Ultima modifica:
e pure peggiorato
non é peggiorato, ho lasciato del codice che uso io per le prove,
avevo timore che dei dati presenti nel db potessero interferire con html, ma non sembra sia questa la causa,
forse hai aggiunto del codice che impedisce alla parte finale della pagina di essere visualizzata
perché ciò che vedo io con il codice che ti ho inviato é corretto, lo vedi di seguito,

1588014771818.png
 
strano, a me non funziona :( barare perche' poi? tu mi stai aiutando, non ho nessun motivo di farlo

ecco le prove, guarda l'id che e' uguale al film inserito

inoltre i buttoni modifica ed elimina non ci sono

sshot_codice8.png


sshot_codice9.png


qui la pagina bianca, nessun dato inserito eppure l'inserimento va a buon fine, questo si dovrebbe evitare

sshot_codice10.png


sshot_codice11.png
 
Ultima modifica:
ok, vero, hai ragione, errore mio,
inserisci la seconda riga dopo quella esistente
PHP:
        $row = $result->fetch_assoc();  $result->free();
        $row['azione'] = "cerca";                        //<<<<------ nuova riga da inserire
 
ho preferito cambiare il nome alla variabile, troppo pericoloso usare $row.
in allegato trovi lo script con la variabile cambiata $row -> $set
fammi sapere se ok

ps, volendo puoi commentare la riga
echo $sql . "<br />"; error_log($sql, 0);
 

Allegati

:D adesso funziona a... meta, visualizzo i bottoni elimina e modifica e sono riuscito anche ad eliminare un record

purtroppo non visualizzo i dati, penso che si deva implementare anche un avviso prima di modificare o eliminare

sshot_codice12.png
 
Finalmente FUNZIONA :D con l'ultimo file, forse il problema era questo $row

rimane questo errore da risolvere e inserire le conferme di eliminazione / modifica / inserimento

sshot_codice13.png
 
bene,
io ho finito, adesso ti ingegni tu, é tutto credo ben impostato per aggiungere,

il controllo dei duplicati nella "function validaForm"

il bottone di conferma nella "function displayForm"
vedi la nota "// gestisci bottoni"
 
finito? :( ma non abbiamo completato lo script, ricordi che non era questo il mio obbiettivo, bisogna collegare gli attori ai film

leggi il primo post
 

Discussioni simili