• Home
  • Forum
  • Fare Web
  • PHP

Inserimento dati a cascata

  • Creatore Discussione Creatore Discussione Alex_70
  • Data di inizio Data di inizio 25 Apr 2020
Prec.
  • 1
  • …
  • 8
  • 9
  • 10
  • 11
Succ.
Primo Prec. 10 di 11 Succ. Ultimo

Alex_70

Utente Attivo
13 Nov 2018
371
14
18
HELL
  • 21 Mag 2020
  • #181
attivato $set['log'] = true;

quando inserisco un dato da select (che non visualizzo) si resetta l'altro
il messaggio visualizza
Congratulazioni, Alex é stato modificato nel database.

dovrei visualizzare altro?
 

marino51

Utente Attivo
28 Feb 2013
3.205
207
63
Lombardia
  • 21 Mag 2020
  • #182
Alex_70 ha scritto:
attivato $set['log'] = true;
Clicca per allargare...
guarda nel log di php, trovi la query di update, copia e incolla per postarla qui
 

Alex_70

Utente Attivo
13 Nov 2018
371
14
18
HELL
  • 21 Mag 2020
  • #183
postato dove sai

prima ho inserito career_status e poi salvato, reinserito dopo la ricerca eye_color

risultato come ho scritto sopra
 

marino51

Utente Attivo
28 Feb 2013
3.205
207
63
Lombardia
  • 22 Mag 2020
  • #184
ho sistemato i file, trovi un "include" in più, nel caso lo dovessi modificare intervieni solo su di lui
 

Allegati

  • cineteca.zip
    cineteca.zip
    14,1 KB · Visite: 268

Alex_70

Utente Attivo
13 Nov 2018
371
14
18
HELL
  • 22 Mag 2020
  • #185
buongiorno marino51

sto testando il tutto, sembra che il tutto FUNZIONA perfettamente (finalmente )

hai fatto un ottimo lavoro, grazie, sei veramente una brava persona, oltre che un ottimo programmatore

ci sarebbero pero' delle piccole cose d'aggiustare, vedi tu' se vale la pena

1)
quando si effettua la ricerca su attori e film lasciando tutti i campi vuoti il risultato mi restituisce tutti i record,
questo metodo va bene se ci sono pochi inserimenti ma in caso di 1000 1.000.000 di record la pagina sicuramente andra in crash
esaurendo la memoria
come si risolve?
con la paginazione
esempio su 1000 risultati
10 record (personalizzabili) per pagina

2)
l'eliminazione di un film non e' possibile se e' collegato con attori

possibile che non esiste un metodo per cancellare un film o scollegare la relazione ? mi sembra strano

l'idea sarebbe creare una query che prima cancella/scollega il record nella tabella film_actor e poi il film nella tabella film

tabelle
mio database con relazioni

actor
actor_id
nome


film_actor // collega film_actor
actor_id
film_id


film
film_id
movie_title


fammi sapere
 

Alex_70

Utente Attivo
13 Nov 2018
371
14
18
HELL
  • 22 Mag 2020
  • #186
per la paginazione ci viene in aiuto Boostrap

W3Schools.com

W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.
www.w3schools.com

con Search

Bootstrap Datatables - examples & tutorial

Datatables built with the latest Bootstrap 5. Advanced customization options for tables like searching, sorting, and pagination.
mdbootstrap.com
 

Alex_70

Utente Attivo
13 Nov 2018
371
14
18
HELL
  • 22 Mag 2020
  • #187
o forse non e' necessaria la paginazione, basta solo validare i campi quando si fa' la ricerca con un warning di inserire almeno un dato
 

marino51

Utente Attivo
28 Feb 2013
3.205
207
63
Lombardia
  • 22 Mag 2020
  • #188
Alex_70 ha scritto:
quando si effettua la ricerca su attori e film lasciando tutti i campi vuoti il risultato mi restituisce tutti i record,
questo metodo va bene se ci sono pochi inserimenti ma in caso di 1000 1.000.000 di record la pagina sicuramente andra in crash
esaurendo la memoria
come si risolve?
con la paginazione
esempio su 1000 risultati
10 record (personalizzabili) per pagina
Clicca per allargare...
si devono usare i filtri, sono stati messi apposta per ridurre il numero degli elemeti estratti e facilitare la scelta ottenendo un set mirato
credo che un'altra soluzione non abbia senso, perché far scorrere le pagine annoia, non é corretto eseguire due ricerche in sequenza ed ogni volta rischiare di "paginare" 100 volte per non aver usato i filtri
i filtri lavorano anche con parole incomplete, puoi cercare "l' esorcista" immettendo la l seguita dall'apice ed il film viene selezionato

perché é necessaria la paginazione ?

Alex_70 ha scritto:
l'eliminazione di un film non e' possibile se e' collegato con attori

possibile che non esiste un metodo per cancellare un film o scollegare la relazione ? mi sembra strano
Clicca per allargare...
per me non é un problema di programmazione ma logico,
ritieni sia giusto eliminare il film con tutti i legami agli attori, pensaci ancora un attimo e lo facciamo
 

Alex_70

Utente Attivo
13 Nov 2018
371
14
18
HELL
  • 22 Mag 2020
  • #189
1) lo escludiamo, penso che in fondo non vale la pena, in fondo la ricerca serve per questo

2) eliminazione film, questo e' necessario,

per testare gli script ho inserito un film/i che non esiste nella realta' (e adesso e' inutile) nel profilo Alex (inutile anche questo)

Tabella film
Test movie per Alex
movie_id 343

Tabella actor
Alex
actor_id 40

adesso in phpmyadmin eseguo questa query nella tabella film_actor (che collega actor e film)

SQL:
SELECT * FROM `film_actor` WHERE `film_id` = 343

trovato, eseguo altra query

SQL:
DELETE FROM `film_actor` WHERE `film_actor`.`actor_id` = 40 AND `film_actor`.`film_id` = 343;

collegamento film actor delete

altra query e trovo il film da tabella film

SQL:
SELECT * FROM `film` WHERE `film_id` = 343

delete film

SQL:
DELETE FROM `film` WHERE `film`.`film_id` = 343;

fatto, film cancellato

quindi il codice sarebbe strutturato cosi

1) delete collegamento da film_actor
2) conferma delete o rinuncia
3) dopo la scelta delete
4) message collegamento cancellato
5) message se voglio cancellare anche il film
6) conferma delete o rinuncia
7) message film cancellato dal dtabase

fine

anche per gli attori penso vale la stessa logica, Alex e' inutile e' dovrebbe essere cancellato dopo aver rimosso i collegamenti


query testate su phpmyadmin
 
Ultima modifica: 22 Mag 2020

Alex_70

Utente Attivo
13 Nov 2018
371
14
18
HELL
  • 22 Mag 2020
  • #190
adesso che ci penso rimane un problema, nel caso il film e' collegato con molti attori?

allora si dovrebbe eseguire una ricerca e valutare se eliminare i collegamenti film actor
 

marino51

Utente Attivo
28 Feb 2013
3.205
207
63
Lombardia
  • 22 Mag 2020
  • #191
intanto con queste 4 righe di codice, puoi limitare la lista dei film selezionando solo quelli collegati

PHP:
function leggiPost()
{
    global $conn, $set, $actor, $film;

    $set['azione']  = trim(htmlspecialchars($_POST['myForm']));
    $set['bottone'] = trim(htmlspecialchars($_POST['submit']));    // aggiungi questa riga


PHP:
            if ($film['release_data']) { $sql.= " AND release_data LIKE '%" . $film['release_data']."%'"; }

            if ($set['bottone'] == "collegati") { $sql = "SELECT * FROM (".$sql.") t WHERE collegato='c'"; }    // aggiungi questa riga

            $sql.= " ORDER BY collegato, movie_title, distributor, year";


PHP:
    <center><span class='infob-pagetype'>
      <input type='submit' name='submit' value='cerca' />
      <span style='padding-left: 30px;'></span>
      <input type='submit' name='submit' value='collegati' />    <!-- aggiungi questa riga -->
      <span style='padding-left: 30px;'></span>                  <!-- aggiungi questa riga -->
      <input type='submit' name='submit' value='rinuncia' />
    </span></center>
  </form>
  <br />
  <div class='col-sm-10 col-sm-offset-2'><h2><?= $message; ?></h2></div>
</div>
</body>
</html>
<?php
}

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

function displayFilmList()

ti ho lasciato i riferimenti per non sbagliare l'inserimento
 

Alex_70

Utente Attivo
13 Nov 2018
371
14
18
HELL
  • 22 Mag 2020
  • #192
fatto, 4 righe di codice aggiunto

test

selezionando su collegati vengono visualizzati i film dell'attore
 
Ultima modifica: 22 Mag 2020

marino51

Utente Attivo
28 Feb 2013
3.205
207
63
Lombardia
  • 26 Mag 2020
  • #193
prova anche la vista "uguale e contraria"
 

Allegati

  • cinetecaCollegaFA.zip
    cinetecaCollegaFA.zip
    4,2 KB · Visite: 279

Alex_70

Utente Attivo
13 Nov 2018
371
14
18
HELL
  • 26 Mag 2020
  • #194
Ciao marino51
lo script mi sembra uguale a quello precedente , cosa e' cambiato?
edit:
non e' uguale, quello era actor/film
questo e' film/actor

hai integrato per caso il delete?
 

marino51

Utente Attivo
28 Feb 2013
3.205
207
63
Lombardia
  • 27 Mag 2020
  • #195
Alex_70 ha scritto:
hai integrato per caso il delete?
Clicca per allargare...
no, il rischio é di cancellare l'intero set "film/attore" o "attore/film"
in realtà la query é pronta
SQL:
        case "conferma elim":
            $sql = "DELETE FROM actor"
                 . " WHERE actor_id='" . $row['actor_id']. "'";

//            $sql = "DELETE actor FROM actor"
//                 . " INNER JOIN film_actor ON actor.actor_id = film_actor.actor_id"
//                 . " WHERE actor.actor_id='" . $row['actor_id']. "'";
            $x = "eliminato";
            break;
ma, dopo la prova, l'ho lasciata commentata
 

Alex_70

Utente Attivo
13 Nov 2018
371
14
18
HELL
  • 27 Mag 2020
  • #196
marino51 ha scritto:
no, il rischio é di cancellare l'intero set "film/attore" o "attore/film"
in realtà la query é pronta
SQL:
        case "conferma elim":
            $sql = "DELETE FROM actor"
                 . " WHERE actor_id='" . $row['actor_id']. "'";

//            $sql = "DELETE actor FROM actor"
//                 . " INNER JOIN film_actor ON actor.actor_id = film_actor.actor_id"
//                 . " WHERE actor.actor_id='" . $row['actor_id']. "'";
            $x = "eliminato";
            break;
ma, dopo la prova, l'ho lasciata commentata
Clicca per allargare...

buongiorno marino51,

quindi non si puo' eliminare il film o l'attore?
che prova hai fatto?

perche' su phpmyadmin il delete e' riuscito perfettamente
 
Ultima modifica: 27 Mag 2020

marino51

Utente Attivo
28 Feb 2013
3.205
207
63
Lombardia
  • 27 Mag 2020
  • #197
Alex_70 ha scritto:
perche' su phpmyadmin il delete e' riuscito perfettamente
Clicca per allargare...
la query commentata che ti ho postato, funziona bene,

ne faccio solo un discorso di sicurezza, esempio,
se elimino un attore che ha 50 film collegati,
perdo anche i 50 collegamenti,
va bene ?
se la risposta é positiva, puoi inserire la query commentata (eliminando quella operativa ora)

per i film, la query é la stessa modificando attori in film
 

Alex_70

Utente Attivo
13 Nov 2018
371
14
18
HELL
  • 27 Mag 2020
  • #198
marino51 ha scritto:
la query commentata che ti ho postato, funziona bene,

ne faccio solo un discorso di sicurezza, esempio,
se elimino un attore che ha 50 film collegati,
perdo anche i 50 collegamenti,
va bene ?
se la risposta é positiva, puoi inserire la query commentata (eliminando quella operativa ora)

per i film, la query é la stessa modificando attori in film
Clicca per allargare...




case delete attori

Alex ha 2 film collegati
i 2 film collegati hanno come attori Alex e Gigi
se elimino Alex rimane Gigi con i 2 film collegati

case delete film
Film 1 e collegato con Alex e Gigi
Alex e Gigi sono collegati anche con Film 2 e Film 3
eliminando Film 3 Alex e Gigi sono collegati con Film 1 e Film 2

in pratica prima di cancellare si verificano i dati e poi si effettua il tutto

marino51 ha scritto:
se la risposta é positiva, puoi inserire la query commentata (eliminando quella operativa ora)
Clicca per allargare...

nel mio codice non ci sono query commentate, a quale script ti riferisci dei tre?

mi potresi gentilmente postare il codice delle 2 query (film e actor) per delete film e actor
con relativo warning prima di cancellare
se possibile anche i riferimenti dove inserire il codice

Grazie marino51
 

marino51

Utente Attivo
28 Feb 2013
3.205
207
63
Lombardia
  • 27 Mag 2020
  • #199
cinetecaAttori.php

nella function validaForm(), bisogna disabilitare il controllo,

facendo riferimento all' if più esterno, va cambiato il blocchetto in questo modo

PHP:
    if( in_array( $set['azione'],
                  array("elimina") ) )
    {
        $x = aggiornaDB("conta_colleg");

        if( !empty($x) )
        {
            $message = "ATTENZIONE : esistono ".$x." film collegati all&acute; attore, valuta se proseguire";
            return;
        }
    }


nella function aggiornaDB($azione = ""), facendo riferimento al case, va cambiato il blocchetto in questo modo

PHP:
        case "conferma elim":
            $sql = "DELETE FROM film_actor WHERE actor_id='" . $row['actor_id']. "'";
            $result = $conn->query($sql);

            $sql = "DELETE FROM actor WHERE actor_id='" . $row['actor_id']. "'";
            $x = "eliminato";
            break;


cinetecaFilm.php

nella function validaForm(), bisogna disabilitare il controllo,

facendo riferimento all' if più esterno, va cambiato il blocchetto in questo modo

PHP:
    if( in_array( $set['azione'],
                  array("elimina") ) )
    {
        $x = aggiornaDB("conta_colleg");

        if( !empty($x) )
        {
            $message = "ATTENZIONE : esistono ".$x." attori collegati al film, valuta se proseguire";
            return;
        }
    }


nella function aggiornaDB($azione = ""), facendo riferimento al case, va cambiato il blocchetto in questo modo

PHP:
        case "conferma elim":
            $sql = "DELETE FROM film_actor WHERE film_id='" . $row['film_id']. "'";
            $result = $conn->query($sql);

            $sql = "DELETE FROM film WHERE film_id='" . $row['film_id']. "'";
            $x = "eliminato";
            break;
 

Alex_70

Utente Attivo
13 Nov 2018
371
14
18
HELL
  • 28 Mag 2020
  • #200
perfetto, funziona perfettamente grande lavoro marino51, grazie tante

un piccolo appunto, in cinetecaCollega.php

dopo collegati e la visualizzazione di tutti i film collegati all'attore



seleziono il film




clicco su Elimina ma non visualizzo la conferma di eliminazione, si puo' integrare questo codice?


inoltre dopo eliminazione aggiungerei anche il collegamento con cinetecaFilm.php al film eliminato in caso dopo lo scollegamento all'attore si decide di eliminare anche il film

esempio:
Test movie per Alex 5 non e' piu' associato all'attore Alex nel database, vuoi eliminare anche questo film?
conferma
o rinuncia

in caso di conferma si passa al film e si elimina, con rinuncia si ritorna alla pagina vuota

finale, ho messo il testo colorato per evidenziare meglio le scelte, si potrebbe fare anche questo nel codice
con i warning (rosso o verde) e i bottoni (rosso verde o altro)
 
Prec.
  • 1
  • …
  • 8
  • 9
  • 10
  • 11
Succ.
Primo Prec. 10 di 11 Succ. Ultimo
Devi accedere o registrarti per poter rispondere.

Discussioni simili

L
inserimento form dati multipli ?
  • luigithen
  • 13 Mag 2021
  • PHP
Risposte
0
Visite
1K
PHP 13 Mag 2021
luigithen
L
J
Form inserimento dati in database
  • jerweb
  • 29 Gen 2021
  • Ajax
Risposte
1
Visite
3K
Ajax 5 Feb 2021
_SAGO
A
Inserimento dati nel database tramite form + altre operazioni
  • AndreaBet
  • 5 Giu 2020
  • PHP
Risposte
18
Visite
2K
PHP 5 Giu 2020
AndreaBet
A
T
Da xsd a xml ed inserimento dati in excel
  • tappa81
  • 23 Apr 2020
  • XML
Risposte
0
Visite
2K
XML 23 Apr 2020
tappa81
T
S
[PHP] email con inserimento dati nel database
  • sal88
  • 23 Nov 2019
  • PHP
  • 2
Risposte
23
Visite
4K
PHP 27 Nov 2019
Max 1
G
[Javascript] Errore inserimento dati Backend Node.js e workbench
  • giorgio85
  • 8 Ott 2019
  • Javascript
Risposte
1
Visite
1K
Javascript 28 Ott 2019
macus_adi
B
  • Bloccata
[PHP] Creare PDF dopo inserimento dati form
  • bipolare75
  • 28 Set 2019
  • PHP
Risposte
4
Visite
4K
PHP 28 Set 2019
Max 1
E
Inserimento dati da PHP in tabella MySQL
  • etto.demu
  • 1 Giu 2019
  • PHP
Risposte
5
Visite
3K
PHP 3 Giu 2019
zorro
E
Form inserimento dati con JavaScript
  • Emidio
  • 9 Mar 2019
  • Javascript
Risposte
0
Visite
2K
Javascript 9 Mar 2019
Emidio
E
K
[PHP] Inserimento dati database con postgres
  • keyz23
  • 3 Ott 2018
  • PHP
Risposte
2
Visite
2K
PHP 3 Ott 2018
keyz23
K
K
[PHP + MYSQL ] Inserimento dati in database da form dinamico
  • keyz23
  • 13 Set 2018
  • PHP
Risposte
13
Visite
12K
PHP 11 Ott 2019
marino51
M
Inserimento dati checkbox multipli in db da ajax a php
  • migo80
  • 23 Apr 2018
  • PHP
Risposte
1
Visite
2K
PHP 23 Apr 2018
migo80
M
M
[PHP] errore in semplie form inserimento dati
  • maxdp
  • 13 Nov 2016
  • PHP
Risposte
7
Visite
2K
PHP 18 Nov 2016
maxdp
M
S
[PHP] Inserimento dati su tabelle collegate 1-m
  • solari77
  • 6 Ott 2016
  • PHP
Risposte
17
Visite
4K
PHP 17 Ott 2016
borgo italia
M
[PHP] controllo inserimento dati un un form
  • MoPa
  • 4 Ago 2016
  • PHP
Risposte
4
Visite
5K
PHP 7 Lug 2018
Max 1
[PHP] Generare file pdf con inserimento dati
  • cris8380
  • 10 Giu 2016
  • PHP
  • 2
Risposte
34
Visite
12K
PHP 18 Giu 2016
cris8380
Inserimento dei dati automatici mediante numero di tessera.
  • cris8380
  • 8 Giu 2016
  • PHP
  • 2
Risposte
21
Visite
3K
PHP 9 Giu 2016
cris8380
G
mysql - problemi inserimento dati nel database, consigli.
  • giorgio85
  • 25 Mag 2016
  • MySQL
Risposte
3
Visite
2K
MySQL 26 Mag 2016
marino51
J
Inserimento dati in db da due o più form
  • jumpy83
  • 12 Mar 2016
  • PHP
Risposte
0
Visite
1K
PHP 12 Mar 2016
jumpy83
J
P
problemi inserimento dati
  • paperinik4
  • 8 Mar 2016
  • PHP
Risposte
1
Visite
1K
PHP 8 Mar 2016
paperinik4
P
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?