Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22

Discussione: Comando SQL in PHP

  1. #1

    Comando SQL in PHP

    Ciao a tutti! Nuovo giorno, nuovo problema, nuova ricerca, nessuna soluzione

    In pratica ho una pagina dove l'utente deve inserire (tramite l'apposito form) l'id del film e premendo il pulsante "Rimuovi Film", deve essere rimosso quel determinato film, solo che non funziona in alcun modo. Non da alcun errore ma il film non lo rimuove dal db. Cosa sbaglio?
    Grazie anticipatamente a tutti.

    Ecco tutto il codice:

    Codice PHP:
     <link rel="stylesheet" type="text/css" href="stilerim.css" />

    <form  action='<?php echo $_SERVER["PHP_SELF"]; ?>'  method='POST'>
    <div id="contenitore">
    <div id="insert_dati">
    <table align='center' border='0'>

    <tr>
      <td>IDFILM</td>
      <td><input type='text' name='idfilm' id='idfilm'></td>
    </tr>

    </table>

    <center>
    <input type='submit' name='invia' value='Rimuovi Film'>
    <input type='reset' name='cancella' value='Reset'>
    </center>

    <div id="links">


    [url="gestionefilm.html"][img]gestionefilm.jpg[/img][/url]
    </form>
    </body>
    </html>


    <?php

    if (isset($_POST['invia']))
    {
      include 
    "config.php";


    $sql("DELETE * FROM film WHERE idfilm LIKE '%$ricerca%'"); //questo comando non funziona

    echo "Film Rimosso.\n";
          
    mysql_close();
    }
    ?>

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    ma $ricerca da chi è settata?

  3. #3
    In primis come dice eiyen $ricerca non si capisce da dove prende il valore, inoltre se è un id, non devi usare il LIKE nella query, ma "idfilm = $id".

  4. #4
    Dall'utente che inserisce l'id nel campo:

    codice:
    <tr> 
      <td>IDFILM</td> 
      <td><input type='text' name='idfilm' id='idfilm'></td> 
    </tr>

    <tr>
    <td>IDFILM</td>
    <td><input type='text' name='idfilm' id='idfilm'></td>
    </tr>
    e quindi come la faccio?

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    dovresti aggiungere $ricerca = $_POST['idfilm']; prima della query anche se mancano un po' di controlli, come la corretta compilazione dei campi, gli escaping dei valori per la query e poi... sarebbe meglio non consentire l'immissione diretta di un valore del genere, ma fornire ad esempio un menu a tendina

  6. #6
    Il codice dovrebbe essere questo:

    Codice PHP:
    <?php 

    if (isset($_POST['invia'])) 

      include 
    "config.php"


    $sql("DELETE * FROM film WHERE idfilm = $_POST['idfilm']"); 

    echo 
    "Film Rimosso.\n"
           
    mysql_close(); 

    ?>

  7. #7
    sarebbe meglio non consentire l'immissione diretta di un valore del genere, ma fornire ad esempio un menu a tendina
    è il db di una videoteca, dunque potrebbero esserci 1000 film, menù a tendina non è proprio il max..cmq al prof interessa che il film si elimini, non tutti i contorni (fortunatamente)


    $sql=("DELETE * FROM film WHERE idfilm = $_POST['idfilm']"); da errore qui!


    Ecco l'errore: Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\AppServ\www\Home\rimuovifilm.php on line 40

  8. #8
    Allora $sql cosi non vale nulla, cambia in questo modo:

    Codice PHP:
    $sql 'DELETE FROM film WHERE idfilm = '.$_POST['idfilm'];
    mysql_query($sql); 
    IL (DELETE *) non va bene, ed inoltre devi inserire mysql_query per far eseguire la query.

  9. #9

    Risolto

    Perfetto!! Ecco com'è che funziona:

    Codice PHP:
    <?php  

    if (isset($_POST['invia']))  
    {  
      include 
    "config.php";  


    $sql 'DELETE FROM film WHERE idfilm = '.$_POST['idfilm']; 
    $sql mysql_query($sql);

    echo 
    "Film Rimosso.\n";  
            
    mysql_close();  
    }  
    ?>
    Avrei un'altra cosa da chiedere, relativo a questo db..non c'entra con questa domanda..devo aprire un'altra disc?

    Grazie ancora..

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    secondo me ti conviene proseguire questo topic... ma puoi anche aprire un'altra discussione... dipende "dall'attinenza" :)

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.