Cancellazione record

Stato
Chiusa ad ulteriori risposte.
ciao
io userei lo stesso metodo, tanto per eliminare o modificare devi trasmettere alla pagina il get cosa (M o D9, ma soprattutto l'id del record.
slavo che tu non abbia esigenze particolari ti conviene eliminare e/o modificare un record alla volta, tornando sempre alla ricerca, può essere un po' più lungo ma più sicuro (si sbaglia su un solo record non su tanti).
come il solito fai il codice e poi posta gli eventuali (!!probabili!!) errori
 
Ciao

non ho esigenze particolari attualmente. tanto mi serve tutto d'insegnamento. Infatti pensavo di sfruttare lo stesso codice cambiando ovviamente la query che riguarda la ricerca e poi la cancellazione. Inoltre, penso di non avere grosse difficoltà, almeno spero. Un ultima cos aper quanto riguarda la finestrella di conferma del film. Mi piacerebbe che all'interno di essa, mi comparisse l'id e il titolo del film. E' fattibile ???? Ossia, penso che basta aggiungere su questa riga:

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

Se è na stronzata di idea lascio perdere ehehehe. Ah ma i tasti della finestra "OK" & "Annulla", si possono personalizzare in "SI" e "Annulla" o I "NO" ??? Se si come ???? Grazie.
 
Ciao

Non ci crederai, ma con due righe e un paio di spostamenti, ho risolto anche quando ricerco tramite l'attoreprinc. ora rimane solo da vedere modifica. Ecco quello che ho fatto per l'attoreprinc:

PHP:
 if ($num_rec == 0) {
         echo '<font face="Comic Sans MS"> <body bgcolor = "#000000"> <font color="yellow">';
            echo "Nessun film trovato in archivio";
        } else {
            
           echo "<br> <br> <br>";

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

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

           echo' </font>';

             echo $read['titolofilm'];

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

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

Una cosa strana, se vedi sopra in alto c'è un if che controlla se ci sono presenti film in archivio, se si mi visualizza quello che ho cercato, ad esempio pinco pallino. Se no, mi visualizza un apagina in bianco, anzicchè la scritta: nessun film in archiviooo. come mai ??? Cosa c'è di sbagliato sull'if ???
 
Ciao

Domani proverò a chiudere i tag., perdonami ma i ccs per formattare dici ???? Cosa dovrei formattare ??? A breve ti manderò il link del mio sito, gradirei che ti registrassi e che ti ci facessi un giro. Ogni tanto 4 occhi vedono meglio di due. Devo aggiornare quello che ho online.
 
ciao
qui stai formattando
echo '<font face="Comic Sans MS"> <body bgcolor = "#000000"> <font color="yellow">';
è buna norma tenere separata la formattazione dai contenuti.
è una cosa che dovrai tenere in considerazione quando avrai messo a punto tutto querllo che ti serve
 
Ciao

Ciao,

Vedendo la formattazione che mi hai indicato. tu dici ognugno con i suoi echo ???? Ossia così:

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

Oppure tutto di seguito in un unica riga come già stavano ??? Ho fatto così:

PHP:
$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";
          echo '</font> </body> </font>';
 
ciao
intanto guarda che non puoi mettere due volte il body, poi chiudi due volte il font, quindi la soluzione (poco corretta) del tuo scrip dovrebbe essere così

PHP:
         echo '<font face="Comic Sans MS"; color="yellow">';
            echo "Nessun film trovato in archivio";
          echo '</font>';
più correttamente dovresti mettere prima del tag head

Codice:
<style type="text/css">
.non_trov{
background-color:#000000;
font-family:"Comic Sans MS";
color:#FFFF00; /*o yellow*/
}
</style>
o con un css esterno
Codice:
<link rel="stylesheet" type="text/css" href="mio_stile.css">
e il tuo script diventa

PHP:
echo "<div class=\"non_trov\">";
            echo "Nessun film trovato in archivio";
          echo "</div>";
 
Ultima modifica:
Ciao

Sono tornato ora dal caffè Lo provo e ti dico. Un dubbio atroce, ma questo si può mettere direttamente con un echo ??? mi sa che ho detto na kazzata.
 
Ultima modifica:
ciao
un primo passo per la modifica, per i css guarda poi, prima facciamo funziare il tutto, gli abbellimenti dopo
LEGGI I COMMENTI
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'];
$id_del_film=$_GET['id'];
//qui metteremo la modifica in funzione dei dati inviati dal form di modifica
//dopo che avrai fatto il form
if($cosa=="M"){
	require_once("arraydiselezione.php");//qui gli array per costruirti le <select> del form
	//query_stringa: $query="SELECT.....
	//e mysql_query
	//attento:non ti serve il while in quanto estrai un record solamente
	//$riga=mysql_fetch_array(...), esci da php e costruisci il form con tutti i campi che ti servono
?>
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>" method="post">
<!-- metti i campi che ti servono con value= ai valori che ti restituisce il mysql_fetch_array-->

<!-- quando hai fatto posta, ma solo la parte che va da if($cosa=="M"){ a }elseif($cosa=="D"){
il resto non serve dovrebbe essere a posto-->
<input name="modifica" type="submit" id="modifica" value="modifica">
</form>
<?php  
}elseif($cosa=="D"){
    $query_del="DELETE FROM film WHERE id=$id_del_film";
    $ris=mysql_query($query_del);
    echo "<h1>record eliminato</h1>";
    echo '<meta http-equiv=\'Refresh\' content=\'3; URL="search.php"\' />';
}
?>
</body>
</html>

Un dubbio atroce, ma questo si può mettere direttamente con un echo ???
certo l'interprete php traduce tutto in html
 
Ciao

Ciao,

Grazie per avermi aiutato fino ad ora. Scusamis e non mi sono fatto sentire, ma siamo andata pranzo da mia sorella e siamo tornati ora. provo le modifiche che mi ha postato e poi ti faccio sapere.
 
Ecco quello che sono riuscito a combinare, spero di aver capito bene:


PHP:
$cosa=$_GET['cosa'];
$id=$_GET['id'];
//qui metteremo la modifica in funzione dei dati inviati dal form di modifica
//dopo che avrai fatto il form
if($cosa=="M"){
echo "<br> <br> <br>";

 echo 'Attore Principale: <input type="text" name="attoreprinc">', "<br> <br>";

echo 'Titolo Film: <input type="text" name="titolofilm">', "<br> <br>";

echo 'Raccolta: <input type="text" name="raccolta">',"<br> <br>";

 echo "Genere:";
echo "<select name=\"genere\">"; //*********devi mettere il php dove vuoi vederlo
foreach($genere as $chiave => $valore){//ciclo l'array
    echo "<option value=\"$chiave\">$valore</option>";
}
echo "</select>";
?>
<br> <br>
Tipo DvD:
<?php
echo "<select name=\"tipodvd\">"; //*********devi mettere il php dove vuoi vederlo
foreach($tipodvd as $chiave => $valore){//ciclo l'array
    echo "<option value=\"$chiave\">$valore</option>";
}

echo "</select>";
?>
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>" method="post">

    <br>
Data: <input type="text" name="data">

<br> <br> <br> <br>
<center>
<input name="modifica" type="submit" id="modifica" value="Modifica">
</center>

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

Ciao,

Ho riletto il tuo post pi8ù attentamente, ed ho apportato le modifiche dovute diverse da uqwella che ti avevo postato ieri. Eccolo Qua:

PHP:
if($cosa=="M"){

 $sql = "SELECT * FROM film where id=$_GET[id]";
$result = mysql_query ($sql);
$row = mysql_fetch_assoc($result);
?>

 
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>" method="post">

    <br> <br> <br>

Attore Principale: <input type="text" name="attoreprinc"> <br> <br>

Titolo Film: <input type="text" name="titolofilm"> <br> <br>

Raccolta: <input type="text" name="raccolta"> <br> <br>

Genere:

<?php

require_once("arraydiselezione.php");

echo "<select name=\"genere\">"; //*********devi mettere il php dove vuoi vederlo
foreach($genere as $chiave => $valore){//ciclo l'array
    echo "<option value=\"$chiave\">$valore</option>";
}
echo "</select>";
?>

<br> <br>

Tipo DvD:

<?php

echo "<select name=\"tipodvd\">"; 
foreach($tipodvd as $chiave => $valore){
    echo "<option value=\"$chiave\">$valore</option>";
}

echo "</select>";
?>

<br> <br>

Data: <input type="text" name="data">

<br> <br> <br> <br>
<center>
<input name="modifica" type="submit" id="modifica" value="Modifica">
 <input type="button" onClick="window.location.href='benvenuto.php';" value="Menu" />
 <input type="button" onClick="window.location.href='logut.php';" value="Esci" />

</center>

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

Inoltre ho aggiunto anche due tastini in più che mi servono per riportare l'utente al menu oppure uscire direttamente. Fammi sapere se intendevi così.
 
ciao
ecco alcune correzioni
LEGGI I COMMENTI

PHP:
if($cosa=="M"){
//guarda che l'id l'avevi già recuperato $id_del_film=$_GET['id']; quindi
$sql = "SELECT * FROM film where id=$id_del_film";//metti gli apici
$result = mysql_query ($sql);
$row = mysql_fetch_assoc($result);
//guarda che non mi ricordo esattamente i vari nomi dei campi quindi eventualmente correggili negli echo $row[...]
?>
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>" method="post">
<br> <br> <br>
Attore Principale: <input type="text" name="attoreprinc" value="<?php echo $row['attoreprincipale'];?>"> <br> <br>
Titolo Film: <input type="text" name="titolofilm" value="<?php echo $row['titolofilm'];?>"> <br> <br>
Raccolta: <input type="text" name="raccolta" value="<?php echo $row['raccolta'];?>"> <br> <br>
Genere:
<?php
require_once("arraydiselezione.php");

echo "<select name=\"genere\">"; //*********devi mettere il php dove vuoi vederlo
foreach($genere as $chiave => $valore){//ciclo l'array
    //se modifichi in questo modo, e non correggi ti va il primo valore della <select>
	//quindi devi vedere quale era il genere originale e dargli il selected
	$sel="";if($row['genere']==$chiave){$sel=" selected ";}//non mi ricordo eventualmente sostituisci $chiave con $valore (dipende da come è scritto nel campo
	//in questo modo l'originale viene selezionato di default
	//e se non lo cambi non si modifica
	echo "<option value=\"$chiave\" $sel>$valore</option>";
}
echo "</select>";
?>
<br> <br>
Tipo DvD:

<?php

echo "<select name=\"tipodvd\">"; 
foreach($tipodvd as $chiave => $valore){
	//****fai lo stesso lavoro fatto per genere
    echo "<option value=\"$chiave\">$valore</option>";
}
echo "</select>";
?>
<br> <br>
Data: <input type="text" name="data"  value="<?php echo $row['data'];?>">
<!-- il campo nascosto ti serve perche col submit il $id_del_film=$_GET['id'] si perde quini lo trasmettiamo di nuovo prima di perderlo-->
<input name="id_m" type="hidden" id="<?php echo $id_del_film;?>">
<br> <br> <br> <br>
<center>
<input name="modifica" type="submit" id="modifica" value="Modifica">
<!-- questi due poi non dovrebbero servire più, fatta la modifica si fa il ritorno automatico come per la cancellazione-->
<input type="button" onClick="window.location.href='benvenuto.php';" value="Menu" />
<input type="button" onClick="window.location.href='logut.php';" value="Esci" />
</center>
</form>
<?php
}elseif($cosa=="D"){
    $query_del="DELETE FROM film WHERE id=$id";
    $ris=mysql_query($query_del);
    echo "<h1>record eliminato</h1>";
    echo '<meta http-equiv=\'Refresh\' content=\'3; URL="inscerca.php"\' />';
}
?>
</body>
</html>
ci sentiamo o stasera o domattina
 
Ciao

Ciao alessandro1997,

Grazie, ma anche io a volte sono un po' de coccio di comprendonio. Ma come vedi non demordo e il linguaggio mi piace. Se consideri che provengo dal veccho basic e poi l'evoluzione del basic ossia visual basic. Puoi capirmi. A dire il vero non sono mai andato così avanti con un linguaggio. mi sono sempre fermato prima.
 
Ciao

Ciao Borgo Italia,

Complimenti per la tua memoria. Ti sei ricordato tutti i campi che avevo messo ehehehehe,. una cosa che non ho capito, ma quando uno va a modificare, non dovrebbe apparire i vecchi campi ??? oppure una tabella completamente vuota ??? perkè se dovessero comparire i vecchi campi, qua noon compare un bel niente. tutti campi vuoti da riempire eventualmente di nuovo. Ho fatto solo poke modifiche al tuo codice iniziale. Te lo posto:

PHP:
if($cosa=="M"){

//guarda che l'id l'avevi già recuperato $id_del_film=$_GET['id']; quindi
$sql = 'SELECT * FROM film where id=$id_del_film';//metti gli apici
$result = mysql_query ($sql);
$row = mysql_fetch_assoc($result);
//guarda che non mi ricordo esattamente i vari nomi dei campi quindi eventualmente correggili negli echo $row[...]
?>
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>" method="post">
<br> <br> <br>
Attore Principale: <input type="text" name="attoreprinc" value="<?php echo $row['attoreprincipale'];?>"> <br> <br>
Titolo Film: <input type="text" name="titolofilm" value="<?php echo $row['titolofilm'];?>"> <br> <br>
Raccolta: <input type="text" name="raccolta" value="<?php echo $row['raccolta'];?>"> <br> <br>
Genere:
<?php
require_once("arraydiselezione.php");

echo "<select name=\"genere\">";
foreach($genere as $chiave => $valore){//ciclo l'array
    //se modifichi in questo modo, e non correggi ti va il primo valore della <select>
    //quindi devi vedere quale era il genere originale e dargli il selected
    $sel="";if($row['genere']==$chiave){$sel=" selected ";}//non mi ricordo eventualmente sostituisci $chiave con $valore (dipende da come è scritto nel campo
    //in questo modo l'originale viene selezionato di default
    //e se non lo cambi non si modifica
    echo "<option value=\"$chiave\" $sel>$valore</option>";
}
echo "</select>";
?>
<br> <br>
Tipo DvD:

<?php

echo "<select name=\"tipodvd\">";
foreach($tipodvd as $chiave => $valore){
    //****fai lo stesso lavoro fatto per genere
    echo "<option value=\"$chiave\">$valore</option>";
}
echo "</select>";
?>
<br> <br>
Data: <input type="text" name="data"  value="<?php echo $row['data'];?>">
<!-- il campo nascosto ti serve perche col submit il $id_del_film=$_GET['id'] si perde quini lo trasmettiamo di nuovo prima di perderlo-->
<input name="id_m" type="hidden" id="<?php echo $id_del_film;?>">
<br> <br> <br> <br>
<center>
<input name="modifica" type="submit" id="modifica" value="Modifica">

</center>
</form>
<?php
?>

Una cosa ch enon mi è chiara: Cosa intendi quando dici: foreach($genere as $chiave => $valore){//ciclo l'array se modifichi in questo modo, e non correggi ti va il primo valore della <select>
//quindi devi vedere quale era il genere originale e dargli il selected ??? Grazie.
 
Ciao alessandro1997,

Grazie, ma anche io a volte sono un po' de coccio di comprendonio. Ma come vedi non demordo e il linguaggio mi piace. Se consideri che provengo dal veccho basic e poi l'evoluzione del basic ossia visual basic. Puoi capirmi. A dire il vero non sono mai andato così avanti con un linguaggio. mi sono sempre fermato prima.
Intendevo la funzione "Modifica messaggio" del forum, per evitare di scrivere post su post, come già ti ho chiesto in precedenza.
 
ciao
metti i soliti var_dump (guarda che non ti scrivo tutto il codice altrimenti (non) ci arrabbiamo, ma alex si arrabbia.

PHP:
if($cosa=="M"){
var_dump($id_del_film);
$sql = "SELECT * FROM film where id=$id_del_film";//metti gli apici
var_dump($sql);
$result = mysql_query ($sql);
$row = mysql_fetch_assoc($result);
var_dump($row['attoreprincipale']);
//e quelli degli altri campi
//....eccetera
e verifica cosa risulta
per la tua seconda domanda ipotizziamo che un film sia di genere "fantasy" (il signore degli anelli) e la select di modifica sia
<select name="genere">
<option value="babbano" >babbano</option>
<option value="babirussa" >babirussa</option>
<option value="fantasy" >fantasy</option>
</select>
quando dai il submit e per caso ti dimentichi di selezionare fantasy il valore trasmesso è babbano, quindi modifica, nel db, fantasy in babbano (cosa che non vuoi).
come ho fatto io la select diventa
<select name="genere">
<option value="babbano" >babbano</option>
<option value="babirussa" >babirussa</option>
<option value="fantasy" selected>fantasy</option>
</select>
quindi o cambi il genere volontariamente o comunque viene trasmesso fantasy che non si modifica(analogo discorso per il tipodvd)
 
Ciao

Mi sono incasinato totalmente, sto codice di modifica non mi va giù. Allora, ti volevo cheidere una cosa, ma per riprendere i vecchi dati del record da modificare per poi rimodificare dove c'è l'eventuale errore. Ad esempio, se io cerco "altrimenti ci arrabbiamo", clicco sul link "modifica", e mi dovrebbe apparire tutti i dati relativi al film. Poi vado sul campo e modifico quello che debbo modificare. Invece così, mi appare solo una scheda vuota. Cliccando sul titolo del film "modifica". Spero di essermi spiegato. Ora cerco di ridare un'ordinata al codice. Ma credo di avere die problemi. Perkè lui mi segnala errore nelle ultime righe, ossia dove inizia la "D" del cancellare.

Ho risistemato il codice:

Avrei fatto così, ma è un gran casino che ho fatto :(

PHP:
if($cosa=="M"){

var_dump($id_del_film);
$sql = 'SELECT * FROM film where id=$id_del_film';
var_dump($sql);
$result = mysql_query ($sql);
$row = mysql_fetch_assoc($result);
var_dump($row['attoreprincipale']);

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

<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>" method="post">
<br> <br> <br>
Attore Principale: <input type="text" name="attoreprinc" value="<?php echo $row['attoreprincipale'];?>"> <br> <br>
Titolo Film: <input type="text" name="titolofilm" value="<?php echo $row['titolofilm'];?>"> <br> <br>
Raccolta: <input type="text" name="raccolta" value="<?php echo $row['raccolta'];?>"> <br> <br>
Genere:
<?php
require_once("arraydiselezione.php");

echo "<select name=\"genere\">";
foreach($genere as $chiave => $valore){//ciclo l'array
    
       $sel="";if($row['genere']==$chiave){$sel=" selected ";}

    echo "<option value=\"$chiave\" $sel>$valore</option>";
}
echo "</select>";
?>
<br> <br>
Tipo DvD:

<?php

echo "<select name=\"tipodvd\">";
foreach($tipodvd as $chiave => $valore){//ciclo l'array

       $sel="";if($row['tipodvd']==$chiave){$sel=" selected ";}

    echo "<option value=\"$chiave\" $sel>$valore</option>";
}
echo "</select>";
?>

<br> <br>
Data: <input type="text" name="data"  value="<?php echo $row['data'];?>">
<!-- il campo nascosto ti serve perche col submit il $id_del_film=$_GET['id'] si perde quini lo trasmettiamo di nuovo prima di perderlo-->
<input name="id_m" type="hidden" id="<?php echo $id_del_film;?>">
<br> <br> <br> <br>
<center>
<input name="modifica" type="submit" id="modifica" value="Modifica">

</center>
</form>

</body>
</html>
 
Ultima modifica:
Stato
Chiusa ad ulteriori risposte.

Discussioni simili