Page 1 sur 3

probleme de code

Posté : 31 oct. 2006, 12:52
par 2501gigi
Bonjour bon voila vous pouvais m'aider qu'est qui ne va pas dans se code:

f (!isset($_POST['message'] )) $Tn=""; else $Tn=$_POST['message'];
if (!isset($_POST['TitreNews'] )) $Ttn=""; else $Ttn=$_POST['TitreNews'];




if (isset($_GET['modifier_news']))
		{$Modifnews = mysql_query('SELECT TITnew,TEXnew FROM tnews WHERE IDTn=' . $_GET['modifier_news']);
		$données = mysql_fetch_array($Modifnews);
		 mysql_query('UPDATE tnews SET TITnew='.$_POST['TitreNews'].' ,TEXnew='. $_POST['message'].' WHERE IDTn=' . $_GET['modifier_news']);
		header("Location: notesNews.php"); 
		 }
Le probleme c'est qui ne m'update pas ma table tnews.

Merci d'avance.

Posté : 31 oct. 2006, 13:09
par charabia
$données doit poser souci...l'accent
if (!isset($_POST['message'] )) $Tn=""; else $Tn=$_POST['message']; 
if (!isset($_POST['TitreNews'] )) $Ttn=""; else $Ttn=$_POST['TitreNews']; 

if (isset($_GET['modifier_news'])) 
{
	$Modifnews = mysql_query('SELECT TITnew,TEXnew FROM tnews WHERE IDTn=' . $_GET['modifier_news'].''); 
	$donnees = mysql_fetch_array($Modifnews); 
	mysql_query('UPDATE tnews SET TITnew='.$_POST['TitreNews'].' ,TEXnew='. $_POST['message'].' WHERE IDTn=' . $_GET['modifier_news'].''); 
	header("Location: notesNews.php");  
}

Posté : 31 oct. 2006, 13:10
par jojolapine
houlà c'est moche tout ça ...
essaye d'indenter ton code correctement
if (!isset($_POST['message'] )){
    $Tn="";
} else {
    $Tn=$_POST['message'];
}
if (!isset($_POST['TitreNews'] )){
    $Ttn="";
} else {
    $Ttn=$_POST['TitreNews'];
}


if (isset($_GET['modifier_news'])){
    $Modifnews = mysql_query('SELECT TITnew,TEXnew FROM tnews WHERE IDTn=' . $_GET['modifier_news']);
    $données = mysql_fetch_array($Modifnews);
    mysql_query('UPDATE tnews SET TITnew='.$_POST['TitreNews'].' ,TEXnew='. $_POST['message'].' WHERE IDTn=' . $_GET['modifier_news']);
    header("Location: notesNews.php"); 
}
ensuite, les accents ne sont pas autorisés dans le nommage des variables: cf $données,
ensuite, pourquoi faits tu une initialisation des variables $Ttn et $Tn, si c'est pour ne pas t'en servir par la suite ?
pour finir, pourquoi faits tu un select avant l'update, alors que tu ne t'en sert pas dans l'update ?

Posté : 31 oct. 2006, 13:43
par 2501gigi
Merci pour vos reponses .

Moi sa marche quand je met un accent sur une variable:

exemple
if (isset($_GET['modifier_news']))
		{$Modifnews = mysql_query('SELECT TITnew,TEXnew FROM tnews WHERE IDTn=' . $_GET['modifier_news']);
		$données = mysql_fetch_array($Modifnews);
		echo $données['TITnew'];
		}
Sa m'affiche se que je veut.

Bon apres, de toute facon j'ai essaye sans l'accent et sa ne marche pas quand meme.

J'ai enlevé mon select marche pas non plus.

Posté : 31 oct. 2006, 14:07
par 2501gigi
bon voila j'ai changer mon code pour ceci:
<?php
if (($action=="Ajouter") and (isset($_GET['modifier_news']))){ 
    mysql_query("UPDATE tnews SET TITnew= '".$Ttn."' ,TEXnew='".$Tn."' WHERE IDTn=" . $_GET['modifier_news']); 
    header("Location: notesNews.php");  
}
else {
if ($action=="Ajouter"){ 
mysql_select_db ($database_Debaseconnect,$Debaseconnect);
$insertListe = "INSERT INTO tnews (DATEn,TITnew,TEXnew) VALUES ('$date','$TitreTexteNews','$Textnews')";
$Result6 = mysql_query($insertListe, $Debaseconnect) or die(mysql_error());
header("Location: notesNews.php");
}}
?>

Alors ca ne modifie pas ma Table et sa m'ajoute un enregistrement qui devait etre mes modis et en plus sa me met:

Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-7\www\sitedebase\admin\notesnews.php:231) in c:\program files\easyphp1-7\www\sitedebase\admin\notesnews.php on line 369

Ola la boulette.

Bon je cherche. Mais merci de m'aider

Posté : 31 oct. 2006, 14:08
par xs_stef
Salut,
à tout hasard :
 mysql_query("UPDATE tnews SET TITnew='".$_POST['TitreNews']."' ,TEXnew='". $_POST['message']."' WHERE IDTn='". $_GET['modifier_news']."'");

Posté : 31 oct. 2006, 14:11
par 2501gigi
Marche pas sa me fait toujours pareil

Posté : 31 oct. 2006, 14:16
par xs_stef
Il y a une raison pour laquelle tu fais un select_db dans le else et pas dans la première clause du if ?

Posté : 31 oct. 2006, 14:25
par 2501gigi
oui au depart je n'avait que la fonction qui se trouve dans le else et apres j'ai rajouter l'autre par dessus

Posté : 31 oct. 2006, 14:29
par xs_stef
en tant que Foetus, je dirais ça :
<?php
	if ($action=="Ajouter")
	{
		mysql_select_db ($database_Debaseconnect,$Debaseconnect);
		if (isset($_GET['modifier_news'])
		{ 
			mysql_query("UPDATE tnews SET TITnew= '".$Ttn."' ,TEXnew='".$Tn."' WHERE IDTn='" . $_GET['modifier_news']."'"); 
		}
		else
		{ 
			$insertListe = "INSERT INTO tnews (DATEn,TITnew,TEXnew) VALUES ('$date','$TitreTexteNews','$Textnews')";
			mysql_query($insertListe);
		}
		header("Location: notesNews.php");
	}
?> 

Posté : 31 oct. 2006, 14:44
par 2501gigi
toujours pareil mais sans la phrase


Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-7\www\sitedebase\admin\notesnews.php:231) in c:\program files\easyphp1-7\www\sitedebase\admin\notesnews.php on line 369

On bon debut merci

il manquer une parenthese mais pas grave

Posté : 01 nov. 2006, 16:39
par 2501gigi
Bon maintenant sa me modifie bien mon enregistrement en modifiant le titre et le texte, mais en gardant l'ID et la date,mais sa creer l'ancien dans un autre enregistrement, meme titre,meme texte mais ID et date differente.

Comprend pas :?:

Posté : 01 nov. 2006, 17:30
par 2501gigi
Maintenant sa me l'UPDATE bien comme il faut mais sa me creer plus un enregistrement quand je mais ajouter:
if (!isset($_SESSION['modif'] )) $modif=0 ; else $modif= $_SESSION['modif'];
if (!isset($_POST['message'] )) $Tn=""; else $Tn=$_POST['message'];
if (!isset($_POST['TitreNews'] )) $Ttn=""; else $Ttn=$_POST['TitreNews'];

if (isset($_GET['modifier_news']))
{
$_SESSION['modif']=1;
}

if (($action=="Ajouter") and ($modif=1))
{
mysql_select_db ($database_Debaseconnect,$Debaseconnect); 
$modifierNews="UPDATE tnews SET TITnew= '$Ttn' ,TEXnew='$Tn' WHERE IDTn=61";
$Result8 = mysql_query($modifierNews, $Debaseconnect) or die(mysql_error()); 
session_unset();
header("Location: notesNews.php"); 
}else {
if (($action=="Ajouter") and  ($modif=0))
{  
mysql_select_db ($database_Debaseconnect,$Debaseconnect); 
$insertListe = "INSERT INTO tnews (DATEn,TITnew,TEXnew) VALUES ('$date','$TitreTexteNews','$Textnews')"; 
$Result6 = mysql_query($insertListe, $Debaseconnect) or die(mysql_error()); 
header("Location: notesNews.php");
}
}

IL y a personne pour m'aider.

Posté : 01 nov. 2006, 17:54
par Cyrano
Un détail m'échappe : arrive tu à relire ton propre code sans t'emméler les crayons ? :-k

Un peu de rigueur et de discipline, ¸^ca te faciliterait pas mal la vie me semble-t-il, par exemple une indentation dans le code :
<?php
//...
$modif = (isset($_SESSION['modif']))   ? $_SESSION['modif']  : 0 ;
$Tn    = (isset($_POST['message'] ))   ? $_POST['message']   : "";
$Ttn   = (isset($_POST['TitreNews'] )) ? $_POST['TitreNews'] : "";

if (isset($_GET['modifier_news']))
{
    $_SESSION['modif']=1;
}

if (($action=="Ajouter") && ($modif = 1))
{
    mysql_select_db ($database_Debaseconnect,$Debaseconnect); 
    $modifierNews = "UPDATE tnews ".
                    "SET TITnew = '". $Ttn ."' ,TEXnew='". $Tn ."' ".
                    "WHERE IDTn = 61";
    $Result8 = mysql_query($modifierNews, $Debaseconnect) or die(mysql_error()); 
    session_unset();
    header("Location: notesNews.php"); 
}
elseif (($action=="Ajouter") &&  ($modif = 0))
{  
    mysql_select_db ($database_Debaseconnect,$Debaseconnect); 
    $insertListe = "INSERT INTO `tnews` (`DATEn`, `TITnew`, `TEXnew`) ".
                   "VALUES ('". $date ."','". $TitreTexteNews ."','". $Textnews ."')"; 
    $Result6 = mysql_query($insertListe, $Debaseconnect) or die(mysql_error()); 
    header("Location: notesNews.php");
}
//...
?>
Bon, et là, qu'est qu'on voit : par exemple que tu commences par définir trois variables et ensuite seulement tu testes l'existence d'un paramètre d'url. Si ce paramètre existe, tu modifie une valeur de variable de session... oui, mais trop tard et ça ne sert à rien, les autres variables sont déjà initialisées et tu ne modifie plus après.

Donc, une petite modification s'impose :
<?php
//...
if (isset($_GET['modifier_news']))
{
    $_SESSION['modif'] = 1;
}

$modif = (isset($_SESSION['modif']))   ? $_SESSION['modif']  : 0 ;
$Tn    = (isset($_POST['message'] ))   ? $_POST['message']   : "";
$Ttn   = (isset($_POST['TitreNews'] )) ? $_POST['TitreNews'] : "";

if (($action=="Ajouter") && ($modif = 1))
{
    mysql_select_db ($database_Debaseconnect,$Debaseconnect); 
    $modifierNews = "UPDATE tnews ".
                    "SET TITnew = '". $Ttn ."' ,TEXnew='". $Tn ."' ".
                    "WHERE IDTn = 61";
    $Result8 = mysql_query($modifierNews, $Debaseconnect) or die(mysql_error()); 
    session_unset();
    header("Location: notesNews.php"); 
}
elseif (($action=="Ajouter") &&  ($modif = 0))
{  
    mysql_select_db ($database_Debaseconnect,$Debaseconnect); 
    $insertListe = "INSERT INTO `tnews` (`DATEn`, `TITnew`, `TEXnew`) ".
                   "VALUES ('". $date ."','". $TitreTexteNews ."','". $Textnews ."')"; 
    $Result6 = mysql_query($insertListe, $Debaseconnect) or die(mysql_error()); 
    header("Location: notesNews.php");
}
//...
?>
Corrige et refais les tests.

Posté : 01 nov. 2006, 17:58
par Ajoloca
Bonjour,

Je ne suis pas sur que ceci soit ce que tu souhaites faire
 if (($action=="Ajouter") && ($modif = 1)) 
et ceci non plus
elseif (($action=="Ajouter") &&  ($modif = 0))