Bonjour à tous,

Voilà deux après-midi que je me casse la tête sur un script pourtant trivial. Je ne comprends pas où est mon erreur. Vous êtes mon derniers recours

J'écris un petit script PHP pour poster des news. Ces dernières sont enregistrées dans une table 'news'. Un des champs de la table s'appelle 'statut' (tinyint(1)) qui peut prendre la valeur 0 ou 1, pour respectivement non publié et publié, soit un boléen.

J'ai écrit un script tout simple qui met à jour cette valeur. Le voici :

Script de mise à jour de la valeur du statut :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
//Instanciation de l'objet
		$news = new news;
 
//Méthode news_content : récupère les données d'une ligne de la table pour un id de news donné.
		$tableauNews = $news -> news_content($newsId);
 
//Mise à jour de la table suivant la valeur du statut.
		if ($tableauNews['statut']) { 
 
			$requete = "UPDATE news
				        SET statut = 0
			    	    WHERE id = '$newsId'";
 
	    	        mysql_query($requete);
 
		}else{
 
			$requete = "UPDATE news
				        SET statut = 1
			    	    WHERE id = '$newsId'";
 
	    	        mysql_query($requete);
 
		}
La méthode news_content de la classe news :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
function news_content($idNews) {
 
		global $tableMySQL;
 
		$requete = "SELECT redacteur, titre, article, timestamp, statut 
					FROM " . $tableMySQL . "news
					WHERE id = '$idNews' ";
 
		$ressource = mysql_query($requete);
		return mysql_fetch_array($ressource);
 
	}
Et cela ne fonctionne pas. A vrai dire, si je fais une requête SELECT juste après le script de mise à jour, la valeur apparaît bien à jour. Sauf que, dans phpmyadmin ou même dans mon listage de news, rien n'a changé. Je ne comprends vraiment pas. Si quelqu'un aurait une piste ou aurait déjà rencontré un problème similaire, je suis prenant.

Je tourne en rond. Quelque fois cela a un comportement assez bizarre. Par exemple si j'enlève le "else", le script fonctionne. Les données sont bien mises à jour. J'ai essayé de réécrire le script sans utiliser les classes (initialement, la mise à jour de la table se fait aussi par une méthode de classe), cela ne change rien.

Merci d'avance.