Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Delete Multiplo

  1. #1

    Delete Multiplo

    Saluti a tutti,

    sto facendo un backoffice e ho una tabella generata da una query, con il nome del prodotto e un checkbox accanto.
    A ogni checkbok selezionato ho dato il nome dell'id del prodotto, quindi io posso capire qual'è a cosa corrisponde la riga selezionata.

    Ora il discorso è questo:

    se io voglio far cancellare una riga alla volta non c'è prob, in quanto mi arriva una cosa del tipo $id=5, e vado a fare una querydi delete con l'id specificato.

    Ma se voglio dargli la possibilità di cancellare più prodotti insieme non mi riesce più in quanto ho provato queste 2 strade ma non mi portano a niente.

    1 - name="id" nel checkbox continua a esser fisso...quindi avrò nella mia stringa nell'url qualcosa così

    index.php?id=7&id=8&id=11&Submit=Delete&righe_tot= 15

    ma non riesco poi a raccogliere i dati e riutilizzarli per un eventuale query

    2 - metto un name dinamico nei tag del checkbox e arrivo a un risultato del genere

    index.php?id1=7&id2=8&id3=11&Submit=Delete&righe_t ot=15

    il problema qua è che le righe della mia tabella non hanno un numero fisso ($righe_tot varia) quindi devo utilizzare un ciclo

    avevo provato una cosa di questo tipo

    Codice PHP:
    <? if($Submit=="Delete"){


    $v=1;
    while(
    $v<=$righe_tot){

    $id_da_utilizzare_per_la_query "id$v";   <- e altre combinazioni simili


    $v
    ++;
    }
    ma dollaro id$v non me lo riconosce come la variabile get passata nell'url

    qualche dritta suggerimento?

  2. #2
    Utente di HTML.it L'avatar di strae
    Registrato dal
    Apr 2008
    Messaggi
    407

    Re: Delete Multiplo

    Originariamente inviato da florenceale
    Saluti a tutti,

    sto facendo un backoffice e ho una tabella generata da una query, con il nome del prodotto e un checkbox accanto.
    A ogni checkbok selezionato ho dato il nome dell'id del prodotto, quindi io posso capire qual'è a cosa corrisponde la riga selezionata.

    Ora il discorso è questo:

    se io voglio far cancellare una riga alla volta non c'è prob, in quanto mi arriva una cosa del tipo $id=5, e vado a fare una querydi delete con l'id specificato.

    Ma se voglio dargli la possibilità di cancellare più prodotti insieme non mi riesce più in quanto ho provato queste 2 strade ma non mi portano a niente.

    1 - name="id" nel checkbox continua a esser fisso...quindi avrò nella mia stringa nell'url qualcosa così

    index.php?id=7&id=8&id=11&Submit=Delete&righe_tot= 15

    ma non riesco poi a raccogliere i dati e riutilizzarli per un eventuale query

    2 - metto un name dinamico nei tag del checkbox e arrivo a un risultato del genere

    index.php?id1=7&id2=8&id3=11&Submit=Delete&righe_t ot=15

    il problema qua è che le righe della mia tabella non hanno un numero fisso ($righe_tot varia) quindi devo utilizzare un ciclo

    avevo provato una cosa di questo tipo

    Codice PHP:
    <? if($Submit=="Delete"){


    $v=1;
    while(
    $v<=$righe_tot){

    $id_da_utilizzare_per_la_query "id$v";   <- e altre combinazioni simili


    $v
    ++;
    }
    ma dollaro id$v non me lo riconosce come la variabile get passata nell'url

    qualche dritta suggerimento?
    prova una cosa del tipo

    Codice PHP:
    //stampa risultati

    $i 0;
    while(
    $result mysql_fetch_row($tuaquery)){
     
    //stampa riga, checkbox: <input type="checkbox" name="ck$i" id="ck$i" value="$idRiga">
     
    $i++;
    }
    //metti anche un hidden con valore $i nel form

    //pagina eliminazione
    isset($_GET['i']) ? $i $_GET['i'] : $i 0;

    for(
    $e=0$e!=$i$e++){
     if(isset(
    $_GET['cd'.$e])){
      
    $idRigaDaEliminare $_GET['id'.$e];
      
    mysql_query("DELETE FROM tabella WHERE id = '$idRigaDaEliminare '");
     }

    che non è la migliore delle soluzioni, però funziona.
    un altro metodo è, nella pagina di eliminazione, listarti tutti gli id della riga e vedere quali sonos tati postati tramite il form, ma se hai tante righe nel db diventa problematico
    You HAVE to assume your visitor is a maniac serial killer, out to destroy your application. And you have to prevent it.
    I can accept failure, everyone fails at something - But I can't accept not trying.

  3. #3
    ottimo script questo, ha funzionato benissimo e sono 2 righe in più tutto sommato,

    alla fine con qualche piccola modifica è risultato così

    Codice PHP:
    <? if($Submit=="Delete"){

    $e=1;
    while((
    $e)<=($righe_tot)){ 
    if(isset(
    $_GET['ck'.$e])){ 
      
    $idRigaDaEliminare $_GET['ck'.$e]; 
      
    mysql_query("DELETE from articles WHERE id = '$idRigaDaEliminare'"); 


    $e++;
    //echo"$e";
    }

    ?>

    muchas gratias

  4. #4
    Utente di HTML.it L'avatar di strae
    Registrato dal
    Apr 2008
    Messaggi
    407
    Originariamente inviato da florenceale
    ottimo script questo, ha funzionato benissimo e sono 2 righe in più tutto sommato,

    alla fine con qualche piccola modifica è risultato così

    Codice PHP:
    <? if($Submit=="Delete"){

    $e=1;
    while((
    $e)<=($righe_tot)){ 
    if(isset(
    $_GET['ck'.$e])){ 
      
    $idRigaDaEliminare $_GET['ck'.$e]; 
      
    mysql_query("DELETE from articles WHERE id = '$idRigaDaEliminare'"); 


    $e++;
    //echo"$e";
    }

    ?>

    muchas gratias
    bhè prego..
    come ho detto funzionare funziona, ma sicuramente alcune parti potrebbero essere migliorate..

    così devi fare molta attenzione ai nomi degli input field, e all'indice ($i)..
    inoltre se nella pagina hai, che sò, 1000 record, $i sarà = 1000, listare 100 record ad ogni eliminazione potrebbe rallentare un pò la navigazione..

    io uso un sistema leggermente diverso: a ogni click di selezione, vado ad aggiungere l'id in un hidden field nella pagina.. una roba del tipo _2_54_24_4 dove i numeri naturalmente sono gli id, poi butto di la la stringa, un str_replace, explode e voilà, elimino direttamente gli id senza 'listare' tutte le opzioni disponibili...

    dipende tutto da quante righe hai
    You HAVE to assume your visitor is a maniac serial killer, out to destroy your application. And you have to prevent it.
    I can accept failure, everyone fails at something - But I can't accept not trying.

  5. #5
    beh per me va già bene così, mi do da fare con questi backoffice quando il budjet non è il max e il tempo a disposizione c'è, in realtà preferirei fare solo la grafica o gestire lo studio, visto che ho tutt'altre competenze.

    Per il mio studio cmq sto cercando un programmatore per i momenti in cui c'è tanto da fare, dovrei avere un po' di roba da sviluppare nei prossimi mesi, se vuoi puoi mandare i tuoi contatti a jobs chiocciola pietrapania.com

    saluti

    Alessandro

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.