Visualizzazione risultati 1 fino 16 di 16

Discussione: Caselle di controllo

  1. #1
    fabiovergotti non è connesso Utente
    Data registrazione
    18-02-2013
    Messaggi
    249

    Question Caselle di controllo

    Salve a tutti :)
    avevo intenzione di creare una pagina (possibilmente in php) nella quale viene fatta una "echo" di tutti i valori trovati in una determinata tabella del mio database...preceduti però da una casella di controllo....questa mi deve dare la possibilità di selezionare più righe (della tabella che viene fuori grazie all'array) ed eliminarle...quindi eseguire una query di delete nel mio db dove la casella di controllo è fleggata....

    avete idea di come fare?

    la mia pagina è questa....il mio problema è che non sò come trasferire i dati dalla pagina a quella di interrogazione per poi metterli nella query di delete...
    Codice PHP:
    <!doctype html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Documento senza titolo</title>
    </head>

    <body>
    <?php
    session_start
    ();


    $link = mysql_connect('localhost', '', '')
    or die(
    'Could not connect: ' . mysql_error());
    mysql_select_db('my_fabiovergotti') or die('Could not select database');


    $query= "SELECT * FROM bannati_chat";
    $result = mysql_query($query);
    $num_rows = mysql_num_rows($result);

    ?>

    <form name="bannati" action="eliminazione_ban_interrogazione.php" method="post">


    <table width="100%" border="1" align="center">
    <tr align="center" valign="middle">
    <td width="7%">SELEZIONE</td>
    <td width="7%"> NUMERO</td>
    <td width="23%">ID</td>
    <td width="27%">COGNOME</td>
    <td width="16%">NOME</td>
    <td width="15%">DATA</td>
    <td width="12%">ORA</td>
    </tr>
    <? $i=1;
    while (
    $rigaArrayRicerca = mysql_fetch_array($result)) {
    echo
    "<tr align='center' valign='middle'>";

    echo
    "<td>".'<input name="checkbox" type="checkbox" id="casella">'."</td>";

    echo
    "<td>". $i.") ".$rigaArrayRicerca[NUMERO]."</td>";
    echo
    "<td>". $rigaArrayRicerca[id]."</td>";
    echo
    "<td>". $rigaArrayRicerca[cognome]."</td>";
    echo
    "<td>". $rigaArrayRicerca[nome]."</td>";
    echo
    "<td>". $rigaArrayRicerca[data]."</td>";
    echo
    "<td>". $rigaArrayRicerca[ora]."</td>";
    echo
    " </tr>";
    $i++;}?>
    </table>
    <p>
    <? //echo '<option value="'.$rigaArrayRicerca[ID].'">'.$rigaArrayRicerca[ID].'</option> ';?>
    </p>
    </td>
    </tr>


    <tr align="center" valign="middle">
    <td>&nbsp; </td>
    </tr>


    <tr align="center" valign="middle">
    <td>NUMERO UTENTI TOTALI: <? echo $num_rows; ?> </td>
    </tr>
    </table>

    <p><span class="spiegazioni">
    <input name="submit" type="submit" id="submit" formaction="eliminazione_ban_interrogazione.php" formmethod="POST" value="Invia">
    </span></p>
    </form>

    </body>
    </html>
    link della pagina: http://www.fabiovergotti.altervista....azione_ban.php
    Ultima modifica di javascripter : 25-11-2013 alle ore 19.29.18 Motivo: -help, +link

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,681

    Predefinito

    • session_start() visto che incide sull'header della pagina (non centra nulla con <head>), va messo prima di qualsiasi output html
    • Nel checkbox devi impostare l'attributo "value" per capire quale checkbox è stato selezionato (come stavi facendo con l'option).
    • L'HTML della pagina fa abbastanza desiderare. Vedi qui.


    Ciao!

  3. #3
    fabiovergotti non è connesso Utente
    Data registrazione
    18-02-2013
    Messaggi
    249

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    • session_start() visto che incide sull'header della pagina (non centra nulla con <head>), va messo prima di qualsiasi output html
    • Nel checkbox devi impostare l'attributo "value" per capire quale checkbox è stato selezionato (come stavi facendo con l'option).
    • L'HTML della pagina fa abbastanza desiderare. Vedi qui.


    Ciao!
    non ho capito quasi nulla di ciò che hai detto...potresti farmi un esempio? grazie :) è la prima volta che uso le caselle di controllo

  4. #4
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Chiudendo un occhio sull'HTML e modificando un po' il tuo codice:
    Codice PHP:
    <!doctype html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Documento senza titolo</title>
    </head>

    <body>
    <?php
    session_start
    ();


    $link = mysql_connect('localhost', '', '')
    or die(
    'Could not connect: ' . mysql_error());
    mysql_select_db('my_fabiovergotti') or die('Could not select database');


    $query= "SELECT * FROM bannati_chat";
    $result = mysql_query($query);
    $num_rows = mysql_num_rows($result);

    ?>

    <form name="bannati" action="eliminazione_ban_interrogazione.php" method="post">


    <table width="100%" border="1" align="center">
    <tr align="center" valign="middle">
    <td width="7%">SELEZIONE</td>
    <td width="7%"> NUMERO</td>
    <td width="23%">ID</td>
    <td width="27%">COGNOME</td>
    <td width="16%">NOME</td>
    <td width="15%">DATA</td>
    <td width="12%">ORA</td>
    </tr>
    <? $i=1;
    while (
    $rigaArrayRicerca = mysql_fetch_array($result)) {
    echo
    "<tr align='center' valign='middle'>";

    echo
    "<td>".'<input name="elimina[]" type="checkbox" id="casella" value="'.$rigaArrayRicerca[id].'">'."</td>";

    echo
    "<td>". $i.") ".$rigaArrayRicerca[NUMERO]."</td>";
    echo
    "<td>". $rigaArrayRicerca[id]."</td>";
    echo
    "<td>". $rigaArrayRicerca[cognome]."</td>";
    echo
    "<td>". $rigaArrayRicerca[nome]."</td>";
    echo
    "<td>". $rigaArrayRicerca[data]."</td>";
    echo
    "<td>". $rigaArrayRicerca[ora]."</td>";
    echo
    " </tr>";
    $i++;}?>
    </table>
    <p>
    <? //echo '<option value="'.$rigaArrayRicerca[ID].'">'.$rigaArrayRicerca[ID].'</option> ';?>
    </p>
    </td>
    </tr>


    <tr align="center" valign="middle">
    <td>&nbsp; </td>
    </tr>


    <tr align="center" valign="middle">
    <td>NUMERO UTENTI TOTALI: <? echo $num_rows; ?> </td>
    </tr>
    </table>

    <p><span class="spiegazioni">
    <input name="submit" type="submit" id="submit" formaction="eliminazione_ban_interrogazione.php" formmethod="POST" value="Invia">
    </span></p>
    </form>

    </body>
    </html>
    File eliminazione_ban_interrogazione.php
    Codice PHP:
    $da_eliminare = $_POST['elimina'];
    $c = count($da_eliminare)-1;

    for(
    $i=0;$i<=$c;$i++){
    $sql .= "DELETE FROM bannati_chat WHERE id = '".$da_eliminare[$i]."';";
    }
    //mysql_query($sql);
    echo $sql;
    In questo caso ho fatto che mostra solo le query che dovrebbero essere eseguite. Poi se lo script è ciò che cerchi allora è sufficiente eliminare l'ultima riga (quella di echo) e decommentare la penultima.
    Apprezzi l'aiuto? Offrimi un caffè!

  5. #5
    Guest

    Predefinito

    grazie infinite

  6. #6
    fabiovergotti non è connesso Utente
    Data registrazione
    18-02-2013
    Messaggi
    249

    Predefinito

    scusa se ti disturbo ma ho notato che con il codice da te dato fino a quando seleziono una sola casella di controllo la qury fonziona perfettamente...se invece ne seleziono più di una non funziona piu =(

    vedi qui

  7. #7
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Prova così:

    Codice PHP:
    for($i=0;$i<=$c;$i++){
    $sql .= "DELETE FROM `bannati_chat` WHERE `id` = '".$da_eliminare[$i]."';";
    }
    mysql_query($sql);
    Apprezzi l'aiuto? Offrimi un caffè!

  8. #8
    fabiovergotti non è connesso Utente
    Data registrazione
    18-02-2013
    Messaggi
    249

    Predefinito

    non è cambiato nulla

  9. #9
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,681

    Predefinito

    ...oppure, utilizzando una sola query, una cosa come:

    Codice PHP:
    <?php
    $sql
    = 'DELETE FROM `bannati_chat` WHERE `id` =\''.$da_eliminare[0].'\'';
    for(
    $i=1;$i<=$c;$i++)
    $sql .= ' OR `id` =\''.$da_eliminare[$i].'\'';
    $sql .= ';';
    mysql_query($sql);
    ?>
    EDIT:
    Ho visto che non ti funziona il codice di miki (quindi presumibilmente nemmeno il mio).
    Prova a stampare tutte le variabili e vedi se sono corrette.

    Ciao!
    Ultima modifica di alemoppo : 28-11-2013 alle ore 17.08.51

  10. #10
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Questo sicuro funziona, però esegue più query.

    Codice PHP:
    for($i=0;$i<=$c;$i++){
    mysql_query("DELETE FROM `bannati_chat` WHERE `id` = '".$da_eliminare[$i]."'");
    }
    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    ...oppure, utilizzando una sola query, una cosa come:

    Codice PHP:
    <?php
    $sql
    = 'DELETE FROM `bannati_chat` WHERE `id` =\''.$da_eliminare[0].'\'';
    for(
    $i=1;$i<=$c;$i++)
    $sql .= ' OR `id` =\''.$da_eliminare[$i].'\'';
    $sql .= ';';
    mysql_query($sql);
    ?>
    Ciao!
    Scusa ma questo non si ferma alla prima occorrenza?
    Apprezzi l'aiuto? Offrimi un caffè!

  11. #11
    fabiovergotti non è connesso Utente
    Data registrazione
    18-02-2013
    Messaggi
    249

    Predefinito

    in che senso?

  12. #12
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Citazione Originalmente inviato da fabiovergotti Visualizza messaggio
    in che senso?
    La mia era una domanda per alemoppo. Comunque hai provato i nostri codici?
    Apprezzi l'aiuto? Offrimi un caffè!

  13. #13
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,681

    Predefinito

    Citazione Originalmente inviato da miki92 Visualizza messaggio
    Scusa ma questo non si ferma alla prima occorrenza?
    Dovrebbe fare una query del tipo:

    Codice:
    DELETE FROM `bannati_chat` WHERE `id`='0' OR `id`='4' OR `id`='57';
    Giusto?

    Ciao!

  14. #14
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Esatto... ma non si ferma al primo ID quella query?
    Apprezzi l'aiuto? Offrimi un caffè!

  15. #15
    fabiovergotti non è connesso Utente
    Data registrazione
    18-02-2013
    Messaggi
    249

    Predefinito

    utilzzando questo codice
    Codice PHP:
    <?php
    $sql
    = 'DELETE FROM `bannati_chat` WHERE `id` =\''.$da_eliminare[0].'\'';
    for(
    $i=1;$i<=$c;$i++)
    $sql .= ' OR `id` =\''.$da_eliminare[$i].'\'';
    $sql .= ';';
    mysql_query($sql);
    ?>
    funziona

    grazie a tutti

  16. #16
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,681

    Predefinito

    Citazione Originalmente inviato da miki92 Visualizza messaggio
    Esatto... ma non si ferma al primo ID quella query?
    no, perché?
    Se fai:
    Codice:
    DELETE FROM tabella WHERE id>8
    La query elimina tutte le righe in cui la condizione è verificata, perché viene valutata su ogni riga della tabella...

    Ciao!
    Ultima modifica di alemoppo : 28-11-2013 alle ore 17.32.52

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •