IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Perte d'information modifiée [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 32
    Par défaut Perte d'information modifiée
    Bonjour à tous !

    Je suis en train de réaliser un site de référencement d'animes, et je rencontre quelques difficultés :/

    Lors de l'affichage de la fiche d'information d'une série, l'utilisateur connecté a la possibilité de poster un commentaire accompagné d'une note.
    Le problème c'est que lorsque je clique sur le bouton pour valider le commentaire & la note, je perd le numéro identifiant la série, donc le commentaire ne s'insère pas. :/

    Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
     
     
    /* RECUP FICHE ANIME ************************************************************************************* */
     
    if (isset ($_GET['anime']) )
    {
    	?>
    	<div id="RecupFicheAnime">
    		<form method="post" action="index.php?anime">
    			<?
    			$recupficheanime = mysql_query("SELECT * FROM animes WHERE Id_Anime = '" . $_GET['anime'] . "';") or die(mysql_error());
    			while ($row = mysql_fetch_assoc($recupficheanime) )
    			{
    				echo "<font color='#0080C0' size= 4><b>" . $row['Titre_VF'] . "</b></font><br/><br/>";
    				echo "<b>Titre VO : </b>" . $row['Titre_VO'] . "<br/><br/>";
    				echo "<b>Type : </b>" . $row['Type_Anime'] . "<br/><br/>";
    				echo "<b>Genre : </b>" . $row['Genre'] . "<br/><br/>";
    				echo "<b>Studio : </b>" . $row['Studio'] . "<br/><br/>";
    				echo "<b>Année Production : </b>" . $row['Annee_Prod'] . "<br/><br/>";
    				echo "<b>Durée : </b>" . $row['Nb_Episodes'] . "<br/><br/>";
    				echo "<b>Site Officiel : </b><a href = '" . $row['Site_Officiel'] . "'>" . $row['Site_Officiel'] . "</a><br/><br/>";
    				echo "<b>Synopsis : </b>" . $row['Synopsis'] . "<br/><br/>";
    				echo "<b>Critique : </b>" . $row['Critique'] . "<br/><br/>";
    				echo "<b>Note : </b>" . $row['Note_Redac'] . "/10<br/><br/>";
    				echo "Ajouté " . $row['Date_Ajout'] . "<br/><br/>";
    				?><div id='ImageAnime'><?
    				echo "<img src = Images/" . $row['Id_Anime'] .".jpg>";
    				?> 		
    				</div><?
    				echo "<hr color='#4592CF'>";
    				echo "<font color='#0080C0' size= 4><b>Les commentaires des internautes</b></font><br/><br/>";	
    				AfficherComm($row['Id_Anime']);
    				if (isset($_SESSION['Connect']))
    				{
    					echo "<font color='#0080C0' size= 4><b>Poster votre commentaire</b></font><br/><br/>";
    					PosterComm($row['Id_Anime']);
     
    				}
    				}?>
    		</form>
    	</div>
     
    <?
    }
     
    /* POSTER UN COMMENTAIRE ******************************************************************************* */
     
    function PosterComm($Id_Anime)
    {?>
    	<TEXTAREA NAME="Contenucommentaire" ROWS="4" COLS="50"></TEXTAREA><br/><br/>
    	<font color='#0080C0' size= 4><b>Votre note</b></font><br/><br/>
     
    	<SELECT NAME="Liste_Note">
    	<option>0</option><option>1</option><option>2</option><option>3</option><option>4</option><option>5</option>
    	<option>6</option><option>7</option><option>8</option><option>9</option><option>10</option>
    	</SELECT>
     
    	<input type="submit" name="Valider_Ajout_Comm" value="Valider" >
     
    <?
     
    }
     
    /*******C'est ici que je perd l'identifiant $Id_Anime *********/
     
    	if (isset($_POST['Valider_Ajout_Comm']))
    	{	
    		$nummembre = mysql_query("SELECT Id_Membre FROM membres WHERE Login='" . $_SESSION['Login'] ."';")or die (mysql_error());
    		$notemembre = $_POST['Liste_Note'];
    		$contenucomm = addslashes($_POST['Contenucommentaire']);
    		$inserecomm = mysql_query("INSERT INTO commentaires VALUES ('',$Id_Anime,$nummembre,$contenucomm,$notemembre);")or die (mysql_error());
    		?>
    		<div id="Validation">
    			Votre commentaire et votre note ont bien été pris en compte ! <a href = "index.php?animes">retour</a>
    		</div><?	
    	}


    J'ai exactement le même problème, cette fois avec la modification d'une news, là encore je perds l'identifiant de la news à modifier :/


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    /* FONCTION ACCUEIL ****************************************************************************** */
     
     
    function AccueilNews()
    {
    ?> <form method="post" action="index.php?accueil">
    	<div id ="Validation"> 
    		<br/><br/>
    		<center><font color="#0080C0" size=7>Bienvenue sur My Animeka !</font></center> <br/><br/>
    		Ici vous trouverez des informations complètes sur des animes que j'affectionne plus ou moins mais que j'ai vu et que j'ai.	<br/>
    		Des longs métrages aux séries, de Bleach à Dragon Ball en passant par Noir, Rahxephon ou GITS, vous l'aurez compris la liste sera assez variée. <br/><br/>
     
    		Côtè site, c'est mon premier, donc jugez-le comme un coup d'essai et pas comme un site pro raté. ;) <br/><br/>
     
    		<hr color="#4592CF">
     
    		<b><u><font color="#0080C0" size=4>News :</font></u></b><br/><br/>
     
     
    <?
    	$recupnews = mysql_query("SELECT Id_News, Titre_News, Contenu_News, Date_News FROM news ORDER BY Id_News DESC LIMIT 7;")or die (mysql_error());
    	while ($row = mysql_fetch_assoc($recupnews))
    	{		
    			echo "<u>" . $row['Titre_News'] . "</u>"; 
    			echo "<br/>";
    			echo "<font size = 2><i>" . $row['Date_News'] . "</i></font>";
    			echo "<br/><br/>";
    			echo $row['Contenu_News'];
    			echo "<br/><br/>";		
    			if (isset ($_SESSION['Statut']) AND  $_SESSION['Statut'] == "Admin")
    			{
    				echo "<a href = 'index.php?Modif_news=" . $row['Id_News'] . "'>Modifier</a>";
    				echo " ";
    				echo "<a href = 'index.php?Supprim_news=" . $row['Id_News'] . "'>Supprimer</a>";
    			}
    			echo "<hr color='#4592CF'>";
    	}
    	?></div>
    	</form><?
    }
     
    /* MODIFICATION NEWS**************************************************************************** */
     
    if (isset ($_GET['Modif_news']))
    {
    	$modify = mysql_query("SELECT * FROM news Where Id_News = '" . $_GET['Modif_news'] . "';") or die(mysql_error());
    	$rowe = mysql_fetch_assoc($modify);
    	?>	
    	<div id="Ajout_News">
     
    			<form method="post" action="index.php?Modif_news">
    			<table>
    					<tr>		
    						<td><font color="#0080C0" size= 4><b>Modifier News</b></font></td>
    					</tr>
    					<tr>
    						<td><i>Vous aviez posté :</i></td>
    					</tr>
    					<tr>
    						<td><i>Titre : <?echo $rowe['Titre_News'];?></i></td>
    					</tr>
    					<tr>
    						<td><i>Contenu : <?echo $rowe['Contenu_News'];?></i></td>
    					</tr>
    					<tr>
    						<td>Nouveau Titre de la News : <input type="text" name="Titre_News_Modif"></td>
    					</tr>
    					<tr>
    						<td><TEXTAREA NAME="Contenu_News_Modif" ROWS="4" COLS="40"></TEXTAREA></td>
    					</tr>
    					<tr>
    						<td><input type="submit" name="Valider_Modif_News" value="Valider" ></td>
    					</tr>
    			</table>
     
    			</form>
    	</div>		
    	<?	
     
    /*************C'est ici que je perd Id_News*****************/
    	if (isset ($_POST['Valider_Modif_News']))
    	{
    		$Ident_News=$rowe['Id_News'];
    		$titremodif=$_POST['Titre_News_Modif'];
    		$contenumodif=$_POST['Contenu_News_Modif'];
    		$DateNews=$rowe['Date_News'];
     
    		mysql_query("UPDATE news SET Titre_News='$titremodif',Contenu_News='$contenumodif',Date_News='$DateNews' WHERE Id_News='$Ident_News';") or die (mysql_error());
    		?>
    		<div id="Validation">
    			News correctement modifiée ! <a href = "index.php?accueil">Accueil </a>
    		</div><?	
    	}   
    }

    Si quelqu'un a une idée ...

  2. #2
    Membre éprouvé
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Par défaut
    He bien dans le formulaire du mets un champ hidden avec la numérie de la série que tu récupères après avoir posté.

  3. #3
    Membre Expert
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Par défaut
    passe tes identifiant avec des champs hidden

    EDIT: grilled

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 32
    Par défaut
    Il y a du miou gràce à votre solution !
    En me servant d'un champ hidden, j'arrive a récolter toutes les infos sans problème (vérifié avec echo).
    Mais maintenant j'ai une autre erreur, je ne vois pas d'où ca peut venir :/


    Champ 'MonCommentaire' inconnu dans field list
    MonCommentaire étant le texte composant le commentaire.

    On dirait qu'il y a confusion entre la listebox des notes et le contenu du commentaire, pourtant en vérifiant avec des echo, juste avant la requète sql, les divers champs sont bien respectés :

    $Id_Anime : Contient le bon numéro identifiant l'anime
    $identmembre : Contient le bon numéro identifiant le membre
    $contenucomm : Contient bien le texte du commentaire
    $notemembre : Contient bien la note relevée dans la listebox



    Voici mon code de tout à l'heure modifié :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    /* RECUP FICHE ANIME ************************************************************************************* */
     
    if (isset ($_GET['anime']) )
    {
    	?>
    	<div id="RecupFicheAnime">
    		<form method="post" action="index.php?anime">
    			<?
    			$recupficheanime = mysql_query("SELECT * FROM animes WHERE Id_Anime = '" . $_GET['anime'] . "';") or die(mysql_error());
    			while ($row = mysql_fetch_assoc($recupficheanime) )
    			{
     
    				echo "<font color='#0080C0' size= 4><b>" . $row['Titre_VF'] . "</b></font><br/><br/>";
    				echo "<b>Titre VO : </b>" . $row['Titre_VO'] . "<br/><br/>";
    				echo "<b>Type : </b>" . $row['Type_Anime'] . "<br/><br/>";
    				echo "<b>Genre : </b>" . $row['Genre'] . "<br/><br/>";
    				echo "<b>Studio : </b>" . $row['Studio'] . "<br/><br/>";
    				echo "<b>Année Production : </b>" . $row['Annee_Prod'] . "<br/><br/>";
    				echo "<b>Durée : </b>" . $row['Nb_Episodes'] . "<br/><br/>";
    				echo "<b>Site Officiel : </b><a href = '" . $row['Site_Officiel'] . "'>" . $row['Site_Officiel'] . "</a><br/><br/>";
    				echo "<b>Synopsis : </b>" . $row['Synopsis'] . "<br/><br/>";
    				echo "<b>Critique : </b>" . $row['Critique'] . "<br/><br/>";
    				echo "<b>Note : </b>" . $row['Note_Redac'] . "/10<br/><br/>";
    				echo "Ajouté " . $row['Date_Ajout'] . "<br/><br/>";
    				?><div id='ImageAnime'><?
    				echo "<img src = Images/" . $row['Id_Anime'] .".jpg>";
    				?> 		
    				</div>
     
    				<?
    				echo "<input type='hidden' name='RecupIdentAnime' value='".$row['Id_Anime']."'>";
    				echo "<hr color='#4592CF'>";
    				echo "<font color='#0080C0' size= 4><b>Les commentaires des internautes</b></font><br/><br/>";	
    				AfficherComm($row['Id_Anime']);
    				if (isset($_SESSION['Connect']))
    				{
    					echo "<font color='#0080C0' size= 4><b>Poster votre commentaire</b></font><br/><br/>";
    					PosterComm($row['Id_Anime']);
     
    				}
    				}?>
    		</form>
    	</div>
     
    <?
    }
     
    /* POSTER UN COMMENTAIRE ******************************************************************************* */
     
    function PosterComm($Id_Anime)
    {?>
    	<TEXTAREA NAME="Contenucommentaire" ROWS="4" COLS="50"></TEXTAREA><br/><br/>
    	<font color='#0080C0' size= 4><b>Votre note</b></font><br/><br/>
     
    	<SELECT NAME="Liste_Note">
    	<option>0</option><option>1</option><option>2</option><option>3</option><option>4</option><option>5</option>
    	<option>6</option><option>7</option><option>8</option><option>9</option><option>10</option>
    	</SELECT>
     
    	<input type="submit" name="Valider_Ajout_Comm" value="Valider" >
     
    <?
     
    }
     
    if (isset ($_POST['RecupIdentAnime']))
    {
    	if (isset($_POST['Valider_Ajout_Comm']))
    	{	
    		$Id_Anime=$_POST['RecupIdentAnime'];
    		$nummembre = mysql_query("SELECT Id_Membre FROM membres WHERE Login='" . $_SESSION['Login'] ."';")or die (mysql_error());
    		$rowee = mysql_fetch_assoc($nummembre);
    		$identmembre = $rowee['Id_Membre'];
    		$contenucomm = addslashes($_POST['Contenucommentaire']);
    		$notemembre = $_POST['Liste_Note'];
    		$inserecomm = mysql_query("INSERT INTO commentaires VALUES ('',$Id_Anime,$identmembre,$contenucomm,$notemembre);")or die (mysql_error());
    		?>
    		<div id="Validation">
    			Votre commentaire et votre note ont bien été pris en compte ! <a href = "index.php?animes">retour</a>
    		</div><?	
    	}
    }

  5. #5
    Membre Expert
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Par défaut
    Champ 'MonCommentaire' inconnu dans field list
    je dirais que quelque part dans ton script tu veux inserer ou selectionner le champs MonCommentaire d'une table et que ce champs n'existe pas ou tu l'as mal orthographie

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 32
    Par défaut
    Ce que je ne comprends pas, c'est que "MonCommentaire" (sans les guillemets) est le texte que j'ai tapé dans la textbox 'Contenucommentaire'.
    Ce texte est stocké dans la variable $contenucomm .
    Et c'est cette variable que je rentre dans la base de donnée, dans la table 'commentaires', champ 'Commentaire'.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 32
    Par défaut
    Ah je viens de m'apercevoir de quelque chose :

    - Si je rentre un commentaire sans espace
    ex : "MonCommentaire"
    J'obtient cette erreur :


    Champ 'MonCommentaire' inconnu dans field list

    - Si je rentre un commentaire avecespace
    ex : "Mon Commentaire"
    J'obtient cette erreur :

    Erreur de syntaxe près de 'Commentaire,9)' à la ligne 1

  8. #8
    Membre Expert
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Par défaut
    c'est un proble mysql.
    verifie ton insert, tu dois avoir le meme nombre de champs que de valeurs

  9. #9
    Membre Expert
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Par défaut
    Erreur de syntaxe près de 'Commentaire,9)' à la ligne 1
    tu ne l'a vois pas l'erreur? c'est qu'il manque une quote. Toutes tes variable a entrer doivent l'etre entre quote si les champs sont du type VARCHAR

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 32
    Par défaut
    Une erreur si bête...

    En tout cas merci à vous, maintenant tout fonctionne impeccablement, et j'ai compris l'utilisation des champs cachés!

    Bonne aprem à tous !!

  11. #11
    Membre Expert
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Par défaut
    ok alors pense au petit tag

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Zéro perte d'information
    Par bbo1991 dans le forum Schéma
    Réponses: 3
    Dernier message: 17/11/2006, 16h27
  2. Perte d'information dans un Recordset
    Par Invité dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 18/10/2006, 18h17
  3. Perte d'informations d'un objet initialisé dans un thread
    Par Progs dans le forum Threads & Processus
    Réponses: 4
    Dernier message: 21/11/2005, 20h17
  4. [MySQL] Perte d'information lors d'une requête de visualisation
    Par niccco dans le forum PHP & Base de données
    Réponses: 17
    Dernier message: 21/10/2005, 13h46
  5. glRotate et perte d'information
    Par Crapouille dans le forum OpenGL
    Réponses: 2
    Dernier message: 03/08/2004, 21h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo