Cancellazione record

Stato
Chiusa ad ulteriori risposte.
Ciao

No,

niente, sono de coccio io. Scusami. ho fatto così, ma non credo che vada fatto così, correggimi se sbaglio ovviamente.

PHP:
echo "<div style='border:1px solid #000; padding:10px;'>";

        echo $read['attoreprinc']." - ".$read['raccolta']." - ".$read['titolofilm']." - ".$read['tipodvd']." - ".$read['data'];


        echo " - <a href=\"modifica.php?cosa=M&id=".$read['id']."\">Modifica</a>";

        echo '<font face="Comic Sans MS"> <body bgcolor = "#000000"> <font color="yellow">';
//echo " - <a href=\"cancella.php?cosa=M&id=".$read['id'].$read['titolofilm']."\">Cancella>
        echo " - <a onclick="return(confirm(\'Attenzione: Sei sicuro di voler cancellare questo record?\'))" href="cancella.php?id=' . $row['id'] . '">[cancella]</a>";
        
        echo "</div>";
        echo "</a>";
     }
     echo "<br> <br>";


}
echo $num_rec." film presenti nell'archivio";}
?>
<body>
<script>

<a onclick="return(confirm(\'Attenzione: Sei sicuro di voler cancellare questo record?\'))" href="cancella.php?id=' . $row['id'] . '">[cancella]</a>

</script>

<head>


    </body>
</head>
 
ciao
per prima cosa: hai guardato lo script che hai postato racchiuso trai tag [ PHP]...[/ PHP] ?
non ti sembra che ci siano un po' troppo perole scritte in rosso? anche quelle che dovrebbero essere scritte in verde o blu? e qualcuna che dovrebbe essere invece rossa e verde o blu?

comunque io metterei l'onclik dopo
PHP:
<?php
//...
echo " - <a href=\"cancella.php?id=" . $row['id'] . "\" onclick=\"return(confirm('Attenzione: Sei sicuro di voler cancellare questo record?'))\">[cancella]</a>";
//...
?>
poi appena hai messo a punto l'eliminazione del record passiamo alla modifica
 
Ciao

Grazie, po' esse che ho fatto un po di casino. Anzi senza po' esse. Comunque si, prima devo capire come avviene la cancellazione, altriomenti se non capisco come avviene inutile andare con la modifica. una cosa che non ho capito, dove lo metteresti onclick ecc .ecc esattamente ???? ho provato in tutte le posizioni, sopra sotto, ho aperto i tag dello script ma nada.
 
ciao
ti mando due esempi in puro html (entrambi funzionanti),

HTML:
<A HREF="link.htm" onclick="return(confirm('Sei sicuro'))">conferma</a>

<a href="pag_mod_del.php?cosa=D&id=35" onclick= "return(confirm('stai eliminando il film Altrimenti ci arrabbiamo CONFERMA'))">DEL</a>
il primo è tratto dalla guida js, il secondo è cosa dovresti (simile) vedere tu usando visualizza origine del bw
traducili in php echo"....

p.s.
stai attento ad eventuali apoastrofi che ci possono essere nel titolo (es.: Altrimenti c'arrabbiamo), se ci sono il js va in pallino
 
Ciao

Fermi tutti e mani in alto, questa na rapa. Ho toppato alla grande ragazzi. Nell'inkazzarmi, ho cancellato il file "cancella.php", perkè non riuscivo a far visualizzare la finestra di dialogo (cosa che tutt'ora non ci riesco). Però mi eseguiva perfettamente la cancellazione dei record che chiedevo che fossero eliminati. Fin qui tutto ok. Riposto il codice del file. Vorrie sapere il perkè non visualizza la finestra di conferma della cancellazione. Sicuramente è un doppione di quello che avevo già postato. MMa ho apportato alcune modifiche. Inoltre c'è il codice di controllo della "D"elete e della "M"odifica. Eccolo qua. Scusami spero che tu hai pazienza. Ma ho fatto un gran casino.

Il file "cancella.php+html"


PHP:
<?PHP

require_once("connetti.php");
require_once("paginaprotetta.php");
require_once("presenta.php");
?>

<script>

<a onclick="return(confirm(\'Attenzione: Sei sicuro di voler cancellare questo record?\'))" href="delete.php?id=' . $row['id'] . '">[cancella]</a>

</script>

<?php

$cosa=$_GET['cosa'];
$id_del_film=$_GET['id'];
if($cosa=="M"){
//qui metteremo la possibilità di modificare i dati del film
}elseif($cosa=="D"){
    $query_del="DELETE FROM film WHERE id=$id_del_film";//verifica in quanto non so come hai chiamoto in tabella film il campo id
    //prima di scrivere la mysql_query qui metti il
    var_dump($query_del);
    //cosi verifichi che stai eliminando quello che vuoi tu
    /*una volta verificato decommenta le seguenti tre righe*/

    $ris=mysql_query($query_del);
    echo "<h1>record eliminato</h1>"; //evidenziato meglio
echo '<meta http-equiv=\'Refresh\' content=\'3; URL="search.php"\' />';  }
?>

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Cancella Dati</title>
    </head>



    <body>

        <?php
        $sql = "DELETE FROM film WHERE id='$_GET[id]'";


        ?>
    </body>
</html>

Alessadro, perdonami, ma non è mia intenzione intasare il forumò. E' solo un mio errore.
 
ciao
ho dato una ripulita al tuo script devi dargli il nome che hai messo nei link di modifica e elimina (se non ricordo male pag_mod_del.php)

PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>modifica e elimina record</title>
</head>
<body>
<?php
require_once("connetti.php");
require_once("paginaprotetta.php");//queste ti servono??
require_once("presenta.php");//queste ti servono??
$cosa=$_GET['cosa'];
var_dump($_GET['cosa']);//***poi lo togli
$id_del_film=$_GET['id'];
var_dump($_GET['id']);//***poi lo togli
//qui metteremo la modifica in funzione dei dati inviati dal form di modifica
if($cosa=="M"){
//qui metteremo la possibilità di modificare i dati del film cioè il form di modifica
//****le due righe seguenti poi le togliamo, le metto solo in modo che SEMBRI funzionere anche la modifica****
	echo "<h1>record modificato</h1>";
	echo '<meta http-equiv=\'Refresh\' content=\'3; URL="search.php"\' />';
}elseif($cosa=="D"){
    $query_del="DELETE FROM film WHERE id=$id_del_film";
    var_dump($query_del);//***poi lo togli
    $ris=mysql_query($query_del);
    echo "<h1>record eliminato</h1>";
	echo '<meta http-equiv=\'Refresh\' content=\'3; URL="search.php"\' />';
}
?>
</body>
</html>

una cosa: quando scrivi sii più ordinato e pensa a quello che ti serve o no, quello che non serve eliminalo
 
Ciao

Allora,

L'ho provato , ma non mi appare per neinte la finestra di conferma della cancellazione del film in java. Sono sicuro che javascript sia attivo su Firefox. Mi sono ricordato una cosa. Il tastino "D" o "M", dove bisogna premerlo ???? tu mi hai messo questa condizione:

PHP:
elseif($cosa=="D"){

Anzi per l'esattezza ho fatto così, il file si chiama: "search.php"

PHP:
<?php
require_once("connetti.php");                        // Si connette al database
require_once("paginaprotetta.php");              // Richiama la paginaprotetta, in modo tale che se sei loggato la vedi solo tu
require_once("presenta.php");                      // Richiama il file con le scritte: Data a sinistra in alto, "Benvenuto nell'archivio di Fabio (visualizzato al centro), e il numero di film presenti visualizzato a destra

$attoreprinc = mysql_real_escape_string ($_POST['attoreprinc']); //controlla i caratteri speciali
$titolofilm = mysql_real_escape_string ($_POST['titolofilm']);

if(!EMPTY($attoreprinc)){

$result=mysql_query("SELECT * FROM  film WHERE attoreprinc LIKE '%$attoreprinc%'");
while($read=mysql_fetch_array($result)){
    $num_rec = mysql_num_rows($result);
        if ($num_rec == 0) {
         echo '<font face="Comic Sans MS"> <body bgcolor = "#000000"> <font color="yellow">';
            echo "Nessun film trovato in archivio";
        } else {
            //echo $num_rec . " record trovati in archivio<br />\n";
           echo "<br> <br> ";

           echo '<font face="Comic Sans MS"> <body bgcolor = "#000000"> <font color="yellow"> ';

            echo  $read['attoreprinc']." - ";
             echo $read['titolofilm'];

           echo '</font>';
            
  }
}

echo "<br> <br>";
echo $num_rec . " film presenti nell'archivio ";

} elseif(!EMPTY($titolofilm)){
    
    $result=mysql_query("SELECT * FROM  film WHERE titolofilm LIKE '%$titolofilm%' ");
    while($read=mysql_fetch_array($result)){
       $num_rec = mysql_num_rows($result);
  if ($num_rec == 0) {
         echo '<font face="Comic Sans MS"> <body bgcolor = "#000000"> <font color="yellow">';
echo "<br> <br>";
echo "Nessun film trovato in archivio";
        } else {
            
echo "<br> <br>";
         echo '<font face="Comic Sans MS"> <body bgcolor = "#000000"> <font color="yellow">';


echo "<div style='border:1px solid #000; padding:10px;'>";

        echo $read['attoreprinc']." - ".$read['raccolta']." - ".$read['titolofilm']." - ".$read['tipodvd']." - ".$read['data'];


        echo " - <a href=\"modifica.php?cosa=M&id=".$read['id']."\">Modifica</a>";
       
echo " - <a href=\"cancella.php?cosa=M&id=".$read['id']." - ".$read['titolofilm']."\">Cancella</a>";     }
     echo "<br> <br>";

echo '<font face="Comic Sans MS"> <body bgcolor = "#000000"> <font color="yellow">';

}

echo $num_rec." film presenti nell'archivio";
}
?>
<body>
    
    

<head>


    </body>
</head>

In pratica, così facendo, oltre alla ricerca del file che digito (le prime tre iniziali, oppure quelle centrali o finali), a fianco mi compaiono i due collegamenti che fanno riferimento uno al file "modifica.php" e l'altro al file "cancella.php", dove dovrebbe comparire per l'appunto la finestra in java chiedendomi la conferma della cancellazione cosa che non sono riuscito ad ottenere.
 
Ultima modifica:
ciao
devi guardare bene. tu hai scritto nel file search.php

echo " - <a href=\"modifica.php?cosa=M&id=".$read['id']."\">Modifica</a>";
echo " - <a href=\"cancella.php?cosa=M&id=".$read['id']." - ".$read['titolofilm']."\">Cancella</a>";

il file che modifica o che cancella è un'unica pagina (quella che ti ho postato prima), se noti bene in quella pagina c'è un if-else che legge il primo get
cosa=M o D in funzione di quale link premi esegue la cancellazione o la modifica (modfica: ancora da implementare), il secondo trasmette l'id del record che vuoi eliminare o modificare, quindi il codice sopra deve essere scritto:
PHP:
//....
echo " - <a href=\"NOME_PAGINA_CHE_TI_POSTATO.php?cosa=M&id=".$read['id']."\">Modifica</a>";
echo " - <a href=\"NOME_PAGINA_CHE_TI_POSTATO.php?cosa=D&id=".$read['id']." onclick= \"return(confirm('stai eliminando il record'))\">Cancella</a>";
//....
quindi non so che nome hai dato alla pagina, ma devi mettere quel nome nei due link
nel secondo link non ti serve trasmettere anche il nome del film e metti l'onclick
 
Ciao

Ci siamo quasi penso. Ora ti posto i due codici. I link li ho chiamati uno "cancella.php", e l'altro "modifica.php" Ti posto di nuovo il codice di prima con le aggiunte delle due righe che mi hai mandato. Quando vado a cliccare su "cancella", lui mi fa apparire la scriotta "record cancellato", ma non lo cancella dal tabase. in pratica non esegue il delete. eEcco i codici:

Il file è come al solito "search.php":


PHP:
<?php
require_once("connetti.php");
require_once("paginaprotetta.php");
require_once("presenta.php");

$attoreprinc = mysql_real_escape_string ($_POST['attoreprinc']); //controlla i caratteri speciali
$titolofilm = mysql_real_escape_string ($_POST['titolofilm']);

if(!EMPTY($attoreprinc)){

$result=mysql_query("SELECT * FROM  film WHERE attoreprinc LIKE '%$attoreprinc%'");
while($read=mysql_fetch_array($result)){
    $num_rec = mysql_num_rows($result);
        if ($num_rec == 0) {
         echo '<font face="Comic Sans MS"> <body bgcolor = "#000000"> <font color="yellow">';
            echo "Nessun film trovato in archivio";
        } else {
            //echo $num_rec . " record trovati in archivio<br />\n";
           echo "<br> <br> ";

           echo '<font face="Comic Sans MS"> <body bgcolor = "#000000"> <font color="yellow"> ';

            echo  $read['attoreprinc']." - ";
             echo $read['titolofilm'];

           echo '</font>';
            
  }
}

echo "<br> <br>";
echo $num_rec . " film presenti nell'archivio ";

} elseif(!EMPTY($titolofilm)){
    
    $result=mysql_query("SELECT * FROM  film WHERE titolofilm LIKE '%$titolofilm%' ");
    while($read=mysql_fetch_array($result)){
       $num_rec = mysql_num_rows($result);
  if ($num_rec == 0) {
         echo '<font face="Comic Sans MS"> <body bgcolor = "#000000"> <font color="yellow">';
echo "<br> <br>";
echo "Nessun film trovato in archivio";
        } else {
            
echo "<br> <br>";
         echo '<font face="Comic Sans MS"> <body bgcolor = "#000000"> <font color="yellow">';


echo "<div style='border:1px solid #000; padding:10px;'>";

        echo $read['attoreprinc']." - ".$read['raccolta']." - ".$read['titolofilm']." - ".$read['tipodvd']." - ".$read['data'];

       

echo " - <a href=\"modifica.php?cosa=M&id=".$read['id']."\">Modifica</a>";
echo " - <a href=\"cancella.php?cosa=D&id=".$read['id']." onclick= \"return(confirm('stai eliminando il record'))\">Cancella</a>";
      

}
     echo "<br> <br>";

echo '<font face="Comic Sans MS"> <body bgcolor = "#000000"> <font color="yellow">';

}

echo $num_rec." film presenti nell'archivio";
}
?>
<body>
   
<head>


    </body>
</head>

E questo è "cancella.php"

PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Modifica ed Elimina record</title>
</head>
<body>

<?php
require_once("connetti.php");
require_once("paginaprotetta.php");//queste ti servono??
require_once("presenta.php");//queste ti servono??
$cosa=$_GET['cosa'];
var_dump($_GET['cosa']);//***poi lo togli
$id=$_GET['id'];
var_dump($_GET['id']);//***poi lo togli
//qui metteremo la modifica in funzione dei dati inviati dal form di modifica
if($cosa=="M"){
//qui metteremo la possibilità di modificare i dati del film cioè il form di modifica
//****le due righe seguenti poi le togliamo, le metto solo in modo che SEMBRI funzionere anche la modifica****
   // echo "<h1>record modificato</h1>";
   // echo '<meta http-equiv=\'Refresh\' content=\'3; URL="search.php"\' />';


}elseif($cosa=="D"){
   $query_del="DELETE FROM film WHERE id=$id";
    var_dump($query_del);//***poi lo togli
    $ris=mysql_query($query_del);
    echo "<h1>record eliminato</h1>";
    echo '<meta http-equiv=\'Refresh\' content=\'3; URL="search.php"\' />';
}
?>
</body>
</html>

Come al solito non compare la finestra di dialogo. Dove sbaglio ??? sarò capoccione e de coccio io ??????
 
ciao
qui ho topppato io, mi sono dimenticato un \".$read['id']."\"
PHP:
echo " - <a href=\"cancella.php?cosa=D&id=".$read['id']."\" onclick= \"return(confirm('stai eliminando il record'))\">Cancella</a>";
poi alla riga sopra NO
echo " - <a href=\"modifica.php?cosa=M&id=".$read['id']."\">Modifica</a>";
ma

PHP:
echo " - <a href=\"cancella.php?cosa=M&id=".$read['id']."\">Modifica</a>";
se hai chiamato la pagina che ti avevo postato cancella.php, la stessa pagina fa sia la cancellazione che la modifica

dimenticavo: come hai chiamato la pagina da includere con gli array?
 
Ultima modifica:
Ciao

Ah ok, immaginavo ehehehe. Comunque, ora la finestra appare, ma i pulsanti "ok" & "Annulla" che compaiono non fanno il loro dovere. Ossia se premo su "OK", mi dice record eliminato, m,a se poi vai a vedere rimane sempre inel database. Inoltre il reindirizzamento, che dovrebbe ritornare dopo 3 swecondi sulla pagina "search.php" non fa il suo dovere. io ho fatto così, spero di non aver sbagliato:

Questo è il file cancella/modifica

PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Modifica ed Elimina record</title>
</head>
<body>

<?php
require_once("connetti.php");
require_once("paginaprotetta.php");//queste ti servono??
require_once("presenta.php");//queste ti servono??
$cosa=$_GET['cosa'];
var_dump($_GET['cosa']);//***poi lo togli
$id=$_GET['id'];
var_dump($_GET['id']);//***poi lo togli
//qui metteremo la modifica in funzione dei dati inviati dal form di modifica
if($cosa=="M"){
//qui metteremo la possibilità di modificare i dati del film cioè il form di modifica
//****le due righe seguenti poi le togliamo, le metto solo in modo che SEMBRI funzionere anche la modifica****
   // echo "<h1>record modificato</h1>";
   // echo '<meta http-equiv=\'Refresh\' content=\'3; URL="search.php"\' />';


}elseif($cosa=="D"){
   $query_del="DELETE FROM film WHERE id=$id";
    var_dump($query_del);//***poi lo togli
    $ris=mysql_query($query_del);
    echo "<h1>record eliminato</h1>";
    echo '<meta http-equiv=\'Refresh\' content=\'3; URL="search.php"\' />';
}
?>
</body>
</html>
 
ciao
correggi il meta, poi commentalo per fermarti sulla pagina (lo decommentarei quando tutto ok).
dimmi cosa ritorna il var_dump (e anche quelli prima messi dopo i $_GET)
PHP:
$query_del="DELETE FROM film WHERE id=$id";
    var_dump($query_del);// cosa ritorna ???
    $ris=mysql_query($query_del);
	//aggiungi anche questo
	var_dump($ris);// cosa ritorna ??? RESOURCE ecc. oppure BOOL (FALSE)
    echo "<h1>record eliminato</h1>";
    echo "<meta http-equiv='Refresh' content='3; URL=\"search.php\"'/>";
p.s.
i pulsanti ok annulla fanno il loro dovere: devono solo fermare il link per confermare o annullare l'invio, se non cancella dipende dallo script php
 
Ciao

Allora,

Mi restituisce questo:

string(1) "D" string(17) "2 - L'ira di Khan" string(43) "DELETE FROM film WHERE id=2 - L'ira di Khan"
record eliminato

Dopo aver reindirizzato la pagina su "search.php", invece di andare su tale pagina, mi da i seguenti errori:

Notice: Undefined index: attoreprinc in C:\xampp\htdocs\Archivio\search.php on line 6

Notice: Undefined index: titolofilm in C:\xampp\htdocs\Archivio\search.php on line 7

Inoltre, i record continuano a non cancellarsi dal database.
 
ciao
????da dove ti salta fuori
string(1) "D" questo OK
string(17) "2 - L'ira di Khan" ??????
string(43) "DELETE FROM film WHERE id=2 - L'ira di Khan" ??????
???
la risposta giusta dovrebbe essere
string(1) "2"
quindi
string(27) "DELETE FROM film WHERE id=2"

non credo proprio che tu abbia un record con un id uguale a "2 - L'ira di Khan"
poi metti anche il var_dump su $ris
 
Ciao

Allora,

Avevo fatto qualche casino io. Ora ti posto esattamente quello che mi da di errore, e non solo ma lo cancella anche dal database, com'è giusto che debba fare. Questo è quello ch emi restituisce:

string(1) "D" string(1) "4" string(27) "DELETE FROM film WHERE id=4" bool(true)
record eliminato (e lo elimina davvaero).

E non mi reinderizza alla pagina che gli avevo indicato per l'indirizzamento. la riga è la seguente:


PHP:
echo "<meta http-equiv='Refresh' content='10; URL=\"search.php\"'/>";


Ho allungato il tempo perkè sennò non riuscivo a fare il copia incolla dei vari var che mi segnalava. Mi visualizza questi errori qua sotto

Notice: Undefined index: attoreprinc in C:\xampp\htdocs\Archivio\search.php on line 6

Notice: Undefined index: titolofilm in C:\xampp\htdocs\Archivio\search.php on line 7

Ho risolto il problema del reindirizzamento. Sbagliavo pagina. Lo dovevo reindirizzare alla pagian "inscerca.php", che è quella che si occupa della procedura di ricerca dati. eheheheh. ora dovrei fare la stessa procedura per quando cerco l'attore principale. Cosa mi consigli di fare ??? Copio e incollo quello che ho già, oppure un altro metodo ???? Magari con un tiprlo if, che gestisce uno per la modifica dat, uno per la cancellazione tramite titolofilm e l'altro per la cancellazione tramite attoreprinc ????
 
Ultima modifica:
Stato
Chiusa ad ulteriori risposte.

Discussioni simili