Non mi considera l'if

Roberto Simoni

Nuovo Utente
3 Ago 2013
5
0
0
Ciao a tutti, sono nuovo di questo forum ed è da poco che mi sono avvicinato alla programmazione in PHP
ho fatto delle pagine che funzionano benissimo tranne questa che pur essendo alquanto semplice non mi
considera il ciclo if


dunque questa è la mia pagina Archivia.php

PHP:
<?php
session_start();

mysql_connect("localhost", "utente", "psw") or die (mysql_error());
mysql_select_db("db_name") or die (mysql_error());

mysql_query("UPDATE cedola  SET stampato = 1 WHERE ID = '$id'") or die (mysql_error());

if ( ! mysql_query($query) ) { 
  
  echo "<script language=\"javascript\">alert('Si è verificato un Errore');</script>";
  echo "<meta http-equiv=\"refresh\" content=\"0; url=index.php\">";    
} else { 
    //tutto ok
  
  echo "<meta http-equiv=\"refresh\" content=\"0; url=index.php\">";
}

?>

ORA la query funziona correttamente e mi modifica il valore da 0 a 1 quello che non capisco però è l'if sotto perchè viene non considerato... nel senso che...
così come è impostato "almeno credo" se la query ha dei problemi mi dovrebbe restituire il messaggio di errore e tornare sull'index altrimenti torna direttamente sull'index perchè è andato tutto bene...

Premetto che questo if l'ho già usato su un'altra pagina e così come è scritto funziona bene... su questa pagina invece mi fa questo ... esegue la query cambia il valore e mi segnala l'errore... ho provato a cambiare e metterla nell'else quindi sotto dove ho messo //tutto ok e fa esattamente la stessa cosa.. esegue la query modifica e mi da il segnale di errore anche in questo caso.... come mai?
sbaglio qualcosa?
grazie in anticipo per l'aiuto che potrete darmi..
 
Ultima modifica di un moderatore:
ciao
correggi in
PHP:
<?php
session_start();
mysql_connect("localhost", "utente", "psw") or die (mysql_error());
mysql_select_db("db_name") or die (mysql_error());
if ( !mysql_query("UPDATE cedola  SET stampato = 1 WHERE ID = '$id'") ) { 
  echo "<script language=\"javascript\">alert('Si è verificato un Errore');</script>";
  echo "<meta http-equiv=\"refresh\" content=\"0; url=index.php\">";    
} else { 
    //tutto ok
  echo "<meta http-equiv=\"refresh\" content=\"0; url=index.php\">";
} 
?>
oppure
PHP:
<?php
session_start();
mysql_connect("localhost", "utente", "psw") or die (mysql_error());
mysql_select_db("db_name") or die (mysql_error());

$query=mysql_query("UPDATE cedola  SET stampato = 1 WHERE ID = '$id'") or die (mysql_error());

if ( !$query ) { 
  
  echo "<script language=\"javascript\">alert('Si è verificato un Errore');</script>";
  echo "<meta http-equiv=\"refresh\" content=\"0; url=index.php\">";    
} else { 
    //tutto ok
  echo "<meta http-equiv=\"refresh\" content=\"0; url=index.php\">";
} 
?>
come fai tu la variabile $query non esiste

dimenticavo la variabile $id da dove salta fuori?
 
Ultima modifica:
Grazie 1000 ho usato la prima soluzione che mi hai proposto e funziona perfettamente.
la variabile $id si carica nella pagina index che poi mediante il metodo post mi richiama la pagina archivia.php
so che può sembrare strano ma richiamandola così funziona perfettamente e rimane caricata ho provato a richiamarla mettendo
'{$_POST['id']}' ma mi ritornava sempre la variabile vuota... solo ora che l'ho riscritta per postarla in questo post mi viene un dubbio....
non è che dovevo comunque mettere il simbolo del dollaro? ossia: '{$_POST['$id']}'

praticamente nella pagina index eseguo una query che mi ricava tutti i dati e me li stampa a video, in un textarea con proprietà hidden per non farlo visualizzare mettevo l'id del record ed il text si chiama id quindi con il metodo post richiamavo la pagina archivia.php che provvedeva mediante l'id del record a cambiare lo stato del campo stampato da 0 a 1...

provando a richiamare la variabile così come l'ho esposta nella query mi funziona bene... ma non so se sia il procedimento esatto...

Grazie 1000 cmq per il tuo preziosissimo aiuto.
Roberto
 
ciao
se nel form hai qualcosa di simile
PHP:
<input name="id" type="hidden" value="<?php echo $id; ?>">
o
PHP:
<input name="id" type="hidden" value="<?php echo $riga['id']; ?>">
nella parte php devi mettere
PHP:
$id=$_POST['id'];
per ricavare il valore dell'id e mettero poi nella query di up
 
grazie borgo
si ho il primo caso che hai descritto....
domani eseguo la variazione così come mi hai descritto però nel modo come ce l'ho cmq funziona perfettamente :D
grazie per il suggerimento... :fonzie:
 

Discussioni simili