Problema con DELETE - MYSQL

Iocco Gabriele Gapteck

Nuovo Utente
19 Ott 2013
6
0
0
Salve a tutti vi espongo il mio problema. Sto creando un'applicazione web dove l'utente dopo essersi loggato visualizza tutti gli articoli presenti nel suo magazzino.Per fare ciò ho eseguito 3 query INSERT, SELECT, DELETE,
Il mio problema è che riesco ad eseguire la INSERT e la SELECT ma nn DELETE.
Vi posto tutto il codice:

//index.php

PHP:
<div id="content">                             <!--.........CONTENT...........-->
  		<div id="header_content">                    <!--.........HEADER CONTENT...........-->
  			<h1>Merce Magazzino</h1>
        <p><?php echo $message; ?></p>
      			<div id="elettronica">                 <!--.........ELETTRONICA...........-->
      			   <p>Elettronica</p>
      			   		<form action="index.php" method="post" name="maint" id="maint">
                    <fieldset class="maintform">
          				      <label for="desc">Archivia in magazzino:</label>
          				      <input type="text" name="desc" id="desc" /></br>
          				      <label for="code">Quantita':</label>
          				      <input type="text" name="code" id="code"  />
          				      <input type="submit" name="archivia" value="Archivia"/>
                        <a class="cancel" href="index.php">Cancel</a>
                        <?php
                          //create token
                            $salt = 'SomeSalt';
                            $token = sha1(mt_rand(1,1000000) . $salt);
                            $_SESSION['token'] = $token; //echo $_SESSION['token'];
                        ?>
                        <input type='hidden' name='token' value='<?php echo $token; ?>'/>
                    </fieldset>
    				      </form>
            </div><!--fine DIV elettronica-->
      			<div id="elettrotecnica">                <!--.........ELETTROTECNICA...........-->
      			   <p>Elettrotecnica</p>
      			</div><!--fine DIV elettrotecnica-->
      			<div id="cavi">                          <!--.........CAVI...........-->
      			   <p>Cavi</p> 
      			</div><!--fine DIV cavi-->
      </div><!--fine header_content-->
      <div id="col_elettronica">                  <!--.........COL_ELETTRONICA...........-->
          <?php
             include('select.php');
          ?> 
      </div><!--fine DIV col_elettronica-->

  	</div><!--fine content-->

//select.php



PHP:
<?php

$result = mysqli_query($connection,"SELECT name,qta,id_prodotto FROM elettronica");

   echo "<table border='1'>
           <tr>
             <th>Nome</th>
             <th>Qta</th>
           </tr>";

         while($row = mysqli_fetch_array($result)) {
              echo "<tr>";
                 echo "<td>" . $row['name'] . "</td>";
                 echo "<td>" . $row['qta'] . "</td>"; 
                 echo "<td>" . $row['id_prodotto'] . "</td>";
                 echo "<td class='elimina'>
                    <form action='index.php' method='post' name='delete' id='delete'>
                       <input type='submit' name='elimina' value='Elimina'/>
                       <input type='text' name='id_elimina_articolo' value='".$row['id_prodotto']."' />
                    </form> 
                      </td>";
              echo "</tr>";
              
            }
    $_POST['id_prodotto']  =   $row['id_prodotto'];
   echo $_POST['id_prodotto'];         
   echo "</table>";

   include('delete.php');
             
mysqli_close($connection);
?>


//insert.php

PHP:
<?php

// get the data

$desc = filter_input(INPUT_POST, 'desc',
FILTER_SANITIZE_STRING,FILTER_FLAG_NO_ENCODE_QUOTES);
$code = (int) $_POST['code'];

//verify the data
if (!$desc OR !$code) {
   $message .='Description and   qta are required <br/>';
   } else {

   //prepare the data
   if (get_magic_quotes_gpc()) {
   $desc = stripslashes($desc);
   }
   
   $desc = $connection->real_escape_string($desc);
   $code = (int) $code;
   //echo $code;

   //set up the query
   $query = "INSERT INTO elettronica (id_prodotto,name,qta) VALUE "
               . " ('','$desc','$code')" ;
   //print_r ($query);
   
   // run the query and display appropriate message
   if (!$result = $connection->query($query)) {
      $message .= "unable to add rows <br/>";
      die('Connect Error: ' . $connection->connect_error);
      //print_r($connection);
      } else {
      $message .="row succesfully added<br/>";//print_r($query);
      }
     }
?>


//delete.php

PHP:
<?php
if(isset($_POST['id_prodotto'])) 
       $id_prodotto = $_POST['id_prodotto'];
   
   //echo $id_prodotto;
    mysqli_query($connection,"DELETE FROM elettronica
                    WHERE id_prodotto=".$id_prodotto." ");




?>


Scusate se ho postato tutto il codice ma penso che vi aiuterà a capire grazie :)
 
Ultima modifica di un moderatore:
Ciao, mi pare che sia un problema con gli apici:

prova adesso:
PHP:
mysqli_query($connection,"DELETE FROM elettronica
WHERE id_prodotto='".$id_prodotto."'");
 
ciao ho provato ma niente... cmq nel file select.php il pezzo di codice seguente

$_POST['id_prodotto'] = $row['id_prodotto'];

se lo metto all'interno del ciclo while riesco a cancellare la riga cliccata però non riesco a fare la INSERT,,, e se lo metto fuori dal WHILE come sta ora riesco a fare la INSERT ma non il DELETE.... sono 2 giorni che c sbatto la testa....
 
Ciao, nella query select nella tabella elettronica hai la possibilita' di ricavare 1 o piu' id prodotti quindi per lelimnazione io farei così:
PHP:
 while($row = mysqli_fetch_array($result)) {
$id_prodotto=$row['id_prodotto'];
              echo "<tr>";
                 echo "<td>" . $row['name'] . "</td>";
                 echo "<td>" . $row['qta'] . "</td>"; 
                 echo "<td>" . $row['id_prodotto'] . "</td>";
                 echo "<td class='elimina'>
                    <a href='delete.php?id_prodotto=".$id_prodotto."'
                      </td>";
              echo "</tr>";
              
            }

poi nella pagina delete fai:
PHP:
if(isset($_GET['id_prodotto']))
{
   $id_prodotto = $_GET['id_prodotto'];
   
   //echo $id_prodotto;
    mysqli_query($connection,"DELETE FROM elettronica
                    WHERE id_prodotto='".$id_prodotto."'");
}
 
allora,,, nella query SELECT ad href ho messo index.php così rimane sulla stessa pagina... quando clicco mi cancella ma solo alla seconda volta,, e se faccio il refresh della pagina mi aggiunge sempre l'ultimo dato inserito
 
cmq il problemaa credo che stia nel fatto che nella index richiamo include('insert.php') e ho provato a fare unset ma niente...
lo messo anche online http://provacsm.altervista.org/index.php



PHP:
session_start();
//error_reporting(0);
$message="";
/*unset($desc);
unset($code);
unset($query);*/


include('config.php');
include('check_token.php');
include('insert.php');

 //echo($_POST['id_prodotto']);         
?>
<!DOCTYPE html>
<html> 
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <title>Magazzino</title>
  <script type="text/javascript" scr="http://code.jquery.com/jquery-latest.min.js"></script>
  <link rel="stylesheet" href="css/index.css" type="text/css" media="screen" />
</head>

  <body>
  	<div id="header">                              <!--.........HEADER...........-->
  	</div><!--fine header-->
  	<div id="content">                             <!--.........CONTENT...........-->
  		<div id="header_content">                    <!--.........HEADER CONTENT...........-->
  			<h1>Merce Magazzino</h1>
        <p><?php echo $message; ?></p>
      			<div id="elettronica">                 <!--.........ELETTRONICA...........-->
      			   <p>Elettronica</p>
      			   		<form action="index.php" method="post" name="maint" id="maint">
                    <fieldset class="maintform">
          				      <label for="desc">Archivia in magazzino:</label>
          				      <input type="text" name="desc" id="desc" /></br>
          				      <label for="code">Quantita':</label>
          				      <input type="text" name="code" id="code"  />
          				      <input type="submit" name="archivia" value="Archivia"/>
                        <a class="cancel" href="index.php">Cancel</a>
                        <?php
                          //create token
                            $salt = 'SomeSalt';
                            $token = sha1(mt_rand(1,1000000) . $salt);
                            $_SESSION['token'] = $token; //echo $_SESSION['token'];
                        ?>
                        <input type='hidden' name='token' value='<?php echo $token; ?>'/>
                    </fieldset>
    				      </form>
            </div><!--fine DIV elettronica-->
      			<div id="elettrotecnica">                <!--.........ELETTROTECNICA...........-->
      			   <p>Elettrotecnica</p>
      			</div><!--fine DIV elettrotecnica-->
      			<div id="cavi">                          <!--.........CAVI...........-->
      			   <p>Cavi</p> 
      			</div><!--fine DIV cavi-->
      </div><!--fine header_content-->
      <div id="col_elettronica">                  <!--.........COL_ELETTRONICA...........-->
          <?php

             include('select.php');
          ?> 
      </div><!--fine DIV col_elettronica-->

  	</div><!--fine content-->
  	<div id="footer">
  	</div><!--fine footer>-->
  </body>
  </html>
 
Ultima modifica di un moderatore:

Discussioni simili