Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    13

    Checkbox per cancellare record

    Ciao a tutti!
    Ho un problema che non riesco a risolvere sulla selezione di un record in php, e vista la mia ancora bassa esperienza e conoscenza ho paura di dover rivedere parte del codice per poterlo fare, non riesco davvero a capire come poterlo fare, vi prego ditemi che non è così!

    In pratica in questa pagina richiamo i record contenuti in una tabella (in una simile che dovrò modificare ugualmente, questo sarà in base ad un valore all'interno di una sessione, ma quello problema risolto ), ma vorrei anche che a lato comparisse una ceckbox per ognuno di loro: una volta selezionati uno (o più di uno), tramite un pulsante "cancella" vorrei far si che l'admin potesse cancellare tali record senza passare da phpmyadmin.

    Stessa cosa per un pulsante "archivia" che mi permetterebbe di spostare il record da questa tabella ad una "archivio", uguale per conformazione.

    Questo è il codice, spero possiate darmi una mano (non fate caso alla bruttezza del tutto, è ancora da "abbellire" dal punto di vista di css ecc...)!

    Codice PHP:
    <?php 
    $DB_host     
    'xxxxxx'
    $DB_user     'yyyyyyyy'
    $DB_password 'zzzzzzzzzzz'
    $DB_name     'wwwwwwwww';  
    $link mysql_connect($DB_host$DB_user$DB_password); 
    if (!
    $link
    {     die (
    'Non riesco a connettermi: ' mysql_error());
     } 
     
    $db_selected mysql_select_db($DB_name$link); 
    if (!
    $db_selected) {     die ("Errore nella selezione del database: " mysql_error());
     }  
    $q=mysql_query("SELECT * FROM orders ORDER BY datasped, date");  
     
    ?>  
    <table border=2>     
     <tr>    
      <td align=center>ID</td>  
        <td align=center>DATE</td> 
         <td align=center>VESSEL</td> 
         <td align=center>ORDER N.</td>   
       <td align=center>SUPPLIER</td>    
      <td align=center>PIECES</td>    
      <td align=center>WEIGHT</td>   
       <td align=center>DATA SPEDIZIONE</td>   
       <td align=center>LUOGO SPEDIZIONE</td>   
       </tr>
     <?php
    while ($row=mysql_fetch_array($q)) : 
    ?> 
    <tr>
     <td><?php echo $row['id']; ?></td>
     <td><?php echo $row['date']; ?></td>
     <td><?php echo $row['vessel']; ?></td> 
    <td><?php echo $row['orderno']; ?></td>
     <td><?php echo $row['supplier']; ?></td>
     <td><?php echo $row['pieces']; ?></td> 
    <td><?php echo $row['peso']; ?></td>
     <td><?php echo $row['datasped']; ?></td>
     <td><?php echo $row['luogosped']; ?></td>
     </tr> 
    <?php endwhile; ?>
     </table>
    Vi ringrazio davvero tanto in anticipo per l'aiuto che mi potrete dare!

  2. #2
    Il codice è commentato....
    Codice PHP:
    <?php  
    $DB_host     
    'xxxxxx';  
    $DB_user     'yyyyyyyy';  
    $DB_password 'zzzzzzzzzzz';  
    $DB_name     'wwwwwwwww';   
    $link mysql_connect($DB_host$DB_user$DB_password);  
    if (!
    $link)  
    {     die (
    'Non riesco a connettermi: ' mysql_error()); 
     }  
     
    $db_selected mysql_select_db($DB_name$link);  
    if (!
    $db_selected) {     die ("Errore nella selezione del database: " mysql_error());
      }   
    $q=mysql_query("SELECT * FROM orders ORDER BY datasped, date");   



    //cancellazione dei record
    if(isset($_POST['delete'])){//se il form è stato inviato...
        
    $arr=$_POST['delete'];
        foreach(
    $arr as $item){
            
    mysql_query("Delete From orders Where id=".$item);
        }
    }

    //archiviazione dei record
    if(isset($_POST['archive'])){//se il form è stato inviato...
        
    $arr=$_POST['archive'];
        foreach(
    $arr as $item){
            
    mysql_query("Update orders Set archived=true Where id=".$item);
        }
    }

    ?>

    <form method="post" action="">
        <table border=2>
            <tr>
                <td align=center>ID</td>
                <td align=center>DATE</td>
                <td align=center>VESSEL</td>
                <td align=center>ORDER N.</td>
                <td align=center>SUPPLIER</td>
                <td align=center>PIECES</td>
                <td align=center>WEIGHT</td>
                <td align=center>DATA SPEDIZIONE</td>
                <td align=center>LUOGO SPEDIZIONE</td>
                <td colspan="2">[b]AZIONI[/b]</td>
            </tr>
            <?php 
        
    while ($row=mysql_fetch_array($q)) :  
        
    ?>
            <tr>
                <td><?php echo $row['id']; ?></td>
                <td><?php echo $row['date']; ?></td>
                <td><?php echo $row['vessel']; ?></td>
                <td><?php echo $row['orderno']; ?></td>
                <td><?php echo $row['supplier']; ?></td>
                <td><?php echo $row['pieces']; ?></td>
                <td><?php echo $row['peso']; ?></td>
                <td><?php echo $row['datasped']; ?></td>
                <td><?php echo $row['luogosped']; ?></td>
                <td><label>Elimina <input type="checkbox" name="delete[]" value="<?php echo $row['id']; ?>"></label></td>
                <td><label>Archivia <input type="checkbox" name="archive[]" value="<?php echo $row['id']; ?>"></label></td>
            </tr>
            <?php endwhile; ?>
            <tr>
                <td colspan="11" align="right"><input type="submit" value="Esegui Azioni"></td>
            </tr>
        </table>
    </form>
    Per l'archiviazione, non usare una seconda tabella, aggiungi un campo booleano (True/False) alla tabella orders e poi mostri solo i non archiviati e viceversa.

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    13
    Ok, seguirò il tuo consiglio sull'archivio
    Fantastico, stasera ci provo e ti so dire domani in caso avessi problemi, grazie mille davvero!

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.