Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    [Php - mysql] Problema con cancellazione

    questa pagina è per l'inserimento modifica e cancellazione di tuple all'interno di un database sql.
    mi da problemi la cancellazione. cioè da "elseif ($cosa=="del"){"
    non mi cancella la tupla e mi esce scritto il messaggio che ho previsto per l'errore.
    dipende da questo codice o è qualcos'altro?

    Codice PHP:
    <html>
    <head>
    <title>Gestione Film</title>
    <link rel="stylesheet" href="mystyle.css">
    </head>
    <body>

    <?php
    error_reporting
    (E_ALL E_NOTICE);
    include_once(
    "mysql_conn.php");

    if (isset(
    $_POST['key'])) $key $_POST['key'];
    $cosa "";
    if (isset(
    $_POST['Mod'])) $cosa "mod";
    if (isset(
    $_POST['Del'])) $cosa "del";
    if (isset(
    $_POST['New'])) $cosa "new";
    if (isset(
    $_POST['goMod'])) $cosa "gomod";
    if (isset(
    $_POST['goDel'])) $cosa "godel";
    if (isset(
    $_POST['goNew'])) $cosa "gonew";

    if (
    $cosa == "") {

    $query "SELECT * FROM film";

    $ris mysql_query($query);

    echo 
    "<h1>Lista film</h1>";
    echo <<<eof


     <form action="film2.php" method="post">
                <input type="hidden" name="key" value="
    {$linea['idf']}" />
                <input type="submit" name="New" value="Nuovo film" />
            </form>
    </p>
    eof;
    echo 
    "<table>\n";
        while (
    $linea mysql_fetch_array($risMYSQL_ASSOC)) {
            echo 
    "\t<tr>\n";
            foreach (
    $linea as $valore_colonna) {
                echo 
    "\t\t<td>$valore_colonna</td>\n";
            }
            echo 
    "\t\t<td>\n";
    echo <<<eof
            <form action="film2.php" method="post">
                <input type="hidden" name="key" value="
    {$linea['idf']}" />
                <input type="submit" name="Mod" value="Modifica" />
            </form>
    eof;
            echo 
    "\t\t<td>\n";
            echo <<<eof
            <form action="film2.php" method="post">
                <input type="hidden" name="key" value="
    {$linea['idf']}" />
                <input type="submit" name="Del" value="Cancella" />
            </form>
    eof;

        }
        echo 
    "</table>";
    echo <<<eof


     <form action="film2.php" method="post">
                <input type="hidden" name="key" value="
    {$linea['idf']}" />
                <input type="submit" name="New" value="Nuovo film" />
            </form>
    </p>
    eof;

    } elseif (
    $cosa == "mod") {

    $query_mod "SELECT * FROM film WHERE idf='$key'";
    $ris_paz mysql_query($query_mod);
    $fil_mod mysql_fetch_array($ris_pazMYSQL_ASSOC);

    echo <<<eof
    <h1>Modifica film</h1>
    <h2>
    {$fil_mod['nomef']}</h2>
    <form action="film2.php" method="post">


    IDF:
    <input type="text" name="idf" value="
    {$fil_mod['idf']}" />
    </p>


    Nome:
    <input type="text" name="nomef" value="
    {$fil_mod['nomef']}" />
    </p>


    Data:
    <input type="text" name="data" value="
    {$fil_mod['data']}" />
    </p>


    Genere1:
    <input type="text" name="genere1" value="
    {$fil_mod['genere1']}" />
    </p>


    Genere2:
    <input type="text" name="genere2" value="
    {$fil_mod['genere2']}" />
    </p>



    <input type="hidden" name="key" value="
    {$fil_mod['idf']}" />
    <input type="submit" name="goMod" value="Modifica" />
    </p>
    </form>

    eof;
    } elseif (
    $cosa == "gomod") {

    $idf $_POST['idf'];
    $nomef $_POST['nomef'];
    $data $_POST['data'];
    $genere1 $_POST['genere1'];
    $genere2 $_POST['genere2'];

    $query_upd "UPDATE film SET idf=$idf,nomef='$nomef',data='$data',genere1='$genere1',genere2='$genere2' WHERE idf='$key'";

    $ris mysql_query($query_upd);
    if (
    mysql_affected_rows()) {
        echo 
    "

    Modifica avvenuta con successo</p>

    <a href=\"film2.php\" title=\"Torna lista\">Torna alla lista dei film</a></p>"
    ;
        } else {
        echo 
    "

    Problemi!</p>"
    ;
        }
        
    }

    elseif (
    $cosa=="del"){

    $query_can="SELECT * FROM film WHERE idf='$key'";
    $ris=mysql_query($query_can);
    echo 
    "<table>\n";
        while (
    $linea mysql_fetch_array($risMYSQL_ASSOC)) {
            echo 
    "\t<tr>\n";
            foreach (
    $linea as $valore_colonna) {
                echo 
    "\t\t<td>$valore_colonna</td>\n";
            }
            echo 
    "\t\t<td>\n";
    }
    echo <<<eof
    <form action="film2.php" method="post">


    <input type="hidden" name="keyd" value="
    {$ris['idf']}" />
    <input type="submit" name="goDel" value="Cancella" /></p>

    </form>
    eof;
    }

    elseif (
    $cosa == "godel") {
    $query_del "delete from film where idf='$keyd'";
    $ris mysql_query($query_del);
    if (
    mysql_affected_rows()){
        echo 
    "

    Cancellazione avvenuta con successo</p>

    <a href=\"film2.php\" title=\"Torna lista\">Torna alla lista dei film</a></p>"
    ;
        } else {
        echo 
    "

    Problemi con la cancellazione</p>"
    ;
        }
    }

    elseif (
    $cosa=="new"){
    echo <<<eof
    <h1>Nuovo film</h1>

    <form action="film2.php" method="post">


    IDF:
    <input type="text" name="idf" />
    </p>


    Nome:
    <input type="text" name="nomef"  />
    </p>


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


    Genere1:
    <input type="text" name="genere1"  />
    </p>


    Genere2:
    <input type="text" name="genere2" />
    </p>



    <input type="submit" name="goNew" value="Salva Nuovo" />
    </p>
    </form>
    eof;
    }
    elseif (
    $cosa=="gonew"){
    $idf $_POST['idf'];
    $nomef $_POST['nomef'];
    $data $_POST['data'];
    $genere1 $_POST['genere1'];
    $genere2 $_POST['genere2'];
    $query_new "INSERT INTO film VALUES ($idf,'$nomef','$data','$genere1','$genere2')";

    $ris mysql_query($query_new);
    if (
    mysql_affected_rows()) {
        echo 
    "

    Inserimento avvenuto con successo</p>

    <a href=\"film2.php\" title=\"Torna lista\">Torna alla lista dei film</a></p>"
    ;
        } else {
        echo 
    "

    Problemi!</p>"
    ;
        }
        
    }
    ?>
    </body>
    </html>

  2. #2
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    non ho guardato tutto il tuo codice, ma hai provato a stampare la query per vedere cosa mandi al db?

    ciao

  3. #3
    facendola a mano cioè da linea di codice funziona...
    se c'è un'errore credo che sia qui...
    Codice PHP:
    elseif ($cosa=="del"){

    $query_can="SELECT * FROM film WHERE idf='$key'";
    $ris=mysql_query($query_can);
    echo 
    "<table>\n";
        while (
    $linea mysql_fetch_array($risMYSQL_ASSOC)) {
            echo 
    "\t<tr>\n";
            foreach (
    $linea as $valore_colonna) {
                echo 
    "\t\t<td>$valore_colonna</td>\n";
            }
            echo 
    "\t\t<td>\n";
    }
    echo <<<eof
    <form action="film2.php" method="post">


    <input type="hidden" name="keyd" value="
    {$ris['idf']}" />
    <input type="submit" name="goDel" value="Cancella" /></p>

    </form>
    eof;
    }

    elseif (
    $cosa == "godel") {
    $query_del "delete from film where idf='$keyd'";
    $ris mysql_query($query_del);
    if (
    mysql_affected_rows()){
        echo 
    "

    Cancellazione avvenuta con successo</p>

    <a href=\"film2.php\" title=\"Torna lista\">Torna alla lista dei film</a></p>"
    ;
        } else {
        echo 
    "

    Problemi con la cancellazione</p>"
    ;
        }


  4. #4
    codice:
    $ris=mysql_query($query_can); 
    .....
    .....
    
    
    <input type="hidden" name="keyd" value="{$ris['idf']}" />
    $ris contiene il resource id number ed e' una variabile. Caso mai ci vorrebbe $linea. Mi sfugge pero' perche' usi un while per estrarre una sola riga del result set....

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    il while lo metto per far veder cosa sto eliminando...è per questo che non riesco a capire... quando faccio cancella dalla lista completa si apre una finestra con il film selezionato con il bottone cancella ma non funziona....

    comunque anche con $linea al posto di $ris non funziona...

  6. #6
    Originariamente inviato da Guitar_joker87
    il while lo metto per far veder cosa sto eliminando...è per questo che non riesco a capire... quando faccio cancella dalla lista completa si apre una finestra con il film selezionato con il bottone cancella ma non funziona....

    comunque anche con $linea al posto di $ris non funziona...
    non si tratta di provare quale funziona. $ris contiene un resource id# inutile per identificare un record. Serve ad identificare un result set.

    Se passi il dato con POST lo troverai in $_POST[$keyd]

    in fase di debug utilizza sempre mysql_error() ed eventualmente la stampa dellq query per verificare come viene risolta la/le variabili

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    Scusa la mia intromissione, ma se non sbaglio non puoi utilizzare $ris direttamente...
    Alla fine $ris contiene soltanto il numero identificativo della query che viene eseguita al suo interno...
    Secondo me l'errore sta proprio nell'utilizzo di $ris nella parte che stampi per far visualizzare il bottone, hai provato a vedere il codice della pagina generata?
    Il value di quel bottone a che valore é?
    WordPress AndMore - Apprendiamo WordPress Facilmente!

  8. #8
    Questo è quello che risulta con la cancellazione di un film qualunque....
    codice:
    <html>
    <head>
    <title>Gestione Film</title>
    <link rel="stylesheet" href="mystyle.css">
    </head>
    <body>
    
    <table>
    	<tr>
    		<td>1</td>
    		<td>Ritorno Al Futuro</td>
    
    		<td>1985-01-01</td>
    		<td>fantascienza</td>
    		<td>commedia</td>
    		<td>
    <form action="film2.php" method="post">
    
    
    <input type="hidden" name="keyd" value="" />
    <input type="submit" name="goDel" value="Cancella" /></p>
    
    </form></body>
    </html>
    che value intendevi?

  9. #9
    <input type="hidden" name="keyd" value="" />

    lo vedi il value che passi con hidden????

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  10. #10
    piero.mac ha evidenziato la questione, non passando alcun valore, se vedi c'è una stringa vuota all'attributo value nell'input hidden, il php non sa che infilarci nella tua successiva stringa SQL.
    Devi fare in modo che la variabile che passi a input abbia il volore che necessiti, ovvero sii sicuro di ciclare ed estrarre correttamente i valori di $linea, in modo da sfruttarli successivamente!
    WordPress AndMore - Apprendiamo WordPress Facilmente!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.