probleme varaible et mysql

Eléphant du PHP | 71 Messages

25 janv. 2006, 13:48

salut !

Voilà je suis entrain de faire un script de mémo. Bon jusque là totu vas bien. Mon script foncitonne, mais j'ai un petit souci avec la page modifier.
Ma méthode est que je fais passer en url l'id du message à modifier et ensuite j'accede à la page modifier dont le code ci-dessous :
<?php
session_start();
if (!isset($_SESSION['membre_login'])) {
    header ('Location: /logiciel/index.php');
    exit();
}
?>
<?php
// on inclus les valeurs de configurations
include("fichier_config/config.php");
?>
<html>
<head>
<title></title>
<LINK REL=stylesheet TYPE="text/css" HREF="css.css">
</head>
<body bgcolor="<?php echo("$color_fond_page"); ?>">
<h3><p><center>Modification de la note</center></p></h3>
<?

if(isset($_POST['mem_titre']) && !empty($_POST['mem_titre']) && isset($_POST['mem_contenu']) && !empty($_POST['mem_contenu']))
{

	$db_link=mysql_connect('localhost','root','');
	$mem_id = isset($_GET['mem_id']) ? $_GET['mem_id'] : null; 

	$mem_titre=addslashes(htmlspecialchars($_POST['mem_titre']));
	$mem_contenu=addslashes(htmlspecialchars($_POST['mem_contenu']));

	// Récupération de la date de modification
	$date = date("Y-m-d H:i:s");
	$requete=mysql_db_query("gestion","update gestion_memo set mem_titre='$mem_titre',mem_contenu='$mem_contenu', date_note='$date' where mem_id='$mem_id'",$db_link);
	echo "<h3 align=center>Mise à jour correctement effectuée<br><br><a href='index.php'>Retour</a>";

}
else{
	$db_link=mysql_connect('localhost','root','');
	$result=mysql_db_query("gestion","select * from gestion_memo where mem_id=$mem_id",$db_link);
	$number = MYSQL_NUM_ROWS($result);
	$mem_id = isset($_GET['mem_id']) ? $_GET['mem_id'] : null; 

	$mem_titre=mysql_result($result,$i,"mem_titre");
	$mem_contenu=mysql_result($result,$i,"mem_contenu");
echo "<hr width='50%'>";
echo "<center><blockquote><table border=0><form method='get' action='modifier.php'><input type='hidden' name=modifier value=2><input type='hidden' name=mem_id value='$mem_id'>
  <div align='center'>
    <table bgcolor='$font_color_cadreformu' width='$width_formulaire'>
      <tr>
        <td><font color='$color_police_formu' size='1' face='$style_police_formu'>Titre :</font></td>
        <td> <input type='text' name='mem_titre' maxlength='30' size='50' value='$mem_titre'> 
        </td>
      </tr>
      <tr>
        <td><font color='$color_police_formu' size='1' face='$style_police_formu'>Note :</font> </td>
        <td> <textarea name='mem_contenu' cols='40' rows='5'>$mem_contenu</textarea> 
        </td>
      </tr>
      </table>
  </div>";

echo "<table align='center'><tr><td><input type='submit' value='Modifier'></td></form><td><form method=get action='index.php'><input type=submit value='Annuler'></td></form></table>";
}

$result=mysql_close($db_link);
?>
</body>
</html>
Mais le problème c'est qu'il me renvoi cela :

Notice: Undefined variable: mem_id in c:\scripts\logiciel\memo\modifier.php on line 38

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\scripts\logiciel\memo\modifier.php on line 39

Notice: Undefined variable: i in c:\scripts\logiciel\memo\modifier.php on line 41

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in c:\scripts\logiciel\memo\modifier.php on line 41

Notice: Undefined variable: i in c:\scripts\logiciel\memo\modifier.php on line 42

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in c:\scripts\logiciel\memo\modifier.php on line 42


Je ne comprend pas car mem_id il esy bien définit c'est le paramètre passé en url et il est présent aussi dans ma base de donné donc la je sèche. Merci

Eléphant du PHP | 440 Messages

25 janv. 2006, 14:40

hello ,

tu peux nous donner les lignes 41 et 42 stp ?
C'est en faisant des erreurs et en osant demander de l'aide qu'on apprend ! Il n'est pas ridicule de ne pas savoir !

Eléphant du PHP | 71 Messages

25 janv. 2006, 14:58

Non mais apparament mon code est à chier.
Pourriez-vous me donner la technique . Voilà en faite je désire faire une page modifier. Qui m'afficherait le message à modifier et si on fait une midif et on valide sur envoyer par exemple la les données seront modifieées.

J'ai déjà fais un lien qui permet d'envoyer par url id du message à modifier :

<a href='modifier.php?mem_id=".$data['mem_id']."'>cela renvoi bien l'id de message à modifer maintenant je voudrais c'est afficher ce message dans la page modifier et pouvoir le modifier merci..

Eléphant du PHP | 71 Messages

25 janv. 2006, 15:25

Voici actuellement tout ce ue j'ai fait :

page index (princiale là ou l'on affiche le memo) :
<?php
session_start();
if (!isset($_SESSION['membre_login'])) {
    header ('Location: /logiciel/index.php');
    exit();
}
?>
<?php
include ("fichier_config/config.php");
?>
<?php 
if (isset($_POST['go']) && $_POST['go']=='Ajouter votre note') {
    
    if ((isset($_POST['mem_titre'])) && (isset($_POST['mem_contenu']))) {
        // si les 3 variables ne sont pas vides, et si l'adresse E-mail est valide, alors, et seulement dans ce cas, on fera notre insertion dans la base
        if ((!empty($_POST['mem_titre'])) && (!empty($_POST['mem_contenu']))) {
                // on se connecte à notre base 
                $base = mysql_connect ('localhost', 'root', '');  
                mysql_select_db ('gestion', $base);  

                // on prepare notre requête d'insertion des données
                $sql = 'INSERT INTO gestion_memo VALUES("", "'.addslashes($_POST['mem_titre']).'", "'.addslashes($_POST['mem_contenu']).'", "'.date("Y-m-d H:i:s").'", "'.addslashes($_SESSION['membre_id']).'")';

                // on lance la requête
                mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());

                // on ferme la connection à la base de données
                mysql_close();

                // on redirige le visiteur vers l'accueil du livre d'or
                header('location: index.php');

                // on termine le scrit courant
                exit();
        }
        else {
            $erreur = 'Au moins un des champs est vide.';
        }
    }
    else {
        $erreur = 'Les variables nécessaires au script ne sont pas définies.';
    }
}
// on entre dans le cas où l'un des trois (au moins) champs n'a pas été rempli ou si l'adresse E-mail n'a pas été validée (en particulier, lorsque le visiteur charge pour la première fois cette page, vu que les 3 champs sont vides, le formulaire s'affichera). On remarque également que l'on met la valeur de chaque champs dans le value (c'est cela qui fait que si le visiteur ne remplit pas entièrement le formulaire et qu'il clique sur "Signer", et bien lorsqu'il sera redirigé vers le formulaire, ce qu'il aura déjà saisi sera conservé
?> 
<html>
<head>
<title>Index de notre livre d'or</title>
<LINK REL=stylesheet TYPE="text/css" HREF="css.css">
<SCRIPT language="JavaScript" type="text/javascript">
  <!--
    //Saisie d'un memo
    function saisieOK(theForm) {
	if (theForm.mem_titre.value == "" && theForm.mem_contenu.value == "") {
        window.alert("Veuillez remplir : le champ titre et contenu pour la note");
        theForm.mem_titre.focus();
        return (false);
      }
      if (theForm.mem_titre.value == "") {
        window.alert("Veuillez saisir un titre pour la note");
        theForm.mem_titre.focus();
        return (false);
      }
      if (theForm.mem_contenu.value == "") {
        window.alert("Veuillez saisir le contenu à insérer dans la note");
        theForm.mem_contenu.focus();
        return (false);
      }

      theForm.submit();
      return (true);
    }
  //-->
  </SCRIPT>

</head>

<body bgcolor="<?php echo("$color_fond_page"); ?>">
	<p><center>
    	<font color="<?php echo("$color_titre"); ?>" size="<?php echo("$taille_titre"); ?>" face="<?php echo("$style_titre"); ?>"><?php echo("$titre_livre"); ?></font>
	</center></p>
<form action="index.php" method="post" name="post">
  <div align="center">
    <table bgcolor="<?php echo("$font_color_cadreformu"); ?>" width="<?php echo("$width_formulaire"); ?>">
      <tr>
        <td><font color="<?php echo("$color_police_formu"); ?>" size="1" face="<?php echo("$style_police_formu"); ?>">Titre :</font></td>
        <td> <input type="text" name="mem_titre" maxlength="100" size="50" value="<?php if (isset($_POST['mem_titre'])) echo stripslashes(htmlentities(trim($_POST['mem_titre']))); ?>"> 
        </td>
      </tr>
      <tr>
        <td><font color="<?php echo("$color_police_formu"); ?>" size="1" face="<?php echo("$style_police_formu"); ?>">Note :</font> </td>
        <td> <textarea name="mem_contenu" cols="40" rows="5"><?php if (isset($_POST['mem_contenu'])) echo stripslashes(htmlentities(trim($_POST['mem_contenu']))); ?></textarea> 
        </td>
      </tr>
      <tr>
        <td>
        <td align="middle"> <input type="submit" name="go" value="Ajouter votre note" style="text-decoration: none; border-left-width: 1px; border-left-color: #666666; border-right-color: #666666; border-right-width: 1px; border-top-color: #666666;  border-top-width: 1px; background-color: #f4f4f4 ;border-bottom-color: #666666;border-bottom-width: 1px;" onClick="javascript: return saisieOK(document.post);"> </td>
      </tr>
    </table>
  </div>
</form>

<div align="center">
<hr width="300">
<?php
if (isset($erreur)) echo '<br /><br />',$erreur;
?>
<br/>
<br/>

<?php 
// Gestion pour afficher le livre en plusieurs pages
 $sql  = "SELECT mem_id FROM gestion_memo WHERE membre_id = ".$_SESSION['membre_id']." ";
 $resultat = mysql_db_query($bdd, $sql);
 if(empty($debut)) $debut = 0;
 $nb_total=mysql_num_rows($resultat);  // Nbr de messages présents dans le memo

// Requête pour l'affichage des messages 
$sql = "SELECT mem_titre, date_note, mem_contenu, mem_id FROM gestion_memo WHERE membre_id = ".$_SESSION['membre_id']." ORDER BY date_note DESC LIMIT $debut, $limit"; 
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$nb_signature = mysql_num_rows($req); // Affiche le nombre de message  sert dans la condition si
$nbenr = mysql_num_rows($req); //sert au découpage des pages

//facultatif
	    if ($nb_total > $limit)
    {
        $barre_nav .= barre_navigation($nb_total, $nbenr, $limit, $debut, 10,$keyword);
    }
	//$debut = (debut/2);
	//echo $debut;
/////////////////
if ($nb_signature == 0) { // Si l'on a zero message
    echo 'Aucun mémo enregistré dans la base de données.';
}
elseif($nb_signature==1){ // Si on a seulement un mesage

echo"
<table border='0' width=\"$width_cadreentete\" cellpadding='2'>
<tr>
<td bgcolor=\"$font_color_cadreentete\" width=\"$width_cadreentete1\"><b><font face=\"$style_police_entete\" size=\"$taille_police_entete\" color=\"$color_police_entete\">Messages :</font><font face=\"$style_police_entete\" size=\"$taille_police_entete\" color=\"$color_police_entete\"> ". ($debut + 1) ."</font><font face=\"$style_police_entete\" size=\"$taille_police_entete\" color=\"$color_police_entete\"> à </font><font face=\"$style_police_entete\" size=\"$taille_police_entete\" color=\"$color_police_entete\">". ($debut + $nbenr) ."</font></b></td>
<td bgcolor=\"$font_color_cadreentete\" width=\"$width_cadreentete2\">
  <p align='center'><b><font face=\"$style_police_entete\" size=\"$taille_police_entete\" color=\"$color_police_entete\">Note</font> <font face=\"$style_police_entete\" size=\"$taille_police_entete\" color=\"$color_police_entete\"></font></b></td>
 </center>
 <td bgcolor=\"$font_color_cadreentete\" width=\"$width_cadreentete3\">
<p align='right'><b><font face=\"$style_police_entete\" size=\"$taille_police_entete\" color=\"$color_police_entete\">Nombre de messages :</font><font face=\"$style_police_entete\" size=\"$taille_police_entete\" color=\"$color_police_entete\"> $nb_total </font></b></td>
  </tr>
  </table>";
    while ($data = mysql_fetch_array($req)) {
	        $chaine_texte = $data["mem_contenu"];
            $chaine_texte = stripslashes(nl2br(htmlspecialchars($chaine_texte)));
			
			
	sscanf($data['date_note'], "%4s-%2s-%2s %2s:%2s:%2s", $annee, $mois, $jour, $heure, $minute, $seconde); 
	echo "<table cellspacing='0' cellpadding='4' width=\"$width_cadremess\" bgcolor=\"$font_color_cadremess\">
	<tr>
  		<td>
 	<table border='0' cellspacing='0' cellpadding='0'>
	<tr>
		<td colspan='2'><b><font face=\"$style_police_mess\" size=\"$taille_police_mess\" color=\"$color_police_mess\">";
echo stripslashes(htmlentities(trim($data['mem_titre'])));
echo '</td>';
echo "<td align='right'>
  			<p>
  				<font face=\"$style_police_date\" size=\"$taille_police_date\" color=\"$color_police_date\">le $jour/$mois/$annee à $heure:$minute <br /></font></p>
		</td></tr><tr><td colspan='3' width='%100'><hr size='1' noshade='noshade' color='#CCCCCC'></td></tr>";
echo "
 	
	<tr>
		<td colspan='2' width='75%'><font face=\"$style_police_mess\" size=\"$taille_police_mess\" color=\"$color_police_mess\">";
			//echo nl2br(stripslashes(htmlentities(trim($data['mem_contenu']))));
			echo souriez($chaine_texte);
echo'</font>
		</td>';
	echo"<td align='right' width='250'>
<br><a href='modifier.php?mem_id=".$data['mem_id']."'><img src='icones/write.png' align='middle' title='Modifier la note' alt='modifier' style='border-width: 0px;'></a>
<a href='supprimer.php?mem_id=".$data['mem_id']."'><img src='icones/delete.png' align='middle' title='Supprimer la note' alt='Supprimer' style='border-width: 0px;'></a><br>
	</td>
	</tr>
	</table>
		</td>
			<br>";
    } 
}
else{ // Si on à plus de un message
echo"
<table border='0' width=\"$width_cadreentete\" cellpadding='2'>
<tr>
<td bgcolor=\"$font_color_cadreentete\" width=\"$width_cadreentete1\"><b><font face=\"$style_police_entete\" size=\"$taille_police_entete\" color=\"$color_police_entete\">Messages :</font><font face=\"$style_police_entete\" size=\"$taille_police_entete\" color=\"$color_police_entete\"> ". ($debut + 1) ."</font><font face=\"$style_police_entete\" size=\"$taille_police_entete\" color=\"$color_police_entete\"> à </font><font face=\"$style_police_entete\" size=\"$taille_police_entete\" color=\"$color_police_entete\">". ($debut + $nbenr) ."</font></b></td>
<td bgcolor=\"$font_color_cadreentete\" width=\"$width_cadreentete2\">
  <p align='center'><b><font face=\"$style_police_entete\" size=\"$taille_police_entete\" color=\"$color_police_entete\">Notes</font> <font face=\"$style_police_entete\" size=\"$taille_police_entete\" color=\"$color_police_entete\"></font></b></td>
 </center>
 <td bgcolor=\"$font_color_cadreentete\" width=\"$width_cadreentete3\">
<p align='right'><b><font face=\"$style_police_entete\" size=\"$taille_police_entete\" color=\"$color_police_entete\">Nombre de messages :</font><font face=\"$style_police_entete\" size=\"$taille_police_entete\" color=\"$color_police_entete\"> $nb_total </font></b></td>
  </tr>
  </table>";
    while ($data = mysql_fetch_array($req)) {
	        $chaine_texte = $data["mem_contenu"];
            $chaine_texte = stripslashes(nl2br(htmlspecialchars($chaine_texte)));
			
			
	sscanf($data['date_note'], "%4s-%2s-%2s %2s:%2s:%2s", $annee, $mois, $jour, $heure, $minute, $seconde); 
	echo "<table cellspacing='0' cellpadding='4' width=\"$width_cadremess\" bgcolor=\"$font_color_cadremess\">
	<tr>
  		<td>
 	<table border='0' cellspacing='0' cellpadding='0'>
	<tr>
		<td colspan='2'><b><font face=\"$style_police_mess\" size=\"$taille_police_mess\" color=\"$color_police_mess\">";
echo stripslashes(htmlentities(trim($data['mem_titre'])));
echo '</td>';
echo "<td align='right'>
  			<p>
  				<font face=\"$style_police_date\" size=\"$taille_police_date\" color=\"$color_police_date\">le $jour/$mois/$annee à $heure:$minute <br /></font></p>
		</td></tr><tr><td colspan='3' width='%100'><hr size='1' noshade='noshade' color='#CCCCCC'></td></tr>";
echo "
 	
	<tr>
		<td colspan='2' width='75%'><font face=\"$style_police_mess\" size=\"$taille_police_mess\" color=\"$color_police_mess\">";
			//echo nl2br(stripslashes(htmlentities(trim($data['mem_contenu']))));
			echo souriez($chaine_texte);
echo'</font>
		</td>';
	echo"<td align='right' width='250'>
<br><a href='modifier.php?mem_id=".$data['mem_id']."'><img src='icones/write.png' align='middle' title='Modifier la note' alt='modifier' style='border-width: 0px;'></a>
<a href='supprimer.php?mem_id=".$data['mem_id']."'><img src='icones/delete.png' align='middle' title='Supprimer la note' alt='Supprimer' style='border-width: 0px;'></a><br>
	</td>
	</tr>
	</table>
		</td>
			<br>";
    } 
}
 
echo '	</tr>
		</table>';
?>
<?
  $keyword = "?nav=1"; // nav=1 ne sert à rien, c'est uniquement pour l'obligation de passer un parametre

     // plage de réponses
    $barre_nav  = '<TABLE BORDER="0" align=center CELLPADDING=3 CELLSPACING=1>';
    $barre_nav .= '<TR><TD ALIGN="left">';

    // barre de navigation
    $barre_nav .= "<TD ALIGN='right'>";
    if ($nb_total > $limit)
    {
        $barre_nav .= barre_navigation($nb_total, $nbenr, $limit, $debut, 10,$keyword);
    }
    $barre_nav .= "&nbsp;</TD>";

    $barre_nav .= "</TR></TABLE>\n";

    // affichage de la barre de navigation
    echo $barre_nav;
// on libère l'espace mémoire alloué pour cette requête 
mysql_free_result ($req); 
// on ferme la connection à la base de données. 
mysql_close (); 
?>
<center><a href="/logiciel/membre.php">Retour</a></center>
</div>
</body>
</html>
Pages modifier celle ou je veux modifier le message :
<?php
session_start();
if (!isset($_SESSION['membre_login'])) {
    header ('Location: /logiciel/index.php');
    exit();
}
?>
<?php
// on inclus les valeurs de configurations
include("fichier_config/config.php");
?>
<html>
<head>
<title></title>
<LINK REL=stylesheet TYPE="text/css" HREF="css.css">
</head>
<body bgcolor="<?php echo("$color_fond_page"); ?>">
<h3><p><center>Modification du répertoire téléphonique</center></p></h3>
<?

/*_____________________CONNEXION__________________________*/

$db_link=mysql_connect('localhost','root','');

/* _________________RECUP_DES_DONNEES____________________ */

  while (list($var, $value) = each($HTTP_GET_VARS))
    {
      $tab_asso["$var"] = $value;
    }

switch ($tab_asso['modifier']){

case 2;
$requete=mysql_db_query("gestion","update gestion_memo set mem_titre='$mem_titre',mem_contenu='$mem_contenu', mem_id=$agenda_id",$db_link);
echo "<h1 align=center>Mise à jour effectuée<br><br><a href='index.php'>Retour</a>";
break;

default;
$result=mysql_db_query("gestion","select * from gestion_memo where mem_id=$mem_id",$db_link);
$number = MYSQL_NUM_ROWS($result);

	$mem_titre=mysql_result($result,$i,"mem_titre");
	$mem_contenu=mysql_result($result,$i,"mem_contenu");
	
echo "<hr width='50%'>";
echo "<center><blockquote><table border=0><form method='get' action='modifier.php'><input type='hidden' name=modifier value=2><input type='hidden' name=mem_id value='$mem_id'>
  <div align='center'>
    <table bgcolor='$font_color_cadreformu' width='$width_formulaire'>
      <tr>
        <td><font color='$color_police_formu' size='1' face='$style_police_formu'>Titre :</font></td>
        <td> <input type='text' name='mem_titre' maxlength='30' size='50' value='$mem_titre'> 
        </td>
      </tr>
      <tr>
        <td><font color='$color_police_formu' size='1' face='$style_police_formu'>Note :</font> </td>
        <td> <textarea name='mem_contenu' cols='40' rows='5'>$mem_contenu</textarea> 
        </td>
      </tr>
      </table>
  </div>";
echo "<table align='center'><tr><td><input type='submit' value='modifier'></td></form><td><form method=get action='index.php'><input type=submit value='Annuler'></td></form></table>";
break; }

$result=mysql_close($db_link);
?>
</body>
</html>
Et la page supprimer pour supprimer un message :
<?php
session_start();
if (!isset($_SESSION['membre_login'])) {
    header ('Location: /logiciel/index.php');
    exit();
}
?>
<?php
include ("fichier_config/config.php");
?>
<html>
<title></title>
<head>
<LINK REL=stylesheet TYPE="text/css" HREF="css.css">
</head>
<body bgcolor="<?php echo("$color_fond_page"); ?>">


<?php 
// on inclus les valeurs de configurations

// Connexion à la base de données
$db_link=mysql_connect('localhost','root','');
mysql_select_db ('gestion', $db_link); 

while (list($var, $value) = each($HTTP_GET_VARS))
    {
      $tab_asso["$var"] = $value;
    }

$mem_id = isset($_GET['mem_id']) ? $_GET['mem_id'] : null; 

if ($oui==1){
// on prépare une requête SQL permettant de supprimer le message tout en vérifiant qu'il appartient bien au membre qui essaye de le supp 
    $sql = 'DELETE FROM gestion_memo WHERE mem_id = '. $mem_id .';'; 
    // on lance cette requête SQL 
    $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
    mysql_close(); 
    echo "<h4 align=center>Enregistrement effacé<br><br><a href='index.php'>Retour</a>";
    exit();
}
else
{
// EFFACE SI ID=X AU CHARGEMENT
echo "<h3 align=center>Voulez-vous effacer définitivement l'enregistrement suivant ? </h3>";
$result = MYSQL_db_QUERY("gestion","select * from gestion_memo where mem_id='$mem_id'",$db_link);
$number = MYSQL_NUM_ROWS($result);

	$mem_id=mysql_result($result,0,"mem_id");
	$mem_titre=mysql_result($result,0,"mem_titre");
	$date_note=mysql_result($result,0,"date_note");
	$mem_contenu=mysql_result($result,0,"mem_contenu");

	sscanf($date_note, "%4s-%2s-%2s %2s:%2s:%2s", $annee, $mois, $jour, $heure, $minute, $seconde); 
	echo "<center><table cellspacing='0' cellpadding='4' width=\"$width_cadremess\" bgcolor=\"$font_color_cadremess\">
	<tr>
  		<td>
 	<table border='0' cellspacing='0' cellpadding='0'>
	<tr>
		<td width='250'><b><font face=\"$style_police_mess\" size=\"$taille_police_mess\" color=\"$color_police_mess\">";
echo stripslashes(htmlentities(trim($mem_titre)));
echo '<td>';
echo "	<td width='250' align='right'>
  			<p>
  				<font face=\"$style_police_date\" size=\"$taille_police_date\" color=\"$color_police_date\">le $jour/$mois/$annee à $heure:$minute <br /></font></p>
		</td>";
echo "
 	</tr>
	<tr>
		<td colspan='2'><font face=\"$style_police_mess\" size=\"$taille_police_mess\" color=\"$color_police_mess\">";


			echo nl2br(stripslashes(htmlentities(trim($mem_contenu))));
			
echo'</font>
		</td>
	</tr>
	</table>
		</td>
			<br>';

echo '	</tr>
		</table></center>';
echo "<br><p align=center><a href='supprimer.php?mem_id=$mem_id&oui=1'>OUI</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href='index.php'>NON</a></p>";
}
?>
</body>
</html>
Le problème vient sur les pages modifier et supprimer avant avec la version 1.6 de easyphp ca fonctionner mais plus maintenant que je suis pass en 1.8.

Avez vous une autre facon de codé ces deux page cela serait vraiment sympa.

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

25 janv. 2006, 19:39

je ne vois absolument pas ce que tu veux avec tout ce code... :shock:

Mais les messages d'erreurs du 1er post concernent ces lignes ni plus ni moins:
$result=mysql_db_query("gestion","select * from gestion_memo where mem_id=$mem_id",$db_link);
$number = MYSQL_NUM_ROWS($result);
$mem_id = isset($_GET['mem_id']) ? $_GET['mem_id'] : null;

$mem_titre=mysql_result($result,$i,"mem_titre");
$mem_contenu=mysql_result($result,$i,"mem_contenu"); 
donc 1er message
Notice: Undefined variable: mem_id in c:\scripts\logiciel\memo\modifier.php on line 38
la variable $mem_id n'existe pas a ce niveau du code !!

par contre tu la récupère 2 lignes en dessous... tu peux donc remonter le tet d'existence de la variable tout en haut du script (apres session_start(); tout de même :wink: )

Ceci effectué tu régleras aussi les erreurs 2,4 et 6 8)

autre message d'erreur:
Notice: Undefined variable: i in c:\scripts\logiciel\memo\modifier.php on line 41
La variable $i n'existe pas !! (ou n'est pas initialisé)

d'ailleurs tu n'en as pas besoin puisque tu ne boucles pas sur le résultat. Remplace donc de $i par 0:
$mem_titre=mysql_result($result,0,"mem_titre"); 
de même pour la ligne dessous

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 71 Messages

26 janv. 2006, 10:49

ok merci j'ai déjà résolu une erreur il m'en reste deux :

Warning: mysql_result(): Unable to jump to row 1 on MySQL result index 4 in c:\scripts\logiciel\memo\modifier.php on line 54

Warning: mysql_result(): Unable to jump to row 1 on MySQL result index 4 in c:\scripts\logiciel\memo\modifier.php on line 55


Que veut dire "unable to jump"

Voici la partie du code en faute
<?php
session_start();
if (!isset($_SESSION['membre_login'])) {
    header ('Location: /logiciel/index.php');
    exit();
}
?>
<?php
// on inclus les valeurs de configurations
include("fichier_config/config.php");
?>
<html>
<head>
<title></title>
<LINK REL=stylesheet TYPE="text/css" HREF="css.css">
</head>
<body bgcolor="<?php echo("$color_fond_page"); ?>">
<h3><p><center>Modification de la note</center></p></h3>
<?php

/*_____________________CONNEXION__________________________*/

$db_link=mysql_connect('localhost','root','');
mysql_select_db('gestion',$db_link);
$mem_id = isset($_GET['mem_id']) ? $_GET['mem_id'] : null; 


if(isset($_POST['go']) && $_POST['go']=='modifier'){

	if((isset($_POST['mem_titre'])) && (isset($_POST['mem_contenu']))){

		if((!empty($_POST['mem_titre'])) && (!empty($_POST['mem_contenu']))){

			// Récupération de la date de modification
			$date = date("Y-m-d H:i:s");
			$sql='UPDATE gestion_memo SET mem_titre = "'.$_POST['mem_titre'].'", mem_contenu = "'.$_POST['mem_contenu'].'", date_note="$date" WHERE mem_id = "'.$_POST['mem_id'].'"';
			mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
			mysql_close();
			echo "<h3 align=center>Mise à jour correctement effectuée<br><br><a href='index.php'>Retour</a>";
		}
		else{
			echo'Une des variable est vide';
		}
	}
	else{
		echo'les variables necessaires ne sont pas définies';
	}
}
else{
$mem_id = isset($_GET['mem_id']) ? $_GET['mem_id'] : null; 
$result=mysql_db_query("gestion","select * from gestion_memo where mem_id='$mem_id'");
//$number = MYSQL_NUM_ROWS($result);

	$mem_titre=mysql_result($result,0,"mem_titre");
	$mem_contenu=mysql_result($result,0,"mem_contenu");
    //while ($data = mysql_fetch_array($result)) {

$titre = $data['mem_titre'];
$contenu = $data['mem_contenu'];
		
echo "<hr width='50%'>";
echo "<center><table border=0><form method='POST' action='modifier.php'>
<input type='hidden' name='mem_id' value='$mem_id'>
  <div align='center'>
    <table bgcolor='$font_color_cadreformu' width='$width_formulaire'>
      <tr>
        <td><font color='$color_police_formu' size='1' face='$style_police_formu'>Titre :</font></td>
        <td> <input type='text' name='mem_titre' maxlength='30' size='50' value='$titre'> 
        </td>
      </tr>
      <tr>
        <td><font color='$color_police_formu' size='1' face='$style_police_formu'>Note :</font> </td>
        <td> <textarea name='mem_contenu' cols='40' rows='5'>$contenu</textarea> 
        </td>
      </tr>
      </table>
  </div>";

echo "<table align='center'>
<tr>
<td>
<input type='submit' value='go' name='modifier'>
</td>
</form>
<td>
<form method=get action='index.php'><input type=submit value='Annuler'>
</td>
</form>
</table>";
//}
}
$result=mysql_close($db_link);
?>
</body>
</html>
plus particulièrmen la partie :
$mem_titre=mysql_result($result,0,"mem_titre");
	$mem_contenu=mysql_result($result,0,"mem_contenu");
Ces erreur apparaisse lorsque je valide les modification par le bouton go.

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

26 janv. 2006, 12:49

il n'y à paut être pas d'enregistrement qui correspond donc génère une erreur lorsque tu veux récupérer un résultat avec
$mem_titre=mysql_result($result,0,"mem_titre"); 
inclus les lignes de récupération dans un test
$number = mysql_num_rows($result);
if($number != 0)
{
    //les 4 lignes de récupération 
}
else
{
   $titre="";
   $contenu=";
}
 

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Invité
Invité n'ayant pas de compte PHPfrance

26 janv. 2006, 13:49

Ben si puisqu'il m'affiche ce que j'ai dans ma base mais c'est lorsque je veux les modifier donc je valide le formulaire et la ca fonctionne pas.

Eléphant du PHP | 71 Messages

26 janv. 2006, 14:45

Ben si puisqu'il m'affiche ce que j'ai dans ma base mais c'est lorsque je veux les modifier donc je valide le formulaire et la ca fonctionne pas.

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

26 janv. 2006, 17:14

affiche donc la requete générée:
echo "select * from gestion_memo where mem_id='$mem_id'";
tu peux ensuite tester la requete dans phpmyadmin et verifier que tu as un retour.

verifis aussi la pertinence de ce test:
if(isset($_POST['go']) && $_POST['go']=='modifier')

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Invité
Invité n'ayant pas de compte PHPfrance

26 janv. 2006, 17:24

En faisant un echo de la requête voilà le résultat :
select * from gestion_memo where mem_id='15'
Donc apparament il récupère bien quelque chose.

Sinon aurait-tu une autre methode methode pour faire une modif sur une base. Je rappelle que la le but est de modifier un message poster sur un memo.
Donc quand on cloc sur le lien modifier du message dans la page index on arrive sur la page modifier. DE là j'afficher le message à modifier (jusque la ca focntionne) et ensuite je peux modifier les champ et en cliquant sur modifier il doit changer le message en questiion .

Voilà merci

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

26 janv. 2006, 17:39

as tu verifié le test ?
if(isset($_POST['go']) && $_POST['go']=='modifier')
losque tu valides le formulaire que doit-il se passer ?

tu récupère la variable POST qui correspond au bouton submit si cette variable existe tu effectue les modifs sinon tu affiche le formualire avec les données qui correspondent à un id.

Cet id est récupéré par:
$mem_id = isset($_GET['mem_id']) ? $_GET['mem_id'] : null;
donc par GET !! au 1er passage elle existe donc $mem_id prend la valeur numérique OR s'il y a un 2eme passage $mem_id va prendre null

donc la requete se sera plus bonne.

Pourquoi je te parle de 2eme pasage ? Parce que le test n'est jamais verifié donc tu te retrouveras toujours dans le 2eme cas (else).

Il ne faut pas vérifier
isset($_POST['go'])
mais
isset($_POST['modifier'])

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 71 Messages

26 janv. 2006, 17:46

Lorsuqe je valide le formulaire il doit faire les modif du message correspondant à l'id celui qui est affiché. Ensuite il redirige vers la page index du memo.

J'ai essayé les modifs ca na pas marché :
if(isset($_POST['modifier']) && $_POST['modifier']=='modifier'){

Eléphant du PHP | 71 Messages

26 janv. 2006, 18:04

RE ca y est j'y suis enfin arrivé merci à toi surtout.

Tien voici le code final de la page modifier :
<?php
session_start();
if (!isset($_SESSION['membre_login'])) {
    header ('Location: /logiciel/index.php');
    exit();
}
?>
<?php
// on inclus les valeurs de configurations
include("fichier_config/config.php");
?>
<html>
<head>
<title></title>
<LINK REL=stylesheet TYPE="text/css" HREF="css.css">
</head>
<body bgcolor="<?php echo("$color_fond_page"); ?>">
<h3><p><center>Modification de la note</center></p></h3>
<?php

/*_____________________CONNEXION__________________________*/

$db_link=mysql_connect('localhost','root','');
mysql_select_db('gestion',$db_link);
$mem_id = isset($_GET['mem_id']) ? $_GET['mem_id'] : null; 


if(isset($_POST['modifier'])){

	if((isset($_POST['mem_titre'])) && (isset($_POST['mem_contenu']))){

		if((!empty($_POST['mem_titre'])) && (!empty($_POST['mem_contenu']))){

			// Récupération de la date de modification
			$date = date("Y-m-d H:i:s");
			$sql='UPDATE gestion_memo SET mem_titre = "'.$_POST['mem_titre'].'", mem_contenu = "'.$_POST['mem_contenu'].'", date_note = "'.date("Y-m-d H:i:s").'" WHERE mem_id = "'.$_POST['mem_id'].'"';
			mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
			mysql_close();
			echo "<h3 align=center>Mise à jour correctement effectuée<br><br><a href='index.php'>Retour</a>";
		}
		else{
			echo'Une des variable est vide';
		}
	}
	else{
		echo'les variables necessaires ne sont pas définies';
	}
}
else{
$mem_id = isset($_GET['mem_id']) ? $_GET['mem_id'] : null; 
$result=mysql_db_query("gestion","select * from gestion_memo where mem_id='$mem_id'");

$mem_titre=mysql_result($result,0,"mem_titre");
$mem_contenu=mysql_result($result,0,"mem_contenu");

echo "<hr width='50%'>";
echo "<center><table border=0><form method='POST' action='modifier.php'>
<input type='hidden' name='mem_id' value='$mem_id'>
  <div align='center'>
    <table bgcolor='$font_color_cadreformu' width='$width_formulaire'>
      <tr>
        <td><font color='$color_police_formu' size='1' face='$style_police_formu'>Titre :</font></td>
        <td> <input type='text' name='mem_titre' maxlength='30' size='50' value='$mem_titre'> 
        </td>
      </tr>
      <tr>
        <td><font color='$color_police_formu' size='1' face='$style_police_formu'>Note :</font> </td>
        <td> <textarea name='mem_contenu' cols='40' rows='5'>$mem_contenu</textarea> 
        </td>
      </tr>
      </table>
  </div>";

echo "<table align='center'>
<tr>
<td>
<input type='submit' value='go' name='modifier'>
</td>
</form>
<td>
<form method=get action='index.php'><input type=submit value='Annuler'>
</td>
</form>
</table>";
}
$result=mysql_close($db_link);
?>
</body>
</html>

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

26 janv. 2006, 18:47

J'ai essayé les modifs ca na pas marché :
if(isset($_POST['modifier']) && $_POST['modifier']=='modifier'){
normal dans ce cas tu verifiais toujours le contenu avec:
$_POST['modifier']=='modifier'
alors qu'il fallait:
$_POST['modifier']=='go'
N'oublis pas le [Résolu] :wink:

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute