Visualizzazione dei risultati da 1 a 2 su 2

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2013
    Messaggi
    147

    2 script UPDATE simili, uno funziona l'altro no

    in un db ho due tabelle chiamate schede e domande.

    la tabella schede è strutturata così:
    id_scheda, nome, stato

    la tabella domande è strutturata così:
    id_quiz, idscheda, domanda, ra, rb,rc

    Riseco ad inserire sia record nella tabella schede che nella tabella domande e pure a cancellarli.
    Riesco a modificare i record di schede mentre non riesco a modificare i record della tabella di domande seppure i due script sono simili.

    In pratica eseguo una query per listare i componenti di schede e poi ho aggiunto per ogni record un pulsante modifica che mi porta alla pagina mod_scheda.php e poi ho anche un link "domande" che mi fa l'elenco delle domande riferite ad ogni scheda.

    query di lista_schede.php
    Codice PHP:
    $result mysql_query("SELECT * FROM schede"
    or die(
    mysql_error());

    echo 
    "<table border='5'>";
    echo 
    "<tr> <th>Nome</th> <th>stato</th> <th>---</th> <th>---</th> <th>---</th> <th>---</th></tr>";
    // keeps getting the next row until there are no more to get
    while($row mysql_fetch_array$result )) {
        
    $id=$row['id_scheda'];
        echo 
    "<tr><td>".$row['nome']."</td><td>".$row['stato']."</td>";
         echo 
    "<td><a href=\"listadom.php?mod=$id\">[domande]</a></td>";
        echo
    "<td><a href=\"canc.php?del=$id\" onclick=\"return(confirm('stai eliminando ".$row['nome']."'))\" >[cancella]</a></td>";
        echo 
    "<td><a href=\"mod_scheda.php?mod=$id\">[modifica]</a></td>";

    echo 
    "</table>";
    ?> 
    Questo è la pagina per modificare le schede:
    mod_scheda.php

    Codice PHP:
    <?php
    if(isset($_POST['modifica'])){//se hai premuto il submit del form modifica 
        
    $id=$_POST['id'];
        
    $nome=$_POST['nome'];
        
    $q="UPDATE schede SET nome='$nome' WHERE id_scheda='$id'"
        
    $ris=mysql_query($q); 
        echo 
    "aggiornato il record $id"
        echo 
    "<meta http-equiv='Refresh' content='3; URL=listaschede.php'>";
        }
    //*********** 
    if(isset($_GET['mod'])){//hai cliccato su MODIFICA della pagina listaschede.php
        
    $id=addslashes(htmlspecialchars($_GET['mod']));
        
    $q="SELECT * FROM schede  WHERE id_scheda='$id'"
        
    $ris=mysql_query($q); 
        
    $riga=mysql_fetch_array($ris);
        
    $nome=$riga['nome'];
    ?> 
    <!-- form modifica -->
    <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post" name="modifica"> 
      <p>
        <input name="id" type="hidden" id="id" value="<?php echo $id;?>">
        <br> Aggiugi scheda
        <input name="nome" type="text" id="nome" value="<?php echo $nome;?>">
      </p> 
      <p> 
        <input name="modifica" type="submit" id="modifica" value="modifica"> 
    </p> 
    </form>
    <?php
    }else{
        
    //echo "i get non funziano";//**** avviso che i get non vengole trasmessi o letti 
        
    echo "<meta http-equiv='Refresh' content='0; URL=listaschede.php'>"
    }
    ?>
    Questa è la pagina della lista delle domande
    listadom.php
    Codice PHP:
        $id_scheda=($_GET['mod']);
        
    $ris mysql_query("SELECT * FROM domande  WHERE idscheda='$id_scheda'") ;
        
    $result mysql_query("SELECT * FROM schede WHERE id_scheda=$id_scheda") or die(mysql_error());
        
    $row1 mysql_fetch_array$result);
         echo 
    "Elenco domande della scheda ".$row1['nome'];

    echo 
    '<table width="50%" border="1" cellspacing="1" cellpadding="3">';
    echo 
    "<tr> <th>Id</th> <th>Idscheda</th> <th>domanda</th> <th> Risposta A</th> <th> Risposta B </th><<th> Risposta C </th><th> Risposta D </th><th>&nbsp;</th><th>&nbsp;</th>  </tr>";

        while(
    $row mysql_fetch_array$ris )) {
            
    $id_quiz=$row['id_quiz'];
            echo 
    "<tr><td>".$row['id_quiz']."</td><td>".$row['idscheda']."</td><td>".$row['domanda']."</td><td>".$row['ra']."</td><td>".$row['rb']."</td><td>".$row['rc']."</td><td>".$row['rd']."</td>";
        echo 
    "<td><a href=\"mod_dom.php?mod=$id_quiz\">[mod]</a></td>";
        echo
    "<td><a href=\"mod_dom.php?del=$id_quiz\" onclick=\"return(confirm('stai eliminando la domanda'))\" >[del]</a></td></tr>";
        } 
    echo 
    "</table>"
    Fin qui nessun problema.
    Ho il problema nel file mod_dom.php dove devo modificare i record della tabella domande.

    mod_dom.php
    Codice PHP:
    <?php
    if(isset($_POST['modifica'])){//se hai premuto il submit del form modifica 
        
    $id=$_POST['id'];
        
    $domanda=$_POST['domanda'];
        
    $ra=$_POST['ra'];
        
    $rb=$_POST['rb'];
        
    $rc=$_POST['rc'];
        
    $rd=$_POST['rd'];
        
    $q="UPDATE domande SET domanda='$domanda', ra='$ra', rb='$rb', rc='$rc', rd='$rd', WHERE id_quiz='$id'"
        
    $ris=mysql_query($q); 
        echo 
    "aggiornato il record $id";
        echo 
    "<meta http-equiv='Refresh' content='3; URL=listadom?mod=$id.php'>";
        }

    if(isset(
    $_GET['mod'])){//hai cliccato su MODIFICA della pagina precedente dell'elenco
        
    $id=addslashes(htmlspecialchars($_GET['mod']));
        
    $q="SELECT * FROM domande  WHERE id_quiz='$id'"
        
    $ris=mysql_query($q); 
        
    $riga=mysql_fetch_array($ris);
        
    //$id_quiz=$riga['id_quiz'];
        
    $domanda=$riga['domanda'];
        
    $ra=$riga['ra'];
        
    $rb=$riga['rb'];
        
    $rc=$riga['rc'];  
        
    $rd=$riga['rd'];
    ?> 

    <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post" name="modifica"> 
    <table width="300" border="0" align="center" cellpadding="2" cellspacing="0">
        <tr>
        <input name="id" type="hidden" id="id" value="<?php echo $id;?>">
          <th>Domanda </th>
          <td>
            <textarea name="domanda" id="domanda" rows=4 cols=25 class='text_area'><?php echo $domanda;?></textarea>
          </td>
        </tr>
        <tr>
          <th>A
          </th>
          <td>
          <input name="ra" type="text" class="textfield" id="ra" value="<?php echo $ra;?>"/>
              </td>
        </tr>
        <tr>
          <th>B</th>
          <td><input name="rb" type="text" class="textfield" id="rb" value="<?php echo $rb;?>"/></td>
        </tr>
        <tr>
          <th>C</th>
          <td><input name="rc" type="text" class="textfield" id="rc" value="<?php echo $rc;?>"/></td>
        </tr>
        <tr>
          <th>D</th>
          <td><input name="rd" type="text" class="textfield" id="rd" value="<?php echo $rd;?>"/></td>
        </tr>
        <tr>
          <td>&nbsp;</td>
          <td><input type="submit" name="Submit" value="modifica" /></td>
        </tr>
      </table>
    </form>

    <?php
    }else{
        
    //echo "i get non funziano";//**** avviso che i get non vengole trasmessi o letti 
        //se accedi direttamente a questa pagina viene riportato subito alla stampa_eventi.php
        
    echo "<meta http-equiv='Refresh' content='0; URL=listaschede.php'>"
    }

    ?>
    Seppure mi carica la pagina mod_dom.php quando clicco sul submit Modifica nel db non mi aggiorna le modifiche fatte. Mentre funziona tutto regolamente per la tabella schede.

    Dove sbaglio?

  2. #2
    c'è un errore
    UPDATE domande SET domanda='$domanda', ra='$ra', rb='$rb', rc='$rc', rd='$rd', WHERE id_quiz='$id
    hai messo la virgola prima del where

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.