Problema modifica dati

  • Creatore Discussione Creatore Discussione Emix
  • Data di inizio Data di inizio

Emix

Utente Attivo
15 Feb 2010
596
0
16
Salve a tutti,
ho fatto una pagina di modifica articolo... Funziona apparentemente tutto, ma qualsiasi cosa scrivvo mi prende sempre e solo il primo record...
Questo è il codice PHP :

PHP:
<?php
//TUTTO QUESTO SCRIPT E' SU UN'UNICA PAGINA
//creo le sessioni, da inserire nella prima riga in tutte le pagine che si utilizzano
if(!isset($_SESSION)){session_start ();}
include('connect.php');
//qui metto i dati di connessione al DB
//leggo l'input proveniente dal form di questa pagina
//questa parte sino al commento ***FINE MODIFICA*** si attiva alla pressione del submit del form modifica
if(isset($_POST['Modifica']) && $_POST['Modifica'] =="Modifica"){//leggo submit da pagina modifica 
    //leggo i vari $_POST provenienti dal form modifica
    //con htmlspecial... trasformo eventuali tag html malevoli
    //con trim tolgo gli eventuali spazi ini e finali
    // (come dette non ho messo la verifica se qualcuno vuoto)
    $Codice_m=trim(htmlspecialchars($_POST['Codice_m'])); 
    $Descrizione_m=trim(htmlspecialchars($_POST['Descrizione_m']));
    $Acquisto_m=trim(htmlspecialchars($_POST['Acquisto_m']));
	$Vendita_m=trim(htmlspecialchars($_POST['Vendita_m']));
	$Quantita_m=trim(htmlspecialchars($_POST['Quantita_m']));
	$Barcode=trim(htmlspecialchars($_POST['Barcode']));
	//leggo post Codice 
    //con i valori creo la qeurystringa
    //uso $_SESSION['Codice'] perche devo usare il Codice precedente, se cambio il
    //Codice è evidente che non lo trova
   $query_str = "UPDATE articoli SET Codice='" . $Codice_m . "', Descrizione='" . $Descrizione_m . "', 
                                Acquisto='" . $Acquisto_m . "', Vendita='" . $Vendita_m . "', Quantita='" . $Quantita_m . "' 
                            WHERE  Barcode='" . $Barcode . "'";  
    //uppo e verifico
	// echo $query_str;  
   // if(mysql_query($query_str)){//uppa OK 
     // echo "Modifica eseguita"; 
    // }else{//uppa KO 
      //  echo "Si è verificato un errore riprova più tardi"; 
    // } //fine if else uppa 
    //torno all'inserimento Codice cioè alla pag precedente

    //echo "<meta http-equiv='Refresh' content='3; URL=login.php'>";
     if(@mysql_query($query_str)) {
 echo ' <body bgcolor="#000000"> <p align="center"><table cellspacing=5 cellpadding=5 align="center">
<tr>
<td colspan="2">
<img src="logo.png" align="middle" />
</td>
</tr>
<tr>
<td colspan="2">
<font size="+3" color="#FFFFFF"> Modifica articolo avvenuta con successo!</font>
</td>
</tr>
</p>
</table>
</body>';
 } else {
 exit('<p> Errore aggiornamento : ' . mysql_error() . '</p>');
 }
}//fine if post modifica 
//***FINE MODIFICA***
//questa parte si attiva quando dalla pagina precedente ho dato il submit
//***FINE FORM MODIFICA***
if(isset($_POST['invia'])){//leggo il submit da pagina form_Codice.php
    //aggiungendo questa riga
    unset($_POST['invia']);
    //leggo i post trattandoli come prima<br>
    //in particolare se l'utente inputa degli spazi e basta questi vengono eliminati
    //da trim rendendo il post vuot
    //verifico i valori 
	$Barcode=trim(htmlspecialchars($_POST['Barcode']));//leggo post Codice
    if($Barcode == ""){ 
        //sono entrambi vuoti torno a form_Codice.php 
        echo "Non hai inserito il Barcode"; 
        echo "<meta http-equiv='Refresh' content='3; URL=edit_art.php'>"; 
    }else{ 
        //almeno uno dei due o entrambi sono stati riempiti
        $query_str=("SELECT * FROM articoli ") or die (mysql_error()); ;
        //a questo punto interrogo db/tabella
        $query=mysql_query($query_str); 
        //verifico l'esistenza del record che soddisfi alle condizioni della clausola where
        $esistono=mysql_num_rows($query); 
        if($esistono==0){// se 0 non esiste l'articolo 
            //do messaggio e torno ad inserimento Codice 
            echo "Barcode inesistente"; 
            echo "<meta http-equiv='Refresh' content='3; URL=edit_art.php'>"; 
        }else{ 
            //l'articolo esiste e leggo i suoi campi 
            $riga=mysql_fetch_array($query); 
            //metto in sessione il Barcode perche se l'utente lo modifica quando uppo devo trovare il vecchio record
            $_SESSION['Barcode'];
            //leggo anche gli altri campi del record 
            $Codice=$riga['Codice'];
            $Descrizione=$riga['Descrizione'];
            $Acquisto=$riga['Acquisto']; 
            $Vendita=$riga['Vendita']; 
			$Quantita=$riga['Quantita']; 
        }//fine if-else esistono 
    }	//fine if-else verifica vuoti 
    //esco da php per fare il form di modifica 
  
<html>
<head><title>Modifica Articolo</title>
<style type="text/css">
body { 
font: Eras MediUM ITC;
color:#FFF;
}
</style>
<style type="text/css">
#main {
	width:672px;
	height:300px;
	position:absolute;
	top:30%;
	left:50%;
	margin:-150px 0 0 -336px;
}
</style>
</head>

<body bgcolor="#000000">
<div id="main">
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>" method="post" name="Modifica"> 
<table cellspacing=5 cellpadding=5 align="center">
<tr>
<td colspan="2">
<img src="logo.png" align="middle" />
</td>
</tr>
<tr>
<td>
Modifica Articolo: <?php echo $Barcode;?>
</td> 
</tr>
<tr>
<td>
Codice
</td>
<td>
    <input name="Codice_m" type="text" id="Codice_m" value="<?php echo $Codice;?>"> 
</td>
</tr>
<tr>
<td>
Descrizione
</td>
<td>	
    <input name="Descrizione_m" type="text" id="Descrizione_m" value="<?php echo $Descrizione;?>"> 
</td>
</tr>
<tr>
<td>
Acquisto
</td>
<td>
   <input name="Acquisto_m" type="text" id="Acquisto_m" value="<?php echo $Acquisto;?>"> 
</td>
</tr>
<tr>
<td>
Vendita
</td>
<td>	
    <input name="Vendita_m" type="text" id="Vendita_m" value="<?php echo $Vendita;?>"> 
</td>
</tr> 
<tr>
<td>
Quantità
</td>
<td>	
    <input name="Quantita_m" type="text" id="Quantita_m" value="<?php echo $Quantita;?>"> 
    <input name="Barcode" type="hidden" value="<?php echo $Barcode; ?>">  
</td>
</tr>
<tr>
<td colspan="2">
    <input name="Modifica" type="submit" id="Modifica" value="Modifica"> 
</td>
</tr>
</table>
</form> 
</div>
</body>
</html>
<?php 
}//fine if leggo submit 
// ***FINE FORM MODIFICA*** 
?>

Mentre questa è la pagina di submit :

HTML:
<html>
<head>
<title> Modifica User </title>
<style type="text/css">
body {
font: Eras Medium ITC;
color:#FFF
}
</style>

<style type="text/css">
#main {
	width:672px;
	height:300px;
	position:absolute;
	top:50%;
	left:50%;
	margin:-150px 0 0 -336px;
	color:#FFF;
}
</style>
</head>
<body bgcolor="#000000">
<form action="edit_art_1.php" method="post" name="code_barcode">
<div id="main" >
<table border=0 cellpadding=5 cellspacing=5 align="center">
<tr>
<td colspan="2">
<img src="logo.png" align="middle" />
</td>
</tr>
<tr>
<td colspan="2">
Inserisci il Barcode:
</td>
</tr>
<tr>
<td>
Barcode:
</td>
<td>
    <input name="Barcode" type="text" id="Barcode">
</td>
</tr>
<tr>
<td colspan="2" align="center">

    <input name="invia" type="submit" id="invia" value="Invia">
    <input type="reset" name="submit" value="Reset">
</td>
</tr>
</table>
</div>
</form> 
</body>
</html>
 
praticamente io inserisco il codice, e mi arriva alla pagina dopo come se effettivamente lo avesse trovato, ma mostra invece che il codice che sto cercando io, solo il primo record del database...
 
ho risolto inserendo nella query di ricerca il barcode...

PHP:
$query_str=("SELECT * FROM articoli WHERE Barcode=$Barcode ") or die (mysql_error()) ;
 

Discussioni simili