Problème PHP : Warning: mysql_fetch_assoc()

Résolu/Fermé
nirG - 21 avril 2008 à 21:44
 DeGucci - 1 févr. 2009 à 07:12
Bonjour,

J'ai un petit soucis avec mon site, j'ai le message suivant :

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:\Program Files\xampp\htdocs\Intranet\a_gamme.php

Ce message s'affiche que quand j'ai effacé mes traces avec Firefox. Donc, j'ai cherché sur différent forum, mais je n'ai rien trouvé pour m'aider. Je suis un débutant en PHP donc si vous pouvez m'aider à corriger mon code afin de ne plus avoir ce message.

Je vous remercie d'avance de vos réponses.

Cordialement

nirG

<?php require_once('connexion.php'); ?>
<?php
session_start();
if (session_is_registered("authentification")){
}
else {
header("Location:index.php?erreur=intru");
}
?>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>TITLE</title>
<link rel="stylesheet" href="style.css" media="screen"><!--[if lte IE 6]>
	<link rel="stylesheet" href="../../css/ie.css" media="screen" />
<![endif]--></head><body id="autom">
<div id="wrapct">
	<!--header-->
	<div id="header">
		<div id="logo"><h1 title="Magnetto Wheels"><span>Magnetto Automotive</span></h1>
		</div>
	</div>
	<!--/header-->
	<!--lang-->
	<div id="lang">
	</div>
	<!--/lang-->
	<!--main-->
	<div id="main"><p class="Style2 Style3">&nbsp;&nbsp;&nbsp;Bienvenue <span class="Style8"><?php echo $_SESSION['prenom']; ?> <?php echo $_SESSION['nom']; ?>
		<div id="colsx">
			<ul>
				<li><a class="on" href="#">Menu</a></li>
<?php 
  // si l'utilisateur est connecté comme admin ...
  if($_SESSION['privilege'] == "admin") { // Affichage conditionnel : si et seulement si l'utilisateur est connecté avec le privilege administrateur ?>
				<li><a href="a_affaire.php">ajouter affaire</a></li>
				<li><a href="a_gamme.php">ajouter gamme</a></li>
				<li><a href="a_outil.php">ajouter outil</a></li>
				<li id="mores"><a href="">modifier affaire</a></li>
				<li><a href="">modifier gamme</a></li>
				<li><a href="">modifier outil</a></li>
				<li id="mores"><a href="">supprimer affaire</a></li>
				<li><a href="">supprimer gamme</a></li>
				<li><a href="">supprimer outil</a></li>
				<li id="mores"><a href="">Gestion utilisateur</a></li>
<?php } // fin de l'affichage conditionnel?>
				<li id="mores"><a href="index.php?erreur=logout">se deconnecter</a></li>
			</ul>
		</div>
<br><?php
    $sql  = "SELECT COUNT(*) AS nbr FROM affaire WHERE nom_affaire = '".$_POST['nom_affaire']."'";
    $res  = mysql_query($sql);
    $alors  = mysql_fetch_assoc($res);
    $date = strftime("%Y-%m-%d");
?> 

	<form action="a_affaire.php" method="post">
	<p>
	<center> Nom de l'affaire <br><input type="text" name="nom_affaire"></center>
	<div class="centre2">
	<div class="bloc1"><?php
		  if(isset($_POST['nom_affaire'])){
      if(!($alors['nbr'] == 0)){
        echo "Cette affaire existe deja !!";
      }else{
        if ($_POST['nom_affaire'] != NULL)
		{
              		$nom_affaire = mysql_real_escape_string(htmlspecialchars($_POST['nom_affaire']));
              		mysql_query("INSERT INTO affaire VALUES('', '$nom_affaire', '$date')");
		}
      }
    }
?></div></div>
<br><br><center>
      <input type="submit" value="Envoyer"onclick="return confirm('Etes vous sure de vouloir ajouter cette valeur ?')" /> </center>
	      

	  
	  
	  
	  
      </p>
      </form>
<center><TABLE BORDER="3">&nbsp
<TR><TD>&nbsp;Les affaires presentes <a href="?type=2&class=desc"><img src="images/f_b.jpg" border=0></a> <a href="?type=2&class=asc"><img src="images/f_h.jpg" border=0></a>&nbsp
    <TD>&nbsp;Date de creation <a href="?type=3&class=desc"><img src="images/f_b.jpg" border=0></a>&nbsp<a href="?type=3&class=asc"><img src="images/f_h.jpg" border=0></a>&nbsp
<?php
      if ($_GET['type'] == NULL)
	{
	$_GET['type'] = date_a;
	$_GET['class'] = desc;
	}
      $reponse = mysql_query("SELECT * FROM affaire order by ".$_GET['type']." ".$_GET['class']."");
      while ($donnees = mysql_fetch_array($reponse))
      {
?>
<TR><TD>&nbsp;<?php
      echo $donnees['nom_affaire'];?><TD><center><?php echo $donnees['date_a']; ?></TD></TR>
<?php
      }
?>
</TABLE> <br>
	</div>
<!--main-->
<div id="automFh">
</div>
	<!--footer-->
	<div id="footer">
		</div>
	<!--/footer-->
</div>
</body></html>
A voir également:

2 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
21 avril 2008 à 21:50
Tu dois avoir une erreur avant:

mets la trace d'erreur:

$sql  = "SELECT COUNT(*) AS nbr FROM affaire WHERE nom_affaire = '".$_POST['nom_affaire']."'";
    $res  = mysql_query($sql) or die ("Pb requette ".mysql_error(();
    $alors  = mysql_fetch_assoc($res);


Et si cela se produit qd tu supprimes tes cookies c'est que tu perd la session.
2
Merci de ta réponse, mais mon problème n'est pas toujours présent.

C'est que de temps en temps il me fait l'erreur, mais parfois il ne l'a fait pas. Je ne sais comment faire lol.
Pour le problème de session je pense pas, car dès que j'ai perdu la session je suis redirigé vers la page de login.

Y a t-il des erreurs sur mon code ? Ou des possibilités afin de supprimer le mysql_fetch_assoc() ?

Je vous remercie d'avance de vos réponses.

Cordialement.

nirG
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894 > nirG
22 avril 2008 à 10:10
Oui essayes avec mysql_result($result) à la place
0
nirG95 Messages postés 292 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 15 décembre 2010 32 > Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017
22 avril 2008 à 21:39
Ok, j'ai donc modifié mon code.

<?php
$date = strftime("%Y-%m-%d");
$sql  = "SELECT COUNT(*) AS nbr FROM gamme WHERE nom_gamme = '".$_POST['nom_gamme']."' and id_affaire = '".$_POST['type']."'";
$res  = mysql_query($sql)or die ("Pb requette ".mysql_error());
$reponse = mysql_query("SELECT id_affaire, nom_affaire FROM affaire order by nom_affaire");
?>

	<form action="a_gamme.php" method="post">
	<center>Nom de la gamme<br><input type="text" name="nom_gamme" />
	<div class="centre2">
	<div class="bloc1"><?php
	if(isset($_POST['nom_gamme'])) 
		{
      			if($res['nbr'] == 0)
			{
				?>La gamme
				<?php
        			echo $_POST['nom_gamme'];?>
				existe deja dans cette affaire !! 
				<?php
      			}


Pour l'instant sa fonctionne, je posterai en cas d'erreur :D
Merci encore.

Cordialement.

nirG
0
C'est juste dû au fait que la requête ne s'est pas exécutée.
1