Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 37
  1. #1

    Non riesco a cancellare record da una Checkbox

    DOVE SBAGLIO??? Non cancella nulla.
    LA checkbox con i record, si visualizza regolarmente, ma ogni volta che seleziono e provo a cancellare, mi viene detto "0 record cancellati" !!!



    <PHP>
    <html><head></head><body bgcolor="#ffc80b"></body>
    <?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.* 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>Ragione Sociale</th><th>Indirizzo</th><th>Telefono</th>
    <th></th>
    </tr>';

    while ($row = mysql_fetch_assoc($result))
    {
    $nome = htmlentities($row['Cod_Fornitore']);
    $ragione= htmlentities($row['Ragione_Sociale']);
    $indirizzo= htmlentities($row['Indirizzo']);
    $tel= htmlentities($row['Telefono']);
    // 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>$ragione</td><td>$indirizzo</td><td>$tel</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);
    }
    ?></PHP>

  2. #2

    Re: Non riesco a cancellare record da una Checkbox

    [QUOTE]Originariamente inviato da Treep
    DOVE SBAGLIO??? Non cancella nulla.
    LA checkbox con i record, si visualizza regolarmente, ma ogni volta che seleziono e provo a cancellare, mi viene detto "0 record cancellati" !!!



    <CODE>
    <html><head></head><body bgcolor="#ffc80b"></body>
    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.* 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>Ragione Sociale</th><th>Indirizzo</th><th>Telefono</th>
                <th></th>
            </tr>'
    ;

        while (
    $row mysql_fetch_assoc($result))
        {
            
    $nome htmlentities($row['Cod_Fornitore']);
             
    $ragionehtmlentities($row['Ragione_Sociale']);
            
    $indirizzohtmlentities($row['Indirizzo']);
            
    $telhtmlentities($row['Telefono']);
            
    // 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>$ragione</td><td>$indirizzo</td><td>$tel</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);
    }
    ?>

  3. #3
    Utente di HTML.it L'avatar di zoseppe
    Registrato dal
    Jan 2005
    Messaggi
    306
    Ho stampato l'array $ids e a me risulta sempre vuoto, qualunque record io scelga, quindi nella query di delete ti risulta "IN (0,0,0)" ed è per questo che non cancella....puoi confermare quanto dico? Non vorrei che modificando qua e là (a che serve $tabella? ) sia stato io a fare casino...potresti postare anche la struttura della tabella fornitori?

  4. #4
    Hai ragione Tabella non c'entra nulla, ma non credo che influisca sulla non riuscita della cancellazione.

    La struttura della tabella fornitori è la seguente

    fornitore(Cod_Fornitore, Ragione_Sociale, Indirizzo, Telefono)

    grazie e spero che riuscirai ad aiutarmi, mi manca solo la cancellazione record nel mio progetto!

  5. #5
    Utente di HTML.it L'avatar di zoseppe
    Registrato dal
    Jan 2005
    Messaggi
    306
    Vedi se ti funziona questo....a me va!
    Codice PHP:
    <?php
    $DBhost 
    "localhost";
    $DBuser "root";
    $DBpass "";
    $DBName "biblioteca";

    // richiamo lo script responsabile della connessione a MySQL


    $db = @mysql_connect("$DBhost""$DBuser""$DBpass")
    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]

    '
    ;
    $table "fornitore";
    // preparo la query
    $query "SELECT * FROM fornitore";

    // invio la query
    $result mysql_query($query) or die (mysql_error());

    // 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>Ragione Sociale</th><th>Indirizzo</th><th>Telefono</th>
    <th> </th>
    </tr>'
    ;

    while (
    $row mysql_fetch_array($result))
    {
    $nome htmlentities($row['Cod_Fornitore']);
    $ragionehtmlentities($row['Ragione_Sociale']);
    $indirizzohtmlentities($row['Indirizzo']);
    $telhtmlentities($row['Telefono']);
    // 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>$ragione</td><td>$indirizzo</td><td>$tel</td>
    <td><a href=\"
    $link\">elimina</a></td>
    </tr>"
    ;
    }

    echo 
    '</table>


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

    // 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);
    }
    ?>
    ho fatto qualche modifica qua e la e ora mi funziona.....vedi tu se può andarti bene:non vorrei aver stravolto troppo!!!!

  6. #6
    Sei davvero gentilissimo, ma purtroppo mi dice sempre zero record eliminati e non lo elimina!!! Sto pensando al suicidio! :-D

  7. #7
    Utente di HTML.it L'avatar di zoseppe
    Registrato dal
    Jan 2005
    Messaggi
    306
    ma come??? a me funziona!!!
    mmmmm fai così, al posto di
    // preparo la query
    $query = "DELETE FROM fornitore WHERE Cod_Fornitore IN ($ids)";
    // invio la query
    $result = mysql_query($query);
    scrivi:
    Codice PHP:
    // preparo la query
    $query "DELETE FROM fornitore WHERE Cod_Fornitore IN ($ids)";
    echo
    "$query";
    exit();
    // invio la query
    $result mysql_query($query); 
    che ti dice?

  8. #8
    mi da pagina bianca con scritto

    DELETE FROM fornitore WHERE Cod_Fornitore IN (0)

  9. #9
    Utente di HTML.it L'avatar di zoseppe
    Registrato dal
    Jan 2005
    Messaggi
    306
    $ids è vuoto!!!

  10. #10
    Utente di HTML.it L'avatar di zoseppe
    Registrato dal
    Jan 2005
    Messaggi
    306
    eppure è strano: ti garantisco che a me funzia!!!! Non so cosa dire!

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.