probleme de code

Mammouth du PHP | 19672 Messages

01 nov. 2006, 18:04

D'ailleur, ça m'a échappé mais il y a une erreur dans ces deux lignes qui devraient être :
if (($action=="Ajouter") && ($modif == 1))
et
elseif (($action=="Ajouter") &&  ($modif == 0))
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 258 Messages

01 nov. 2006, 18:33

Merci pour vos reponse mais sa marche encore moin sa ne m'update plus et sa ne m'ajoute pas non plus.

Cyrano je suis d'accord avec toi mais sa fais une semaine que je cherche et a la longue je supprime, je rajoute,je deplace, je fais que sa et mon code deviend de moin en moin ilisible,mais la je crois que je vais arrete et me mettre a la poterie. Le php sa me soul.

Merci de m'avoir aider

Mammouth du PHP | 19672 Messages

01 nov. 2006, 21:39

Alors prends une pause et relaxe.
La programmation dans n'importe quel langage, ça implique : rigueur, discipline et obstination. Quand un code ne produit pas le résultat attendu, c'est qu'une étape a été franchie de travers. Ça signifie qu'il y a eu relâchement dans la rigueur et c'est plus difficile de reprendre par la suite.

Mais il est également vrai que si on s'obstine sur un problème précis sans tenir compte de l'ensemble, on devient vite écoeuré. Chercher la source d'une erreur, ça veut dire suivre pas à pas le déroulement de l'exécution d'un code, mettre en place un système faisant afficher des messages d'erreur personnalisés ou non, par exemple à chaque if() doit correspondre un else(), à chaque appel de fonction, il faut un système de gestion d'erreur et il faut une configuration en mode développeur qui affiche tout y compris les plus insignifiantes notices : display_error = on et error_reporting = E_ALL
Il faut ensuite traiter toutes les erreurs l'une après l'autre sans en négliger aucune.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 258 Messages

02 nov. 2006, 13:47

Bon je me suis reposer et relaxer et je me suis remis au boulot.

J'ai commenté mon code j'ai separer pour que je vois mieux, je sais pour vous c'est fouilli mais pour moi, je vois mieux comme ca ,que comme le code de cyrano, je ne critique pas le code de cyrano loin de la mon ideé.

Bon enfin bref pour dire que j'ai presque reussi.
Et oui je peut ajouter mais news sa marche nickel sa me les affiche et tout et tout et je peut modifier les news(enfin la news) sa me remplace se que je veut et sa me l'affiche comme je veut.

La ou le bas blesse, c'est ou j'ai dis "la news" et oui en effet, dans ma requete SQL dans la clause where sa marche que quand on definie l'id(IDTn) de la news a modifier.

exemple:
$modifierNews="UPDATE tnews SET TITnew= '$Ttn' ,TEXnew='$Tn' WHERE IDTn =1";
La sa me modifie comme je veut, mais quand je mais sa:
$modifierNews="UPDATE tnews SET TITnew= '$Ttn' ,TEXnew='$Tn' WHERE IDTn=".$_GET['modifier_news'];
sa ne marche pas et sa m'affiche:

Notice: Undefined index: modifier_news in c:\program files\easyphp1-7\www\sitedebase\admin\notesnews.php on line 42
Erreur de syntaxe près de '' à la ligne 1

La ligne 42 c'est la ligne php que je viend de mettre.

Voila quelque bout de code.


//Sélection de la base de donnée pour affichage du texte 
mysql_select_db($database_Debaseconnect, $Debaseconnect);
$query_RTnews = "SELECT * FROM tnews ORDER BY IDTn DESC LIMIT 0,10";
$RTnews = mysql_query($query_RTnews, $Debaseconnect) or die(mysql_error());
$totalRows_RTnews = mysql_num_rows($RTnews);

//Definition des variable si nul
if (!isset($_POST['action2'])) $action2=""; else $action2 = $_POST['action2'];//variable pour le bouton previou

if (!isset($_POST['action'])) $action=""; else $action = $_POST['action'];//variable pour le bouton ajout

if (!isset($_POST['message'] )) $Tn=""; else $Tn=$_POST['message'];//variable pour le texte de la news

if (!isset($_POST['TitreNews'] )) $Ttn=""; else $Ttn=$_POST['TitreNews'];//variable pour le titre de la news

if (!isset($_SESSION['modif'] )) $modif=0 ; else $modif= $_SESSION['modif'];//variable de session si on ne modifi pas


//Enregistrement dans session pour sa voir si on modifi
if (isset($_GET['modifier_news']))
{
$_SESSION['modif']=1;
}


//Ajout ou modifiquation de news
if (($action=="Ajouter") && ($modif == 1)) //Si le bouton ajouter et que la valeur de la session et 1 on modifier
{
$modifierNews="UPDATE tnews SET TITnew= '$Ttn' ,TEXnew='$Tn' WHERE IDTn=".$_GET['modifier_news'];//Mise a jour du texte et du titre
$Result8 = mysql_query($modifierNews, $Debaseconnect) or die(mysql_error()); 
session_unset();
header("Location: notesNews.php"); 
}
elseif (($action=="Ajouter") &&  ($modif == 0))//Si le bouton ajouter et que la valeur de la session et 0 on ajoute
 {
$insertListe = "INSERT INTO tnews (DATEn,TITnew,TEXnew) VALUES ('$date','$TitreTexteNews','$Textnews')";//inserer la date, le titre et le texte
$Result6 = mysql_query($insertListe, $Debaseconnect) or die(mysql_error()); 
header("Location: notesNews.php");
 }

Et voici comment j'envois mon formulaire.
<form action="notesNews.php" method="post" name="formSuppnews" >
            <table width="617" border="1" cellspacing="0" cellpadding="0">
              <?php while ($row_RTnews = mysql_fetch_assoc($RTnews))  {?>
              <tr>
                  <td width="159" height="26" bgcolor="#FFFFFF"><div align="center"><input name="IDTn" type="hidden" id="IDTn" value="<?php  echo $IDTn ; ?>">
                    <?php $DATEn = $row_RTnews['DATEn'];  echo $DATEn; ?></div></td>
                  <td width="347" bgcolor="#FFFFFF"><?php $TITnew=$row_RTnews['TITnew']; echo $TITnew; ?></td>
                  <td width="51" bgcolor="#FFFFFF"><div align="center">
				  <?php echo '<a href="notesNews.php?modifier_news=' . $row_RTnews['IDTn'] . '">'; ?>Modif.</a>
                  </div></td>
                  <td width="50" bgcolor="#FFFFFF"><div align="center">
                      <?php echo '<a href="notesNews.php?supprimer_news=' . $row_RTnews['IDTn'] . '">'; ?>Supp.</a> </div></td>
              </tr>
              <?php }  ?>
            </table>
          </form>

Voila en esperant que sa pourra vous aidé a m'aider

Merci

Eléphant du PHP | 258 Messages

02 nov. 2006, 19:06

Bon j'avance a petits pas.

Donc j'ai rajoute dans mes initialisations de variables ceci :
if (!isset($_GET['modifier_news'])) $mn="" ; else $mn = $_GET['modifier_news'];
Pour avoir un simple variable, et biensur j'ai verifie si elle transmettait bien les information, c'est a dire l'id (IDTn) de la news a modifier , que je voulait est elle les transmet bien.

Apres j'ai rectifier mon update car je c'est au je suppose tres fortement que l'erreur peut venir que de la.

Voici ma requette modifier:
$modifierNews='UPDATE tnews SET TITnew= "$Ttn" ,TEXnew= "$Textnews" WHERE IDTn= $mn' ;
et ce coup si il m'affiche :

Champ '$mn' inconnu dans where clause.


Quelqun aurait une idée.

ViPHP
ViPHP | 1961 Messages

02 nov. 2006, 19:16

Bonjour,

C'est un PB avec les (') et les (")
essaie ceci
$modifierNews="UPDATE tnews SET TITnew= '$Ttn' ,TEXnew= '$Textnews' WHERE IDTn= $mn";
ou encore mieux, ceci
$modifierNews="UPDATE tnews SET TITnew= '" . $Ttn . "' ,TEXnew= '" . $Textnews . "' WHERE IDTn= " . $mn;
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

Eléphant du PHP | 258 Messages

02 nov. 2006, 19:56

il me met:

Erreur de syntaxe près de '' à la ligne 1

Il me semblait avoir deja essayé

ViPHP
ViPHP | 1961 Messages

02 nov. 2006, 19:58

Re,

Fait un echo de ta variable '$modifierNews' voir comment elle est la requète.
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

Eléphant du PHP | 258 Messages

02 nov. 2006, 20:18

Je n'ai pas de variable '$modifierNews' mais je pense que tu parle de la variable '$mn', ci c'est d'elle que tu parle elle affiche bien l'id que je veut.

Exemple:

Quand je clic sur une news qui porte l'id(IDTN) 15 sa m'affiche donc sa m'envoyer 15, si la news a l'id 20 sa m'affiche 20 etc...

ViPHP
ViPHP | 1961 Messages

02 nov. 2006, 20:22

Re,
Si je regarde ça
$modifierNews="UPDATE tnews SET TITnew= '" . $Ttn . "' ,TEXnew= '" . $Textnews . "' WHERE IDTn= " . $mn;
Je vois que la requète est contenue dans la variable '$modifierNews'

Je te demande de l'afficher avant l'exécution pour voir exactement ce qui est envoyé à MySQL
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

Eléphant du PHP | 258 Messages

02 nov. 2006, 21:13

Autant pour moi je l'avait oublié celle la ci j'ai bien fait se que tu ma dis voilas se que sa donne.

UPDATE tnews SET TITnew= 'un autre2 ' ,TEXnew= 'pas de propleme' WHERE IDTn= Erreur de syntaxe près de '' à la ligne 1


'un autre2' et 'pas de propleme' etant le texte que j'ai entré, a modifier.

Je m'excuse encore.

Edit: je crois que sa viend du faite de ca
if (!isset($_GET['modifier_news'])) $mn="" ; else $mn = $_GET['modifier_news'];
j'ai remplacer les"" par 0 et sa ne m'affiche plus cette erreur par contre je n'arrive plus a afficher la variable $modifierNews

Sa ne me modifie toujours pas.

ViPHP
ViPHP | 1961 Messages

02 nov. 2006, 21:24

Re,

Comme tu le constates, il n'y-a pas de valeur après le dernier signe =. Ce qui signifie que la variable '$mn' est vide. (vide different de 0).

Si je suis le sens de ta requète '$mn' devrait être numérique mais elle ne contient pas de valeur ce qui conduit à une requète incomplète.

Pour t'en assurer mets ce bout de code avant la construction de la requète
if(!isset($mn)){
   echo 'La variable $mn n\'est pas déclarée';
   exit();
}
if(empty($mn)){
   echo 'La variable $mn est vide';
   exit();
}
ensuite après la construction et avant l'exécution celui ci
echo 'Contenu de la requète : <br />' . $modifierNews;
exit();
Une fois que tu auras vu la requète tu enleveras ces lignes.
Modifié en dernier par Ajoloca le 02 nov. 2006, 21:28, modifié 1 fois.
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

Eléphant du PHP | 258 Messages

02 nov. 2006, 21:27

Sa y est j'ai reussi a afficher la variable $modifierNews et sa maffiche ca :
UPDATE tnews SET TITnew= '' ,TEXnew= ' ' WHERE IDTn= 21 
21 etant l'id de la news selectionner.

par contre je n'est plus le texte ou le titre.

Eléphant du PHP | 258 Messages

02 nov. 2006, 21:31

Je viend de voir ton message tu la mis pendant que j'ecriver le mien et non la variable $mn me met bien se qui faut par contre c'est les 2 autres qui ne vont pas.

Question:

meme si il y a rien qui remplace le titre et le texte sa devrait modifier ma news quand meme non?

ViPHP
ViPHP | 1961 Messages

02 nov. 2006, 21:31

Re,

Ton PB vient d'une condition (if).

Poste ton code dans l'état actuel et on vera bien.
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