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

    Script per Cancellare un Records??

    Ciao a tutti, sto realizzando un semplice script per inserire degli annunci, grazie all'aiuto del forum, sono riuscito a fare già una buona parte, ma mi sono bloccato su una cosa, apparentemente semplice, ma che non riesco a risolvere. Mi servirebbe uno script, che dopo una verifica di una password e dopo una conferma, mi cancellasse l'annuncio selezionato. Io sono riuscito a fare la verifica della password e forse anche lo script per cancellare il record, ma quando clicco sul tasto conferma, mi da il seguente errore:
    ----------------------------------------------------------------------------

    You have an error in your SQL syntax near 'WHERE id='50'' at line 1
    ----------------------------------------------------------------------------

    Posto anche lo script, che ho fatto (in realtà ho preso spunto da un libricino di PHp), poichè il codice è molto lungo, posto solo la parte che interessa la cancellazione del Record, poichè la parte relativa al recupero dei dati,alla connessione al Db e alla verifica della password, credo che sia fatta bene in quanto funziona.

    ----------------------------------------------------------------------------------------------------------------------

    $confirm=$_REQUEST['confirm'];
    if($confirm)
    {
    // Query per il cancellamento del record

    $query = "delete from $categoria where id=$id";
    $dbResult = mysql_query ($query, $db);
    $Affectedrows = mysql_affected_rows ($db);

    if($Affectedrows ==0)
    {
    echo "Non esistono annunci con i criteri selezionati";
    }
    else
    {
    echo "L'Annuncio è stato eliminato";
    }
    //Chiudo la Connessione al DB
    mysql_close($db);
    }
    else
    {
    echo "Eliminare l'Annuncio?";
    echo "
    ";
    echo "
    ";
    echo "<a href=\"{$_SERVER['PHP_SELF'] }?id=$id&confirm=1\">Conferma</a>";
    }

    --------------------------------------------------------------------------------------------------------------------

    Qualcuno può dare uno sguardo al codice e dirmi dove è che ho sbagliato??


    Grazie

  2. #2
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,746
    hai verificato ke ci sia $categoria ?
    Errare humanum est, perseverare ovest

  3. #3
    $categoria deve contenere il nome della tabella nel database.

    controlla che $categoria non sia ="" cioè vuoto. e che il valore contenuto sia una stringa che corrisponda anche come minuscole o maiuscole al nome reale della tabella nel db.

    ciao, stefano

  4. #4
    Allora Sia la Variabile $categoria e la variabile $id, sono state inserite da me, per delle esigenze mie e comunque ho controllato e queste due varibili ci sono e vengono passate allo script. Infatti anche io, come prima cosa ho pensato ad un problema di questo tipo, ma comunque ho controllato e le variabili ci sono.

    Qualche altra idea?????


  5. #5
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    ogni volta che lanci comandi sql aggiungi in fondo all'istruzione

    or die(mysql_error());

    Nel caso specifico, visualizza la query prima di eseguirla, così vedi cosa contiene

  6. #6


    Certo che per un principiante come me, è dura imparare bene il PHP, quando meno te lo aspetti esce un errore!!!!
    Ho riguardato e riguardato almeno 100 volte, lo script, ma a mio avviso, non c'è nessuno errore!! Ma allora perchè non funziona???

    Vi posto tutto il codice, forse l'errore non riguarda la ueri per l'eliminazione, ma il codeice prima, Booo!!!
    -------------------------------------------------------------------------------------------------------------------
    <?php
    //Recupero i Dati dal Form
    $id = $_REQUEST['id'];
    $password = $_REQUEST['password'];
    $categoria = $_REQUEST['categoria'];
    ?>
    <?php
    // Parte relativa alla connessione al DB

    ........

    $db = mysql_connect($db_host, $db_user, $db_password);
    if ($db == FALSE)
    die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
    mysql_select_db($db_name, $db)
    or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");

    // Query per l'estrazione dei dati da Db

    $query = "SELECT nome,cognome,citta,prov,annuncio,pass,tel,mail,dat a FROM $categoria WHERE id='$id'";

    //Invio la Query al DB

    $result = mysql_query($query, $db) or die(mysql_error());
    while ($row = mysql_fetch_array($result))

    // Imposto una condizione if-else per verificare l'esatezza della password

    if ($row[pass] == $password)
    {
    echo "<span class=\"txt_canali\">Cancella Annuncio</span>\n";
    echo "
    \n";
    echo "
    \n";
    echo "<span class=\"txt_dati\">L'Annuncio selezionato, è il seguente:</span>\n";
    echo "
    \n";
    echo "
    \n";

    // Stampo la Tabella contenete l'Annuncio

    echo "<table width=\"480\" border=\"2\" cellspacing=\"4\" cellpadding=\"2\" bordercolor=\"#006633\" \>\n";
    echo "<tr>\n";
    echo" <td width=\"160\"><span class=\"txt_dati2\">Nome: </span><span class=\"txt_dati\">$row[nome] </span></td>\n";
    echo" <td width=\"160\"><span class=\"txt_dati2\">Cognome:</span><span class=\"txt_dati\"> $row[cognome]</span> </td>\n";
    echo" <td width=\"160\"><span class=\"txt_dati2\">Citt&agrave;:</span><span class=\"txt_dati\"> $row[citta] ($row[prov])</span> </td>\n";
    echo "</tr>\n";

    echo "<tr class=\"txt_annuncio\">\n";
    echo "<td colspan=\"3\"><span class=\"txt_annuncio\">$row[annuncio] </span></td>\n";
    echo "</tr>\n";

    echo "<tr>\n";
    echo" <td width=\"160\"><span class=\"txt_dati2\">Tell: </span><span class=\"txt_dati\">$row[tel] </span></td>\n";
    echo" <td width=\"160\" align=\"center\"><a href=\"mailto:$row[mail]?subject=Annuncio da Hobby Uccelli\" title=\"Contatta l'Autore\" class=\"txt_dati\">Contatta</a> </span></td>\n";
    echo" <td width=\"160\"><span class=\"txt_dati2\">Data: </span><span class=\"txt_dati\">$row[data_it]</span></td>\n";
    echo "</tr>\n";
    echo "</table>\n";
    // Chiedo conferma per cancellare Annuncio e imposto la query, per l'eliminazione

    $confirm=$_REQUEST['confirm'];

    if($confirm)
    {

    // Query per il cancellamento dei dati dal Db

    $query = "delete from $categoria where id=$id";
    $dbResult = mysql_query ($query, $db);
    $Affectedrows = mysql_affected_rows ($db);

    if($Affectedrows ==0)
    {
    echo "Non esistono annunci con i criteri selezionati";
    }
    else
    {
    echo "L'Annuncio &egrave; stato eliminato";
    }
    //Chiudo la Connessione al DB
    mysql_close($db);
    }
    else
    {
    echo "Eliminare l'Annuncio?";
    echo "
    ";
    echo "
    ";
    echo "<a href=\"{$_SERVER['PHP_SELF'] }?id=$id&confirm=1\">Conferma</a>";
    }
    echo "
    \n";
    echo "
    \n";
    echo "<span class=\"txt_canali\">Eliminare l'Annuncio?</span>\n";
    echo "
    \n";
    echo "
    \n";
    echo "<table width=\"200\" border=\"0\" cellspacing=\"5\" cellpadding=\"0\">\n";
    echo "<tr>\n";
    echo "<td width=\"70\"><a href=\"{$_SERVER['PHP_SELF'] }?id=$id&confirm=1\">Conferma</a></td>\n";
    echo "<td width=\"60\"></td>\n";
    echo "<td width=\"70\">Annulla </td>\n";
    echo "</tr>\n";
    echo "</table>\n";
    }
    else
    {
    echo "<center>Hai sbagliato password, riprova con maggiore attenzione.</center>";
    }
    ?>

    -------------------------------------------------------------------------------------------------------------------

    La prima parte dello script, funziona perfettamente, inquando mi effettua la verifica della pass, la stampa a video dell'annuncio ecc, non funziona solo la cancellazione del Record!!!
    Non riesco a trovare l'errore!!!

  7. #7


    Perchè non funziona?????

  8. #8
    Originariamente inviato da spiadadda


    Perchè non funziona?????
    perche' non fai quanto suggerito da Luca200 ????
    codice:
    $query = "delete from $categoria where id = '$id'";
    echo $query; 
    $dbResult = mysql_query ($query, $db) or die (mysql_error());
    Ho aggiunto gli apici a '$id'.

    Da un primo sguardo mi pare che sia anche errata l'impostazione della pagina stessa.

    Verifichi dei dati in arrivo da altra pagina, selezioni, stampi un form, chiedi conferma e poi riprendi la stessa pagina e rifai le stesse cose ???? Dovresti passare direttamente al DELETE.

    Altro: se abiliti i NOTICE ne devi trovare un po'.


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

  9. #9
    Ciao, ho fatto come mi consigliavi, ma il problema persiste e il messaggio di errore è sempre lo stesso.

    Se posso vorrei farti una domanda.

    Perchè secondo te, l'impostazione della pagina è sbagliata???
    Potresti spiegarmi il perchè e secondo te quale è il modo migliore di procedere??


    Io sono alle prime armi con il Php e questo è il mio primo script "serio", quindi non mi spiace impare qualcosa da persone più brave o più esperte.

    Ahhh dimenticavo, cosa sono I notice e come faccio per abilitarli??
    (Intanto faccio una ricerca nel forum e vedo se trovo qualcosa su i notice)

    Grazie per il tuo aiuto

  10. #10
    E' inutile dire non va cosa puo' essere...

    se hai fatto la stampa della query ... postala .

    You have an error in your SQL syntax near 'WHERE id='50'' at line 1

    Prima hai una variabile.... lo sa solo iddio e tu se e' valorizzata oppure no. Posta la stampa della query ottenuta con echo $query

    Per l'impostazione il discorso puo' essere breve ma anche lungo. Prima di tutto deve essere chiaro l'obiettivo, poi sapendo di aspettare una conferma di cancellazione verifica con una if se e' settata o meno la richiesta e deciderai quale parte dello script dovrai eseguire, se select o delete.

    Poi passare dei dati via query string per la cancellazione e' quanto meno da ottimista verso il buon senso del prossimo. Se si comincia con dei refresh incrementando il numerello ti si cancella tutto il db.


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

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.