Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Checkbox per cancellazione ma non CANCELLA!

    Sembra tutto ok! Ho la mia tabella FORNITORE e visualizzo in questa checkbox i loro codici da selezionare per poi cancellare.

    Ora, a parte che vorrei che oltre al codice ci fossero anche le altre colonne, ma sopratutto se seleziono un record sul checkbox e clicco per eliminare, mi esce NEssun record è stato eliminato!!! Dove sbaglio? Aiutatemi sto finendo una tesina importante!!!Ovviamente vorrei che si cancellassero tutte le colonne del record selezionato!



    <?php
    $DBhost = "localhost";
    $DBuser = "root";
    $DBpass = "";
    $DBName = "biblioteca";
    $table = "fornitore";

    // richiamo lo script responsabile della connessione a MySQL


    $db = @mysql_connect("localhost", "root", "")
    or die ("Connessione al db impossibile...");
    @mysql_select_db("$DBName", $db)
    or die ("Impossibile selezionare il db...");


    if($_POST)
    {
    $ids = isset($_POST['Cod_Fornitore']) ? $_POST['Cod_Fornitore'] : array();
    elimina_record($ids);
    }
    elseif(isset($_GET['Cod_Fornitore']))
    {
    elimina_record(array($_GET['Cod_Fornitore']));
    }
    else
    mostra_lista();

    function mostra_lista()
    {
    // mostro un eventuale messaggio
    if(isset($_GET['msg']))
    echo ''.htmlentities($_GET['msg']).'

    ';

    // preparo la query
    $query = "SELECT fornitore.Cod_Fornitore FROM fornitore";

    // invio la query
    $result = mysql_query($query);

    // controllo l'esito
    if (!$result) {
    die("Errore nella query $query: " . mysql_error());
    }

    echo '
    <form name="form1" method="post" action="">
    <table border="1">
    <tr>
    <th></th>
    <th>Fornitore</th>
    <th></th>
    </tr>';

    while ($row = mysql_fetch_assoc($result))
    {
    $nome = htmlentities($row['Cod_Fornitore']);

    // preparo il link per la modifica dei dati del record
    $link = $_SERVER['PHP_SELF'].'?Cod_Fornitore=' . $row['Cod_Fornitore'];

    echo "<tr>
    <td><input name=\"Cod_Fornitore[]\" type=\"checkbox\" value=\"$row[Cod_Fornitore]\" /></td>
    <td>$nome</td>
    <td><a href=\"$link\">elimina</a></td>
    </tr>";
    }

    echo '</table>


    <input type="submit" name="Submit" value="Elimina record selezionati" />
    </form>';

    // libero la memoria di PHP occupata dai record estratti con la SELECT
    mysql_free_result($result);

    // chiudo la connessione a MySQL
    mysql_close();
    }

    function elimina_record($ids)
    {
    // verifico che almeno un id sia stato selezionato
    if(count($ids) < 1)
    {
    $messaggio = urlencode("Nessun record selezionato!");
    header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
    exit;
    }

    // per precauzione converto gli ID in interi
    $ids = array_map('intval',$ids);

    // creo una lista di ID per la query
    $ids = implode(',',$ids);

    // preparo la query
    $query = "DELETE FROM fornitore WHERE Cod_Fornitore IN ($ids)";

    // invio la query
    $result = mysql_query($query);

    // controllo l'esito
    if (!$result) {
    die("Errore nella query $query: " . mysql_error());
    }

    // conto il numero di record cancellati
    $num_record = mysql_affected_rows();

    // chiudo la connessione a MySQL
    mysql_close();

    $messaggio = urlencode("Numero record cancellati: $num_record");
    header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
    }
    ?>

  2. #2
    chiudi la connessione a mysql e non la riapri piu' ....

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

  3. #3
    mi puoi scrivere dove sbaglio!!!

  4. #4
    Codice PHP:
    // libero la memoria di PHP occupata dai record estratti con la SELECT
    mysql_free_result($result);

    // chiudo la connessione a MySQL
    mysql_close();

    perche' chiudi la connessione???

    Non ho letto tutto lo script... ma al volo mi ha colpito la chiusura e poi la query senza riaprirla. Potrebbero esserce altri errori o incongruenze da valutare dopo aver risolto questa.

    Sarebbe meglio se gentilmente racchiudessi il codice tra tag [ php] o [ code] per renderlo piu' leggibile....

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

  5. #5
    ANCORA NIENTE
    Codice PHP:
    <?php
    $DBhost 
    "localhost";
    $DBuser "root";
    $DBpass "";
    $DBName "biblioteca";
    $table "fornitore";

    // richiamo lo script responsabile della connessione a MySQL


    $db = @mysql_connect("localhost""root""")
                or die (
    "Connessione al db impossibile...");
            @
    mysql_select_db("$DBName"$db)
                or die (
    "Impossibile selezionare il db...");


    if(
    $_POST)
    {
        
    $ids = isset($_POST['Cod_Fornitore']) ? $_POST['Cod_Fornitore'] : array();
        
    elimina_record($ids);
    }
    elseif(isset(
    $_GET['Cod_Fornitore']))
    {
        
    elimina_record(array($_GET['Cod_Fornitore']));
    }
    else
        
    mostra_lista();

    function 
    mostra_lista()
    {
        
    // mostro un eventuale messaggio
        
    if(isset($_GET['msg']))
            echo 
    '[b]'.htmlentities($_GET['msg']).'[/b]

    '
    ;

        
    // preparo la query
        
    $query "SELECT fornitore.Cod_Fornitore FROM fornitore";

        
    // invio la query
        
    $result mysql_query($query);

        
    // controllo l'esito
        
    if (!$result) {
            die(
    "Errore nella query $query: " mysql_error());
        }

        echo 
    '
        <form name="form1" method="post" action="">
        <table border="1">
            <tr>
                <th></th>
                <th>Fornitore</th>
                <th></th>
            </tr>'
    ;

        while (
    $row mysql_fetch_assoc($result))
        {
            
    $nome htmlentities($row['Cod_Fornitore']);

            
    // preparo il link per la modifica dei dati del record
            
    $link $_SERVER['PHP_SELF'].'?Cod_Fornitore=' $row['Cod_Fornitore'];

            echo 
    "<tr>
                    <td><input name=\"Cod_Fornitore[]\" type=\"checkbox\" value=\"
    $row[Cod_Fornitore]\" /></td>
                    <td>
    $nome</td>
                    <td><a href=\"
    $link\">elimina</a></td>
                </tr>"
    ;
        }

        echo 
    '</table>
            

            <input type="submit" name="Submit" value="Elimina record selezionati" />
            </form>'
    ;

        
    // libero la memoria di PHP occupata dai record estratti con la SELECT
        
    mysql_free_result($result);

        
    // chiudo la connessione a MySQL
        
    mysql_close();
    }

    function 
    elimina_record($ids)
    {
        
    // verifico che almeno un id sia stato selezionato
        
    if(count($ids) < 1)
        {
            
    $messaggio urlencode("Nessun record selezionato!");
            
    header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
            exit;
        }

        
    // per precauzione converto gli ID in interi
        
    $ids array_map('intval',$ids);

        
    // creo una lista di ID per la query
        
    $ids implode(',',$ids);

        
    // preparo la query
        
    $query "DELETE FROM fornitore WHERE Cod_Fornitore IN ($ids)";

        
    // invio la query
        
    $result mysql_query($query);

        
    // controllo l'esito
        
    if (!$result) {
            die(
    "Errore nella query $query: " mysql_error());
        }

        
    // conto il numero di record cancellati
        
    $num_record mysql_affected_rows();

        
    // libero la memoria di PHP occupata dai record estratti con la SELECT 
    mysql_free_result($result); 
        
        
    // chiudo la connessione a MySQL
        
    mysql_close();

        
    $messaggio urlencode("Numero record cancellati: $num_record");
        
    header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
    }
    ?>

  6. #6
    dimmi perche' chiudi la connessione????

    se chiudi con mysql_close() manco con la release di mysql "special Lourdes edition" riesci a fare il delete.....

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

  7. #7
    rileggendo il codice evidenziato tra tag "forse" la connessione la chiudi o forse no... visto che lo fai dentro ad una funzione (prima non si capiva)...

    Se non ricevi errori non ti resta che valutare il tuo codice. Non e' possibile capire che succede dentro le tue variabili senza studiarsi un attimo il codice.

    Stampa le variabili query (echo $query) e vedi se e come sono risolte....


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

  8. #8
    Qualcuno può aiutarmi!!!

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.