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

Discussione: Query Delete

  1. #1

    Query Delete

    Salve a tutti!
    Ho questa query che mi genera errore non appena levo gli apici dalla variabile $prod2remove.

    Codice PHP:
    $prod2remove $_POST['productIdToRemove'];
        
    //echo $prod2remove;
        //echo $userid;
        
        
        
    echo $res "DELETE FROM `shopping_cart` WHERE [B]`id_product`='$prod2remove'[/B] AND `id_user`=userid LIMIT 1";
                    
                    
    $ris mysql_query($res) or die(mysql_error()); 
    Nello specifico, tale variabile riceve l'id del prodotto e quindi non vi andrebbero gli apici, ma non appena li tolgo mi viene visualizzato come errore:


    Codice PHP:
    Errore di sintassi nella query SQL vicino a '= 
    D'altro canto, lasciando gli apici, la query va a buon fine, ma non cancella dal DB la riga specificata.
    Nel momento in cui invece al posto della variabile $prod2remove, inserisco direttamente l'ID, allora la query termina sia senza errori e sia cancella dal DB la riga.
    Ho provato a levare e mettere gli apici, a controllare sul DB se avevo sbagliato ad indicare come campo INT id_product, a vedere come memorizzavo al suo interno (hai visto mai avessi lasciato VAR_CHAR) e tutto ciò sembra correttamente configurato.
    Potreste dirmi la vostra a tal proposito?
    moscacieca

  2. #2
    `id_user`=userid

    cos'e' quel userid ??? una costante?

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

  3. #3
    Ciao Piero,
    scusami avevo corretto al volo dato che avevo messo il valore esplicito dell'ID anche lì. Me per quanto riguarda $userid se la lascio senza apici non da errore come è giusto che sia (essendo anche esso un intero).
    Allora perchè non vale anche con l'altra variabile?
    moscacieca

  4. #4
    Originariamente inviato da moscacieca
    Ciao Piero,
    scusami avevo corretto al volo dato che avevo messo il valore esplicito dell'ID anche lì. Me per quanto riguarda $userid se la lascio senza apici non da errore come è giusto che sia (essendo anche esso un intero).
    Allora perchè non vale anche con l'altra variabile?
    perche' tutto quello che arriva dall'esterno (POST nel tuo caso) e' sempre considerato una stringa. Va comunque controllato il contenuto di POST.

    per trasformarlo in un numero puoi usare intval() oppure int(). Fai delle prove con var_dump() tanto per capire meglio il giro del fumo.

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

  5. #5
    Dunque ho provato a fare come mi hai indicato, ed ho ottenuto i seguenti risultati:

    Codice PHP:

        var_dump
    ($_POST['productIdToRemove']);         //stampa string(464) "63"
         
    $prod2remove $_POST['productIdToRemove'];
         echo 
    $prod2remove;                       // stampa 63
        
    $prod2remint intval($prod2remove);
        echo 
    $prod2remint;                       //stampa 0
            
    echo $userid;                                 //stampa 43 
    In pratica a seguito dell'utilizzo di intval, ottengo come risposta 0, ed ovviamente andando ad eseguire la query non ottengo il risultato sperato.
    Ottengo il valore 0 anche provando a fare $var = int($prod2remove);
    Cosa ne pensi?
    moscacieca

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    613
    Semmai

    Codice PHP:
    $prod2remint = (int)$prod2remove
    Conosci te stesso(?)
    (..e allora perchè scassi a me? )

  7. #7
    sì, scusa hai ragione! Comunque il risultato non cambia! Com'è?
    moscacieca

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    613
    hai provato a fare prima il trim?
    Conosci te stesso(?)
    (..e allora perchè scassi a me? )

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    613
    Ho provato io ma non cambia niente...
    Conosci te stesso(?)
    (..e allora perchè scassi a me? )

  10. #10
    Ho provato sotto consiglio tuo in questo preciso istante e questo è il risultato:

    Codice PHP:
    $nospace trim($prod2remove);
         
    var_dump($nospace); 
    come risultato ottengo:

    Codice PHP:
    string(464)"63"       // 63 è il valore ID che mi interessa 
    ed a seguito di

    Codice PHP:
    $prod2remint = (int)$nospace
    ottengo il valore 0.


    Bho!?
    moscacieca

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.