Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    451

    [Mysql] Eliminazione dati tranne array

    Se io creo un array con tutti gli id che non devono essere eliminati come devo impostare la query per mysql???

    Grazie.

  2. #2

    Re: [Mysql] Eliminazione dati tranne array

    Originariamente inviato da [_Kilckk_]
    Se io creo un array con tutti gli id che non devono essere eliminati come devo impostare la query per mysql???

    Grazie.
    codice:
    DELETE FROM tabella WHERE id NOT IN (1,2,3,4)

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    451

    Re: Re: [Mysql] Eliminazione dati tranne array

    Originariamente inviato da devil89
    codice:
    DELETE FROM tabella WHERE id NOT IN (1,2,3,4)
    si scusa mi sono dimenticato di dire una cosa, perchè già conoscevo questo comando ma l'array è una variabile di php.

    posso inserire direttamente l'array nella query o devo cercare di ricreare il comando con tutti gli id da non eliminare???

  4. #4
    più nello specifico:

    Codice PHP:
    $query "DELETE FROM tabella WHERE id NOT IN (".implode(","$array).")"
    dove $array è il tuo array di id da non cancellare.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    451
    Originariamente inviato da carlogh
    più nello specifico:

    Codice PHP:
    $query "DELETE FROM tabella WHERE id NOT IN (".implode(","$array).")"
    dove $array è il tuo array di id da non cancellare.
    wow grazie ad entrambi per la rapida risposta... siete stati gentilissimi.

  6. #6
    Ah ok, allora puoi generare una stringa con la lista degli ID da non cancellare:

    Codice PHP:
    $s '';
    foreach(
    $array as $id) {
        
    $s .= $id ',';

    e usarla nella query di DELETE:

    Codice PHP:
    mysql_query("DELETE FROM tabella WHERE id NOT IN ($s) "); 

  7. #7
    Originariamente inviato da devil89
    Ah ok, allora puoi generare una stringa con la lista degli ID da non cancellare:

    Codice PHP:
    $s '';
    foreach(
    $array as $id) {
        
    $s .= $id ',';

    e usarla nella query di DELETE:

    Codice PHP:
    mysql_query("DELETE FROM tabella WHERE id NOT IN ($s) "); 
    Che è la stessa cosa dell'implode...e ti eviti anche un ciclo!!

  8. #8
    Originariamente inviato da Samleo
    Che è la stessa cosa dell'implode...e ti eviti anche un ciclo!!
    infatti

  9. #9
    Originariamente inviato da Samleo
    Che è la stessa cosa dell'implode...e ti eviti anche un ciclo!!
    questo non è vero. la funzione implode esegue lei stessa un ciclo per creare la stringa.
    computazionalmente parlando la mia soluzione e quella della implode sono la stessa cosa

  10. #10
    non per fare il pignolo
    ma, a parte la maggior compattezza della soluzione con implode, quel ciclo aggiunge una virgola di troppo (l'ultima)

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 © 2024 vBulletin Solutions, Inc. All rights reserved.