Debug

RobertaC

Nuovo Utente
2 Lug 2013
26
0
0
qualcuno di buona volontà potrebbe aiutarmi a capire qual'è l'errore in qst query che generano:

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\wamp\www\gestisci.php

PHP:
$strSQL15="INSERT INTO modif_stato VALUES ('$riga11[\"id\"]','$data_oggi . $data_ora', '$cod_operatore', '$gruppoass', '$assegnatario', $riga11[\"stato_attuale\"]','assegnato');";
                
$strSQL16="INSERT INTO incident VALUES ('$riga11[\"id\"]','$data_oggi . $data_ora', '', '$riga11[\"priorita_segn\"]', '', '', '', '', 'SI', '');";

vi prego, mi sta facendo impazzire!
 
ciao
intanto togli il ;
...assegnato');";
poi prova a scrivere l'elemento dell'array così
PHP:
<?php
$strSQL15="INSERT INTO modif_stato VALUES ('".$riga11['id']."','$data_oggi . $data_ora', '$cod_operatore', '$gruppoass', '$assegnatario', $riga11[\"stato_attuale\"]','assegnato')"; 
?>
poi subito dopo metti un var_dump in modo da vedere se la stringa viene scritta come dovrebbe
PHP:
<?php
$strSQL15="INSERT INTO modif_stato VALUES ('".$riga11['id']."','$data_oggi . $data_ora', '$cod_operatore', '$gruppoass', '$assegnatario', $riga11[\"stato_attuale\"]','assegnato')"; 
var_dump($strSQL15);// poi lo togli o lo commenti
?>
 
Ultima modifica:
anzi, dopo avre ben sistemato il tuo suggerimento nel codice
PHP:
 $strSQL15="INSERT INTO modif_stato VALUES ('".$riga11[\"id\"]."','$data_oggi . $data_ora', '$cod_operatore', '$gruppoass', '$assegnatario', '$riga11[\"stato_attuale\"]','assegnato')"; 

var_dump($strSQL15);
ora l'errore è:
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting T_STRING in C:\wamp\www\gestisci.php on line 144
naturalmente la riga 144 è qll dv è la query

e cmq vardump non mi stampa nulla
 
ciao
altra correzione mi era sfuggito
PHP:
<?php
$strSQL15="INSERT INTO modif_stato VALUES ('".$riga11['id']."','$data_oggi . $data_ora', '$cod_operatore', '$gruppoass', '$assegnatario', '".$riga11['stato_attuale']."','assegnato')";
var_dump($strSQL15); echo "<br>";             
$strSQL16="INSERT INTO incident VALUES ('".$riga11['id']."','$data_oggi . $data_ora', '', '".$riga11['priorita_segn']."', '', '', '', '', 'SI', '')";
var_dump($strSQL15); echo "<br>"; 
?>
ho dei dubbi su '$data_oggi . $data_ora', non tanto per l'errore ma di come vuoi che si formi li campo
così come l'hai messo risulta es.
10/07/2013 . 12:29:21
ma questo devi dirlo tu se è giusto

p.s.
ho provato le stringhe con valori fittizzi e è ok, se ti da ancora errore l'errore non è nelle stringhe e bisogna cercarlo nel resto dello script
 
grazie

perfetto, con il tuo aiuto non ho più errori al caricamento della pagina
però adesso, quando premo il pulsante per caricare i nuovi dati su db mi dà una notice per una variabile che non centra niente con la query ma che uso all'inizio del codice per passare un dato di un form di un'altra pagina

forse si svuota nel momento in cui ricarica la pagina alla pressione del bottone

posso capire quindi che mi dia l'errore, ma nn riesco a capire perchè non mi crei la nuova tupla con i dati da me settati
 
ti posto il codice...anke se un pò lungo

PHP:
<?php 

    $hostname = "localhost";
    $username = "root"; 
    $password = ""; 
    $dbname = "monitoraggio"; 
    $conn = mysql_connect($hostname, $username, $password) or die ('Errore durante la connessione al server MySQL. aaaarrrrghhhh' . mysql_error());  
    mysql_select_db($dbname, $conn) or die ('Errore durante l\'accesso al DataBase, THE MACHINE SPIRIT IS SLEEPING' . mysql_error());
    $id_inc=$_POST["id_gest"];
          
?>
<html>
<head>
    <title>GESTIONE INCIDENT</title>
    <link href="css/all.css" rel="stylesheet" type="text/css" media="all"/>
    <script>
    function nome()
    {

        var selectvar2=document.getElementById('codicechiusura');
        var selectvar1=document.getElementById('status');
        var idx=selectvar1.selectedIndex;
       
        if (selectvar1.options[idx].value=='chiuso')
        {
            selectvar2.disabled=false;
        }else  selectvar2.disabled=true;
        
    }
    </script>
</head>
<body>
   
    <div id="main">
  <div id="main">
    <div id="divmenu">
        <h1>GESTIONE INCIDENT</h1>
        <a href="user_interface1.php"><img src="img/img_exit.jpg" alt="EXIT"></a>
    
    </div>

    <div id="divsx">
        <div id="divsx1">
            <h2>DATI INCIDENT</h2>
            
        </div>
        <div id="divsx2"><br/><br/>
            <?php
                $strSQL11 = "SELECT incident.id, incident.data_ap1, incident.priorita_segn, modif_stato.stato_attuale, modif_stato.assegnatario, modif_stato.gruppo_assegn, modif_stato.data_mod FROM incident, modif_stato WHERE incident.id = '".$id_inc."' AND incident.id = modif_stato.id_incid AND data_mod=(select max(data_mod) from modif_stato where id_incid=incident.id);"; 
                $risultato11 = mysql_query($strSQL11,$conn); 
                if($risultato11 === FALSE) {
                 die(mysql_error()); }
                while($riga11= mysql_fetch_array($risultato11))
                {
                echo '<br/><br/><br/><br/>';
                echo '<h3 align="center"><i> ID:</i>' . $riga11["id"] . ' </h3> <br/> <h4 align="center">';
                echo '<i> Status:</i>' . $riga11["stato_attuale"] . '<br/><br/>';
                echo '<i>Gruppo assegnatario:<i/>' . $riga11["gruppo_assegn"] . '<br/><br/>';
                echo '<i>Data apertura:</i>' . $riga11["data_ap1"] . '<br/><br/>';
                echo '<i>Data ultima modifica:</i>' . $riga11["data_mod"] . '<br/><br/>';
                echo '</h4>';
                }
                ?>
        </div>
    </div>
    
    <div id="divdx">
        <div id="divdx1">
            <h2>MODIFICA INCIDENT</h2>
        </div>
        <div id="divdx2">
            <form id="gestione" name="gestione" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
                <h3 align="center"> <br/>IDincident: <?php echo $id_inc; ?> </h3>
                <h4 align="center">Stato:
                <select  id="status" name="status" onChange="nome()">
                    <option value="in_corso" selected>IN CORSO</option>
                    <option value="assegnato">ASSEGNATO</option>
                    <option value="pendente">PENDENTE</option>
                    <option value="risolto">RISOLTO</option>
                    <option value="annullato">ANNULLATO</option>
                    <option value="chiuso">CHIUSO</option>
                    <option value="riaperto">RIAPERTO</option>
                </select>
                    <br/><br/>
                    Chiusura:
                    <select id="codicechiusura" name="codicechiusura" disabled>
                        <?php
                         $risultato3=mysql_query("SELECT codice, descr FROM codice_chius", $conn); 
                 
                         while ($riga3=mysql_fetch_array($risultato3))
                         {
                         $campo13 = $riga3['codice'];
                         $campo23 = $riga3['descr'];
                   
                         echo "<option value='$campo13'>$campo13 . $campo23</option>";  
                         }
                        ?>
                    </select>
                    <br/><br/>
                Gruppo:
                <select id="gruppoass" name="gruppoass">
                    
                 <?php
                 $risultato2=mysql_query("SELECT DISTINCT gruppo_assegn FROM modif_stato", $conn); 
                 
                 while ($riga2=mysql_fetch_array($risultato2))
                 {
                 $campo12 = $riga2['gruppo_assegn']; 
                   
                 echo "<option value='$campo12'>$campo12</option>";  
                 }
                 ?>
                 </select>
                <br/><br/>
                Assegnatario:
                <input type="text" name="assegnatario" size="20" maxlenght="40" placeholder="nome_assegnatario" required/>
                <br/><br/>
                Matricola operatore:
                <input type="text" name="cod_operatore" size="20" maxlenght="40" required/>
                <br/><br/>
                Data:
                <?php
                $data_oggi=date("d.m.Y");
                $data_ora=date("H:i:s");
                echo $data_oggi . "--"  . $data_ora;
                ?><br/><br/>
                Note:<br/>
                <textarea name="note"></textarea>
                </h4><br/>
            <br/>
            <h4 align="center">
            <input type="submit" value="CARICA" align="center" name="carica"></h4>
            </form>
            <?php
                
            $cod_operatore="cod_operatore";
            $gruppoass="gruppoass";
            $assegnatario="assegnatario";
            $statomod="status";
            $codchiu="codicechiusura";
            if($statomod=='RIAPERTO')
            {
               $strSQL15="INSERT INTO modif_stato VALUES ('".$riga11['id']."','$data_oggi . $data_ora', '$cod_operatore', '$gruppoass', '$assegnatario', '".$riga11['stato_attuale']."','assegnato')"; 
                var_dump($strSQL15); echo "<br>";
                mysql_query($strSQL15,$conn);
                $strSQL16="INSERT INTO incident VALUES ('".$riga11['id']."','$data_oggi . $data_ora', '', '".$riga11['priorita_segn']."', '', '', '', '', 'SI', '')"; 
                var_dump($strSQL15); echo "<br>";                 
                mysql_query($strSQL16,$conn);
                }
             else{
                $strSQL12 = "INSERT INTO modif_stato VALUES ( '".$riga11['id']."','".$data_oggi . $data_ora."', '".$cod_operatore."', '".$gruppoass."', '".$assegnatario."',         
'".$riga11['stato_attuale']."','".$statomod."');";}
                mysql_query($strSQL12,$conn);
                if($statomod=='RISOLTO'||$statomod=='ANNULLATO')
                {
                    $strSQL13="UPDATE incident SET data_ris == '".$data_oggi . $data_ora."' WHERE id='".$riga11['id']."';";
                    mysql_query($strSQL13,$conn);
                }
                else if($statomod=='CHIUSO')
                {
                    $strSQL14="UPDATE incident SET cod_ch = '".$codchiu."' WHERE id='".$riga11['id']."';";
                    mysql_query($strSQL14,$conn);
                }
            ?> 
    </div>
</div>
    
</body>
</html>
la variabile che mi genera l'errore è $id_inc=$_POST["id_gest"];
che fino a che nn premo il pulsante carica, mantiene il valore preso dal form di altra pg, poi però nn sò ke succede e se ne va x i fatti suoi
fammi saxe
 
ciao
per eliminare l'errore metti così
PHP:
<?php
//..........
if(isser($_POST["id_gest"])){
	$id_inc=$_POST["id_gest"]; 
}
//..........
?>
c'è però un ma:
se il valore di $id_inc ti serve anche dopo che hai fatto l'insert al db devi salvare il valore in sessione
 
no, non mi serve più, mi serve solo x estrarre dei dati da db, ora provo e t faccio saxe.
cmq immagino che tu volessi scrivere if(isset
 
ufff

il controllo è come se non ci fosse,
perchè la variabile fa benissimo il suo dovere quando carico la pag
è nel momento in cui premo il pulsante post che si svuota, ma il problema principale non è quello, non mi importa che ci siano errori a quel punto, mi interessa invece che al click su "CARICA" la pag invii i dati a db, cosa che cmq nn fa
 
ciao
guardando meglio mi sembra che ti serva
allora devi fare così
PHP:
<?php
session_start();//!!!questa DEVE essere la prima istruzione e davanti al tag <?php NON DEVE esserci nemmeno uno spazio
$hostname = "localhost";
$username = "root"; 
$password = ""; 
$dbname = "monitoraggio"; 
$conn = mysql_connect($hostname, $username, $password) or die ('Errore durante la connessione al server MySQL. aaaarrrrghhhh' . mysql_error());  
mysql_select_db($dbname, $conn) or die ('Errore durante l\'accesso al DataBase, THE MACHINE SPIRIT IS SLEEPING' . mysql_error()); 
//..........
if(isser($_POST["id_gest"])){
	$_SESSION['id_inc']=$_POST["id_gest"];
	$id_inc=$_SESSION['id_inc'];
	/* o puoi usare, dove serve, al posto di $id_inc direttamente $_SESSION['id_inc']
	allora $id_inc=$_SESSION['id_inc'] e la parte else{....} non ti serve
	*/
}else{
	$id_inc=$_SESSION['id_inc'];
}
//..........
?>
 
ciao
prova così, mancava il controllo del submit.
comunque mi sembra che "dovrebbe" funziare anche se non posso testarlo
(la parte php l'ho messa secondo il mio stile di programmazione)

PHP:
<?php 
session_start();//questa ti conviene tenerla
$hostname = "localhost";
$username = "root"; 
$password = ""; 
$dbname = "monitoraggio"; 
$conn = mysql_connect($hostname, $username, $password) or die ('Errore durante la connessione al server MySQL. aaaarrrrghhhh' . mysql_error());  
if(isser($_POST["id_gest"])){// e anche questo
    $_SESSION['id_inc']=$_POST["id_gest"];
    $id_inc=$_SESSION['id_inc'];
}else{
    $id_inc=$_SESSION['id_inc'];
}       
?>
<html>
<head>
    <title>GESTIONE INCIDENT</title>
    <link href="css/all.css" rel="stylesheet" type="text/css" media="all"/>
    <script>
    function nome()
    {
        var selectvar2=document.getElementById('codicechiusura');
        var selectvar1=document.getElementById('status');
        var idx=selectvar1.selectedIndex;
        if (selectvar1.options[idx].value=='chiuso')
        {
            selectvar2.disabled=false;
        }else  selectvar2.disabled=true;
        
    }
    </script>
</head>
<body>
    <div id="main">
  <div id="main">
    <div id="divmenu">
        <h1>GESTIONE INCIDENT</h1>
        <a href="user_interface1.php"><img src="img/img_exit.jpg" alt="EXIT"></a>
    </div>
    <div id="divsx">
        <div id="divsx1">
            <h2>DATI INCIDENT</h2>
        </div>
        <div id="divsx2"><br/><br/>
<?php
$strSQL11 = "SELECT incident.id, incident.data_ap1, incident.priorita_segn, modif_stato.stato_attuale, modif_stato.assegnatario, modif_stato.gruppo_assegn, modif_stato.data_mod FROM incident, modif_stato WHERE incident.id = '".$id_inc."' AND incident.id = modif_stato.id_incid AND data_mod=(select max(data_mod) from modif_stato where id_incid=incident.id);"; 
$risultato11 = mysql_query($strSQL11,$conn); 
if($risultato11 === FALSE) {
	die(mysql_error());
}
while($riga11= mysql_fetch_array($risultato11)){
	echo '<br/><br/><br/><br/>';
	echo '<h3 align="center"><i> ID:</i>' . $riga11["id"] . ' </h3> <br/> <h4 align="center">';
	echo '<i> Status:</i>' . $riga11["stato_attuale"] . '<br/><br/>';
	echo '<i>Gruppo assegnatario:<i/>' . $riga11["gruppo_assegn"] . '<br/><br/>';
	echo '<i>Data apertura:</i>' . $riga11["data_ap1"] . '<br/><br/>';
	echo '<i>Data ultima modifica:</i>' . $riga11["data_mod"] . '<br/><br/>';
	echo '</h4>';
}
?>
        </div>
    </div>
    <div id="divdx">
        <div id="divdx1">
            <h2>MODIFICA INCIDENT</h2>
        </div>
        <div id="divdx2">
            <form id="gestione" name="gestione" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
                <h3 align="center"> <br/>IDincident: <?php echo $id_inc; ?></h3>
                <h4 align="center">Stato:
                <select  id="status" name="status" onChange="nome()">
                    <option value="in_corso" selected>IN CORSO</option>
                    <option value="assegnato">ASSEGNATO</option>
                    <option value="pendente">PENDENTE</option>
                    <option value="risolto">RISOLTO</option>
                    <option value="annullato">ANNULLATO</option>
                    <option value="chiuso">CHIUSO</option>
                    <option value="riaperto">RIAPERTO</option>
                </select>
                    <br/><br/>
                    Chiusura:
                    <select id="codicechiusura" name="codicechiusura" disabled>
<?php
$risultato3=mysql_query("SELECT codice, descr FROM codice_chius", $conn); 
while ($riga3=mysql_fetch_array($risultato3)){
	$campo13 = $riga3['codice'];
	$campo23 = $riga3['descr'];
	echo "<option value='$campo13'>$campo13 . $campo23</option>";  
}
?>
                    </select>
                    <br/><br/>
                Gruppo:
                <select id="gruppoass" name="gruppoass"> 
<?php
$risultato2=mysql_query("SELECT DISTINCT gruppo_assegn FROM modif_stato", $conn); 
while ($riga2=mysql_fetch_array($risultato2))
	$campo12 = $riga2['gruppo_assegn']; 
	echo "<option value='$campo12'>$campo12</option>";  
}
?>
                 </select>
                <br/><br/>
                Assegnatario:
                <input type="text" name="assegnatario" size="20" maxlenght="40" placeholder="nome_assegnatario" required/>
                <br/><br/>
                Matricola operatore:
                <input type="text" name="cod_operatore" size="20" maxlenght="40" required/>
                <br/><br/>
                Data:
<?php
$data_oggi=date("d.m.Y");
$data_ora=date("H:i:s");
echo $data_oggi . "--"  . $data_ora;
?>
				<br/><br/>
                Note:<br/>
                <textarea name="note"></textarea>
                </h4><br/>
            <br/>
            <h4 align="center">
            <input type="submit" value="CARICA" align="center" name="carica"></h4>
            </form>
<?php
//se questa è la parte di inserimento manca il controllo del submit
if(isset($_POST['carica'])){
	$cod_operatore="cod_operatore";
	$gruppoass="gruppoass";
	$assegnatario="assegnatario";
	$statomod="status";
	$codchiu="codicechiusura";
	if($statomod=='RIAPERTO'){
		$strSQL15="INSERT INTO modif_stato VALUES ('".$riga11['id']."','$data_oggi . $data_ora', '$cod_operatore', '$gruppoass', '$assegnatario', '".$riga11['stato_attuale']."','assegnato')"; 
		//var_dump($strSQL15); echo "<br>";
		mysql_query($strSQL15,$conn);
		$strSQL16="INSERT INTO incident VALUES ('".$riga11['id']."','$data_oggi . $data_ora', '', '".$riga11['priorita_segn']."', '', '', '', '', 'SI', '')"; 
		//var_dump($strSQL15); echo "<br>";                 
		mysql_query($strSQL16,$conn);
	}else{
		$strSQL12 = "INSERT INTO modif_stato VALUES ( '".$riga11['id']."','".$data_oggi . $data_ora."', '".$cod_operatore."', '".$gruppoass."', '".$assegnatario."', '".$riga11['stato_attuale']."','".$statomod."');";}
		mysql_query($strSQL12,$conn);
		if($statomod=='RISOLTO'||$statomod=='ANNULLATO'){
			$strSQL13="UPDATE incident SET data_ris == '".$data_oggi . $data_ora."' WHERE id='".$riga11['id']."';";
			mysql_query($strSQL13,$conn);
		}elseif($statomod=='CHIUSO'){
			$strSQL14="UPDATE incident SET cod_ch = '".$codchiu."' WHERE id='".$riga11['id']."';";
		 	mysql_query($strSQL14,$conn);
		}
	}
}//fine dell'i submit
?> 
    </div>
</div>
    
</body>
</html>

p.s.
abbandona le vecchie mysql, devi passare a mysqli o meglio alla classe PDO
 
continua a non caricare e non capisco xkè,sto x lanciare il pc dalla finestra
forse è il caso di rivedere tutto domani
grazie cmq

p.s.=se ti viene in mente qlkosa fammi saxe, xkè io continuo a brancolare nel buio.Ciao!
 
ciao
isser si hai ragione errore di tasto

come detto non posso testarlo in quanto non ho il tuo db e visto così non mi sembra sintatticamente errato.
comunque per una prima verifica spargi a pioggia i var_dump subito dopo le querystringa in modo da vedere se vengono scritte come dovrebbe.
verifica anche i i nomi tabelle, campi siano perfettamente uguali (compreso maiuscole/minuscole) tra le query e le tabelle
 

Discussioni simili