Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    cancellazione record mysql

    Ciao a tutti sono un novizio sia del forum che di php e premetto che è la prima volta che scrivo al forum cerco sempre soluzioni leggendo prima di rompere. Fatta questa premessa devo sottoporvi un quesito.
    Ho una tabella in mysql composta di tre campi id (univoco incremento automatico), riferimento, che controllo a priori che sia univoco con una funzione php e in fine un campo testo.
    Ora voglio cancellare un record e con un ciclo for faccio comparire tutta la tabella ed assegno ad ogni record una ceckbox e mi succede questo: la tabella appare con tutti i record e i relativi ceck seleziono i ceck e premo il tasto invio la prima volta non succede niente se riseleziono il ceck e ripremo mi cancella il record. Non riesco a capire dove sbaglio. vi posso inserire il codice per leggerlo?

  2. #2
    Direi che è meglio se inserisci un po' di codice

  3. #3
    eccolo premetto che forse non è elegante
    te lo inserisco tutto la parte importante è la funzione di visualizzazione che è lista() nella parte funzioni e il bottone butto infondo allo script

    <?php

    session_start();
    $id_user=$_SESSION['user_id'];


    //funzioni++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++
    //Funzione di connessione al server
    function connection(){
    $DB_host="localhost";
    $DB_user =$_SESSION['user_db'];//utente del database
    $DB_password = $_SESSION['passwd_db'];//password del database
    $DB_name=$_SESSION['seledb'];
    $link = mysql_connect($DB_host, $DB_user, $DB_password);
    if (!$link) {
    die ('Non riesco a connettermi al server: ' . mysql_error());
    }

    $db_selected = mysql_select_db($DB_name, $link);
    if (!$db_selected) {
    die ("Errore nella selezione del database: " . mysql_error());
    }
    }

    //visualizza la tabella+++++++++++++++++++++++++++++++++++++++++++ +++++++++++++
    function lista(){
    $query2="SELECT * FROM question ORDER BY Id_question";
    $result2=mysql_query($query2);
    $x=mysql_num_rows($result2);
    for($y=0; $y<$x; $y++){
    $resto=$y%2;
    if($resto==0){
    $resultL=mysql_fetch_array($result2);
    echo "<tr><td><input name=\"elimina[]\" type=\"checkbox\" value=\"$resultL[Id_question]\" /> </td><td>$resultL[Id_question]<td>$resultL[1]</td><td>$resultL[2]</td></tr>";
    }else{
    $resultL=mysql_fetch_array($result2);
    echo "<tr style=background:#EDE9FF><td><input name=\"elimina[]\" type=\"checkbox\" value=\"$resultL[Id_question]\" /></td><td>$resultL[Id_question]</td><td>$resultL[1]</td><td>$resultL[2]</td></tr>";
    }

    }
    }

    // fine funzioni++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++

    //verifica dell'autorizzazione all'accesso del server
    if($id_user){
    connection();//faccio partire la connessione
    $errorCon=1;//impostata per il messaggio in rosso nel caso la connessione non sia avvenuta

    }else{
    $errorCon=0;
    }

    ?>
    <div class="divbody">
    <div class="intestazione">


    Deleted record
    </p>
    </div>
    <div class="divdomanda"><?
    if($errorCon){
    echo ("$DB_user sei autorizzato al databse");
    }else{
    echo("non sei autorizzato");
    }

    ?>
    </div>


    <div class="form">


    </p>


    </p>
    </div>
    <div class="form">

    </div>

    <div class="form">

    <div class="box">

    <form action="<? echo $_SERVER['PHP_SELF']; ?>" name="form1" method="post">

    <table width="600px">
    <tr style="background:#8e76fa">
    <th width="33">Sel</th><th width="45">id Q.</th><th width="34">RIF.</th><th width="468">DOMANDA</th></tr>
    <?
    //faccio apparire la tabella con i record da cancellare
    if($errorCon)
    lista();
    ?>
    </table>

    </div>
    <div>

    </p>
    </div>
    <div>
    <?
    if($_POST['submit']){
    $seleli=implode(",",$_POST['elimina']);
    $sqldel=mysql_query("DELETE FROM question WHERE id_question IN ($seleli)");
    mysql_query($sqldel);

    }



    ?>
    <input type="submit" name="submit" value="Elimina" />
    </form>
    <button name="aggiorna" type="button">Modifica</button>
    <button name="aggiorna" type="button">Inserisci</button>
    </div>

    </div>


    </body>
    </html>

  4. #4
    Originariamente inviato da lpassero
    for($y=0; $y<$x; $y++){
    $resto=$y%2;
    if($resto==0){...
    Cosa vuoi fare con questo controllo?

  5. #5
    voglio colorare alternativamente le righe visualizzate di colori diversi ti invio screen
    Immagini allegate Immagini allegate

  6. #6
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    Codice PHP:
    function lista(){
     
    $query2="SELECT * FROM question ORDER BY Id_question";
     
    $result2=mysql_query($query2);
     
    $x=mysql_num_rows($result2);
     for(
    $y=0$y<$x$y++){
     
    $resto=$y%2;
     if(
    $resto==0){
     
    $resultL=mysql_fetch_array($result2);
     echo 
    "<tr><td><input name=\"elimina[]\" type=\"checkbox\" value=\"$resultL[Id_question]\" /> </td><td>$resultL[Id_question]<td>$resultL[1]</td><td>$resultL[2]</td></tr>";
     }else{
     
    $resultL=mysql_fetch_array($result2);
     echo 
    "<tr style=background:#EDE9FF><td><input name=\"elimina[]\" type=\"checkbox\" value=\"$resultL[Id_question]\" /></td><td>$resultL[Id_question]</td><td>$resultL[1]</td><td>$resultL[2]</td></tr>";
     }

     }
     } 
    questa funzione è un po' contorta, va semplificata io farei così
    Codice PHP:
    function lista(){
     
    $query2="SELECT * FROM question ORDER BY Id_question";
     
    $result2=mysql_query($query2);
     
    $i=0;
    while(
    $resultL=mysql_fetch_array($result2))
    {
         
    $style="";
         if(
    $i==0)
         {
             
    $i=1;
         }
         else
        {
               
    $style="style=\"background:#EDE9FF\"";
               
    $i=0;
        }
        echo 
    "<tr $style><td><input name=\"elimina[]\" type=\"checkbox\" value=\"$resultL[Id_question]\" /></td><td>$resultL[Id_question]</td><td>$resultL[1]</td><td>$resultL[2]</td></tr>";


  7. #7
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    comunque non era quello il tuo problema, il tuo problema in realtà non c'è te li cancella anche la prima volta solo che te fai

    stampa lista
    cancella record


    invece devi fare

    cancella record
    ristampa lista


    Codice PHP:
    //verifica dell'autorizzazione all'accesso del server
     if($id_user){
     connection();//faccio partire la connessione
     $errorCon=1;//impostata per il messaggio in rosso nel caso la connessione non sia avvenuta

     }else{
     $errorCon=0;
     }
     
    ?>
     <div class="divbody">
     <div class="intestazione">
     

    Deleted record
    </p>
     </div>
     <div class="divdomanda"><? 
    if($errorCon){
     echo (
    "$DB_user sei autorizzato al databse");
     }else{
     echo(
    "non sei autorizzato");
     } 

    ?>
     </div>


     <div class="form">
     

     </p>
     

    </p>
     </div>
     <div class="form">

     </div>
     
    <div class="form">
     
    <div class="box">

    <?
    //ho spostato l'eventuale cancellazione prima di ristampare la lista
     
    if($_POST['submit']){
     
    $seleli=implode(",",$_POST['elimina']);
     
    $sqldel=mysql_query("DELETE FROM question WHERE id_question IN ($seleli)");
     
    mysql_query($sqldel);

     }
     
    ?>
     
    <form action="<? echo $_SERVER['PHP_SELF']; ?>" name="form1" method="post">
     
    <table width="600px">
     <tr style="background:#8e76fa">
     <th width="33">Sel</th><th width="45">id Q.</th><th width="34">RIF.</th><th width="468">DOMANDA</th></tr>
     <?
     
    //faccio apparire la tabella con i record da cancellare
     
    if($errorCon)
     
    lista();
     
    ?>
     </table>

     </div>
     <div>

     </p>
     </div>
     <div>

     <input type="submit" name="submit" value="Elimina" />
     </form>
     [url="modifica_ques.php"]<button name="aggiorna" type="button">Modifica</button>[/url]
     [url="inserimento.php"]<button name="aggiorna" type="button">Inserisci</button>[/url]
     </div>

     </div>


     </body>
     </html>

  8. #8
    Vi ringrazio tutti in realtà funziona in tutti e due i modi grazie mille

  9. #9
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    Originariamente inviato da lpassero
    Vi ringrazio tutti in realtà funziona in tutti e due i modi grazie mille
    cosa?

  10. #10
    Ho cambiato sia la funzione e sopratutto il la posizione del controllo submit, ciao grazie mille per l'aiuto

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.