probleme de code

Eléphant du PHP | 258 Messages

31 oct. 2006, 12:52

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.

Avatar du membre
ViPHP
ViPHP | 3008 Messages

31 oct. 2006, 13:09

$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");  
}

ViPHP
ViPHP | 3607 Messages

31 oct. 2006, 13:10

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 ?

Eléphant du PHP | 258 Messages

31 oct. 2006, 13:43

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.

Eléphant du PHP | 258 Messages

31 oct. 2006, 14:07

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

Eléphanteau du PHP | 38 Messages

31 oct. 2006, 14:08

Salut,
à tout hasard :
 mysql_query("UPDATE tnews SET TITnew='".$_POST['TitreNews']."' ,TEXnew='". $_POST['message']."' WHERE IDTn='". $_GET['modifier_news']."'");

Eléphant du PHP | 258 Messages

31 oct. 2006, 14:11

Marche pas sa me fait toujours pareil

Eléphanteau du PHP | 38 Messages

31 oct. 2006, 14:16

Il y a une raison pour laquelle tu fais un select_db dans le else et pas dans la première clause du if ?

Eléphant du PHP | 258 Messages

31 oct. 2006, 14:25

oui au depart je n'avait que la fonction qui se trouve dans le else et apres j'ai rajouter l'autre par dessus

Eléphanteau du PHP | 38 Messages

31 oct. 2006, 14:29

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");
	}
?> 

Eléphant du PHP | 258 Messages

31 oct. 2006, 14:44

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

Eléphant du PHP | 258 Messages

01 nov. 2006, 16:39

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 :?:

Eléphant du PHP | 258 Messages

01 nov. 2006, 17:30

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.

Mammouth du PHP | 19672 Messages

01 nov. 2006, 17:54

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.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

ViPHP
ViPHP | 1961 Messages

01 nov. 2006, 17:58

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)) 
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein