guarda nel log di php, trovi la query di update, copia e incolla per postarla quiattivato $set['log'] = true;
si devono usare i filtri, sono stati messi apposta per ridurre il numero degli elemeti estratti e facilitare la scelta ottenendo un set miratoquando 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
per me non é un problema di programmazione ma logico,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
SELECT * FROM `film_actor` WHERE `film_id` = 343
DELETE FROM `film_actor` WHERE `film_actor`.`actor_id` = 40 AND `film_actor`.`film_id` = 343;
SELECT * FROM `film` WHERE `film_id` = 343
DELETE FROM `film` WHERE `film`.`film_id` = 343;
function leggiPost()
{
global $conn, $set, $actor, $film;
$set['azione'] = trim(htmlspecialchars($_POST['myForm']));
$set['bottone'] = trim(htmlspecialchars($_POST['submit'])); // aggiungi questa riga
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";
<center><span class='infoblock-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()
no, il rischio é di cancellare l'intero set "film/attore" o "attore/film"hai integrato per caso il delete?
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;
no, il rischio é di cancellare l'intero set "film/attore" o "attore/film"
in realtà la query é pronta
ma, dopo la prova, l'ho lasciata commentataSQL: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;
la query commentata che ti ho postato, funziona bene,perche' su phpmyadmin il delete e' riuscito perfettamente
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
se la risposta é positiva, puoi inserire la query commentata (eliminando quella operativa ora)
if( in_array( $set['azione'],
array("elimina") ) )
{
$x = aggiornaDB("conta_colleg");
if( !empty($x) )
{
$message = "ATTENZIONE : esistono ".$x." film collegati all´ attore, valuta se proseguire";
return;
}
}
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;
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;
}
}
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;