Visualizzazione dei risultati da 1 a 10 su 10

Discussione: query link cancella

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    25

    query link cancella

    Salve, volevo fare la seguente cosa:
    eseguire una query disponendo i risultati in una tabella, con un link per cancellare la riga corrispondente se cliccato.

    tipo

    Nome Data Messaggio Cancella

    marco 20050223 ciao 'link x cancellare questa riga'
    luca 20050223 ciao a te 'link x cancellare questa riga'

    spero di essermi espresso in modo dignitoso, ecco un frammento del codice che sto usando:

    codice:
    <table width="90%"  align="center" cellspacing="1" >
    <tr bgcolor="#000000">
    <td width="15%" align="center">Data</td>
    <td width="15%" align="center">Tipo</td>
    <td align="center">Messaggio</td>
    <td width="15%" align="center">Cancella</td>
    </tr>
    <?
    $conta=0;
    while($ris=mysql_fetch_array($msg))
    {
    ?>
    <tr>
    <?
    if($conta % 2 == 0){ 
    ?>
    <tr bgcolor="#FFCC00" class="tabella"> 
    <?
    }else{ 
    ?>
    <tr bgcolor="#FFEA00" class="tabella"> 
    
    <?
    } 
    ?>
    <td align="center"><?echo"$ris[0]"?></td>
    <td align="center"><?echo"$ris[1]"?></td>
    <td align="center"><?echo"$ris[2]"?></td>
    <td>
    Ho provato a inserire dopo ris[2] il link con la query per cancellare la riga, ma già sapevo che non poteva funzionare, perchè non so che parametri passargli... infatti mi generava il link, ma se lo cliccavo mi cancellava TUTTI i risultati della query!

    Se qualcuno ha un consiglio...
    Grazie!

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    555
    Dopo ris2 aggiungi un href che punta sempre alla stessa pagina, e aggiungi dopo la pagina due variabili
    pagina.php?Var=$codice&Var1=esegui
    Poi ti crei una query dopo un if
    if($Var1=esegui){
    qua istruzione query delete * from tabella where Codice = $Var
    }

    Suppongo che tu abbia un valore unico per ogni record, una chiave primaria, devi utilizzare quella per cancellare solo il record che ti interessa.
    Posta il codice eventualmente, forse quello che ho scritto è poco chiaro.
    Se posti il codice magari poi ti scrivo un esempio, che ora non ho, ma in ufficio si.

    Ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    25
    Non ho ben capito: effettivamente la chiave primaria non la ho e forse potrei metterla per velocizzare le query, ma per risolvere il mio problema, non credo sia necessaria.

    io avevo messo una cosa simile nel while (ora non ricordo di preciso):

    Cancella

    ..ed è sbagliato, non ho capito bene a cosa servono le 2 variabili aggiunte dopo il link della pagina, mi rispiegheresti meglio?

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    555
    Cancella


    if(var==1){
    $cancella = "delete from tabelle where riga = variabiletua" ;
    $cancellares = mysql_query($cancella,$Connessione) ;
    }

    quando clicchi sul link cancella controlla se var è uguale a 1 e quindi riprocessa la pagina eseguendo la query e cancellando quello che vuoi. Io intendevo aggiungere anche una chiave primaria in modo che nella condizione where metti quella.

    Dimmi se è chiaro

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    25
    [supersaibal]Originariamente inviato da michelepi
    Cancella


    if(var==1){
    $cancella = "delete from tabelle where riga = variabiletua " ;
    $cancellares = mysql_query($cancella,$Connessione) ;
    }

    Dimmi se è chiaro [/supersaibal]
    OK, come funziona è chiaro, se sia il metodo migliore non lo so, il fatto è che il mio problema NON era creare un link per cancellare una riga, BENSI' creare dinamicamente i link per ognuna delle righe della query.
    Quindi il mio problema principale è quello in rosso, a prescindere dal fatto che uso il metodo che dici tu con 'var' o quello che provavo io!

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    555
    Allora scusa ci sei quasi;
    tu hai un array

    $ris=mysql_fetch_array($msg))

    Questo all'interno di un ciclo while
    Se nel db hai una chiave primaria, per esempio ID

    all'interno dell'array metti
    $codice = $ris['ID'] ;


    poi all'interno della tabella, così ogni record che punti riporta il codice e nella query nella condizione where indiche where ID = $codice
    $codice ;

    A me funziona, dimmi se è chiaro altrimenti ti posto un codice di esempio di una pagina che utilizzo io.

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    25
    Penso di aver capito, ma un piccolo esempietto di codice mi servirebbe assai :rollo:
    Grazie!

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    555
    Codice PHP:
            //inserisco su tabella i valori
            
            
    $HtmTabFerie .= " <tr><td width=\"29%\">$CodUte</td><td width=\"52%\">$RecNomeUte</td><td width=\"52%\">$RecNomeNot</td> ";
            
    $HtmTabFerie .= " <td width=\"19%\">[url=""]Agg</td>[/url]</tr>"  ;     
                                }}} 
    // chiudo ciclo per tab e ciclo per stabilire il nome utente
                    
            
    if($_GET['Invia'] == "i"){
            
    $SqlUpd "update  tabella set Campo = \"No\"    
                                                where CodUte = '"
    .$_GET['CodUte']."'  ";
            
    $SqlUpdRes mysql_query($SqlUpd,$Connessione) ;
            
            } 
    Come vedi ho una tabella stampata dove c'è nome utente e codice utente, questo lo sai fare perchè ho visto che i records riesci a recuperarli. La variabile i mi serve solo per capire se premo sul link cancella, mentre la variabile CodUte prende l'id dell'utente così la query esegue il codice solo per quel record. Fai una cosa provaci e poi posti il codice se non va. Nella mia query c'è un update ma il principio è uguale.

    Ciao

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    25
    Grazie, funziona! Più o meno

    Ho questo problemino: quando clicco sul link, non succede un cavolo, se refresho, mi cancella la riga giusta, è normale e quindi devo mettere una riga di codice che refresha , oppure ho sbagliato qualcosa?

    Cmq sei stato gentilissimo, grazie 1000

    Codice PHP:
    <?  
    echo"<a href=\"oggi.php?del=z&mess=$ris[2]\"> Cancella </a>";
    ?>
    </td>
    </tr>
    <?


    $conta
    ++; 
    }
    if(
    $_GET['del'] == "z"){
    $del="DELETE FROM `promemoria` WHERE `Messaggio` = '".$_GET['mess']."' LIMIT 1"
    $delRes=mysql_query($del,$connessione) ;

    }
    mysql_close($connessione);  

    ?>

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    555
    Se non hai esigenze particolari si, io metterei una riga di codice che mi riprocessa la pagina.

    Figurati, è stato un piacere

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.