problème mysql

Répondre
universdupc
le 25/01/2006 à 11:23
universdupc
Salut !

Voilà j'ai cré un script de memo, bon jyusque la tout va bien, mais lorsque j'ai voulu créer une page modifier les problème se sotn corssé.
J'ai bien passé en paramètre url l'id du message à modifier et ensuite j'ai effectuer se code ci pour 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>
<?

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

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

$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_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 voici se qu'il me dit :

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

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

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

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

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

CE qui veut dire qu'il reconnais pas mem_id pourtant il est bien présent dans ma base de doonnées !
zebden
le 25/01/2006 à 11:53
zebden
Bin toujours pareil que la dernière fois, sauf qu'ici c'est pas agenda_id qui est indéfini mais mem_id

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

// Ca execute ceci :
// select * from gestion_memo where mem_id=

Donc requête fausse. Définis $mem_id et tu n'auras plus d'erreurs.
zebdinou pour les intimes / Blog : http://www.zebden.fr
universdupc
le 25/01/2006 à 13:25
universdupc
Ben voilà la je les défini mais il veux tjs pas. Pourtant c'est la bonne methode pour modifier un message d'un memo par exemple.
On récupère id par url et ensuite on effectu le traitement.

<?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>
LA GLOBULE
le 25/01/2006 à 13:36
LA GLOBULE
Fais un print_r de tes variables avant de faire ta requete, tu verras ce qui est défini et ce qu'il ne l'est pas au lieu de repeter que c'est la bonne méthode smiley

Pis je ne comprend pas d'ou sort ton $_POST ?
zebden
le 25/01/2006 à 13:51
zebden
euh, tu le définis apres !

$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;
zebdinou pour les intimes / Blog : http://www.zebden.fr
universdupc
le 25/01/2006 à 14:30
universdupc
Voilà maintenant il ne me met plus que deux erreurs, trois erreur erreur qu'il ne mettait pas avec easyphp1.6.

<?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','');
$mem_id = isset($_GET['mem_id']) ? $_GET['mem_id'] : null;

/* _________________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;
$mem_id = isset($_GET['mem_id']) ? $_GET['mem_id'] : null;
$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>


erreur :

Notice: Undefined index: modifier in c:\scripts\logiciel\memo\modifier.php on line 33

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

Notice: Undefined variable: i in c:\scripts\logiciel\memo\modifier.php on line 46
zebden
le 25/01/2006 à 14:58
zebden
Je peux comprendre, que cela puisse être dur à comprendre au départ. Mais tu cherches un peu des fois ? je t'ai déjà expliqué dans les posts précédents, avec un peu de logique, tu devrais commencer à comprendre ces erreurs non ? Surtout que je t'ai donné la piste à suivre, le post précédent.

ET quand je te dis que value ne donne pas $_POST['modifier'], c'est qu'il mettre l'attribut name au bouton ! Pourquoi me dire le contraire, si c'est pas fait ?!

<input type='submit' value='modifier'>

Tu vois un name ? donc tout logiquement $tab['modifier'] n'existe pas et php te le fais remarquer.

Allez courage, je t'assure, c'est pas si difficile que ca, si on s'en donne les moyens !
zebdinou pour les intimes / Blog : http://www.zebden.fr
universdupc
le 25/01/2006 à 15:06
universdupc
mais dans ma nouvelle source je les mis le name="modifier" mais cela na rien changer.
Le plus compliqué c'est que je comprend pas pkoi avant cela fonctionné avec la 6 et plus la 8 plein de script que j'ai récupéré marche plus non plus donc je sui saps le seul à plus rien y comprendre.
En tout cas name et bien déclarer dans mon bouton et il fonctionen pas pour autant.
universdupc
le 25/01/2006 à 16:55
universdupc
Comme vous le remarqué je désespère pas.
Voilà j'ai revu la methode maintenant j'execute cela avec la methode POST j'ai donc tout changer, mais malheureusement ca ne focntionnement pas non pouvez vous me dire ou cela peut clocher car franchement la je c plus moi, j'ai tout recodé.

Il me met une erreur ligne 29 sur les test parse error

<?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','');
$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");
$requete=mysql_db_query("gestion","update gestion_memo set mem_titre='.addslashes($_POST["mem_titre"]).', mem_contenu='$_POST["mem_contenu"]', date_note='$date' where mem_id='$_POST["mem_id"]'",$db_link);
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",$db_link);
$number = MYSQL_NUM_ROWS($result);

$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>
universdupc
le 25/01/2006 à 17:11
universdupc
Bon voici les warnig qu'il me met pour la je pense avoir pris la bonne methode je bige plus :

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

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

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


<?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.''.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",$db_link);
$number = MYSQL_NUM_ROWS($result);

$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>
Répondre
LoadingChargement en cours