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

Discussione: non esegue il delete

  1. #1

    non esegue il delete

    vorrei eseguire un delete

    faccio

    $id = $_GET['$id'];

    $elimina = "DELETE FROM mess WHERE id = '$id'";
    $ap = mysql_query($elimina);

    ma nn mi cancella niente... cm mai?

  2. #2

    Re: non esegue il delete

    Originariamente inviato da Queer
    vorrei eseguire un delete

    faccio

    $id = $_GET['$id'];

    $elimina = "DELETE FROM mess WHERE id = '$id'";
    $ap = mysql_query($elimina);

    ma nn mi cancella niente... cm mai?
    Attento, se metti $id tra due apostrofi forzi php a interpretarlo come carattere (o stringa)... prova sempre ad usare gli escape per i caratteri speciali, altrimenti php fa un po' di casino. Così dovrebbe funzionare, è brutto, ma dovrebbe funzionare:
    codice:
    $elimina = "DELETE FROM mess WHERE id = \'" . $id . "\';";

  3. #3
    non c'entra nulla

    php non fa più di tanto differenza tra stringhe e numeri in queste cose, tranne se forzi un type casting specifico

    piuttosto ti conviene fare

    codice:
    $id = (int)$_GET['$id'];
    mysql_query("DELETE FROM mess WHERE id = {$id}");
    in modo che:
    - il valore $id è SICURAMENTE un numero, potrebbe anche essere zero, ma è certamente un numero e quindi eviti le sql injections
    - la seconda modifica che ho fatto riguarda solo la leggibilità, che, secondo me, aumenta, ma questo è qualcosa di estremamente soggettivo

    nel caso pensi che la query sia errata puoi benissimo aggiungere prima del ; or die(mysql_error()) in modo che in caso di ritorno di false ti restituisce un'errore a video bloccando l'esecuzione

  4. #4
    niente da fare...

    il comando cancella è dato da una immagine che ha per link

    cancellamessaggi.php?id=<?php echo $row['id'] ?>

    la barra del titolo e degli indirizzi legge la variabile, però la query nn la esegue....

  5. #5
    Originariamente inviato da Queer
    niente da fare...

    il comando cancella è dato da una immagine che ha per link

    cancellamessaggi.php?id=<?php echo $row['id'] ?>

    la barra del titolo e degli indirizzi legge la variabile, però la query nn la esegue....
    hai provato quello che ti ho detto? o è la risposta all'altro post?

  6. #6
    $id = (int)$_GET['$id'];
    $query = mysql_query("DELETE FROM mess WHERE id = {$id}") or die (mysql_error());

    ma nn cancella niente

  7. #7
    $_GET['$id'];

    non e' corretto ....

    $_GET[$id] .... senza apici... sempre che tu sia certo che $id sia valorizzato. Verifica il contenuto di $_GET con un print_r()

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

  8. #8
    $id2 = $_GET[$id];
    $query = mysql_query("DELETE FROM mess WHERE id = '$id2'") or die (mysql_error());

    forzando la query, scrivendo per esempio where id = 2, la cancellazione avviene.. mantenendo la variabile $id, no...

  9. #9
    Originariamente inviato da piero.mac
    $_GET['$id'];

    non e' corretto ....

    $_GET[$id] .... senza apici... sempre che tu sia certo che $id sia valorizzato. Verifica il contenuto di $_GET con un print_r()
    o cazz ... nun me ne ero accorto, LOL

    è $_GET['id']

    dietro ha postato il codice

  10. #10
    $id2 = $_GET[$id];
    print_r ($id2);
    $query = mysql_query("DELETE FROM mess WHERE id = '$id2'") or die (mysql_error());

    però non mi fa vedere niente il print... cosa può essere?

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.