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 :

Erreur mysql_fetch_array php [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé Avatar de mjs21
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2008
    Messages : 85
    Par défaut Erreur mysql_fetch_array php
    Bonjour,

    J'ai l'erreur suivante : Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/RMS/nouveau_pret_materiel/modification.php on line 10

    Lorsque je clique sur le bouton modifier et je ne comprend vraiment pas pourquoi, si quelqu'un a l'aimabilité de me donner un coup de pouce. je le remercie par avance.

    Voici mon 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
    <?php
    include("connect/connexion.php");
    // on recup le numero de materiel dans $num
    $num = $_GET['num']; 
     
     
    // Requete de selection
    $connexion = Connecter();				
    $selmatos = mysql_query("SELECT * FROM MATERIEL WHERE num_mat = $num", $connexion);
    $fetch = mysql_fetch_array($selmatos);
    ?>
     
    <form name="update_mat" method="post" action="modification.php?update=1">
      <p>Description : 
        <input name="desc" type="text" value="<?php echo $fetch['desc_mat'];?>" />
    Fabricant : 
    <input name="fabricant" type="text" value="<?php echo''.$fetch['fabri_mat'].'';?>" />
    <br />
    Modele : 
    <input name="modele" type="text" value="<?php echo''.$fetch['modele_mat'].'';?>" />
    No Serie : 
    <input name="noserie" type="text" value="<?php echo''.$fetch['noserie_mat'].'';?>" />
    </p>
      <p>
        Type :
        <select name="type">
     
    	<?php 	
    		//Parametres de connection à la base :		
    		$requete = "SELECT * FROM TYPE";
    		$result = mysql_query($requete, $connexion);
     
    		echo "<option value='0'>---- S&eacute;lectionner un type ----</option>";
     
    		while($row = mysql_fetch_row($result))
    		{
    			echo "
    			<option value='".$row[0]."'>".
    				$row[1]."
    			</option>
    			";
    		}
    		?>
    	</select>
    </p>
    <input name="Add" type="Submit" value="Modifier">
    </form>
     
    <?php
    if(isset($_GET["update"]))
    {
    	//On récupère les valeurs du formulaire
    	$desc = $_POST['descriptif'];
    	$fabricant = $_POST['fabricant'];
    	$modele = $_POST['modele'];
    	$noserie = $_POST['noserie'];
    	$type = $_POST['type'];
     
    	if ($desc == "" || $fabricant == "" || $modele == "" || $noserie == "" || $type == 0)
    	{
    	//echo "Erreur ! Assurez vous d'avoir bien rempli tous les champs.";
    	}
    	else
    	{	
    		$requetedel = "DELETE FROM MATERIEL WHERE num_mat = $num";
    		$requeteadd = "INSERT INTO MATERIEL VALUES ('', '".$desc."', '".$fabricant."', '".$modele."', '".$noserie."', '1', '".$type."')";
    		if(mysql_query($requeteadd, $connexion))
    			echo "Le mat&eacute;riel : $fabricant $modele <br /><br /><b>A bien &eacute;t&eacute; modifi&eacute; !<br /><br /></b>";
     
    	}
    }
     
    ?>
    Merci par avance

    Cordialement,

    Emmanuel

  2. #2
    Membre expérimenté Avatar de Gaara-Manga
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Avril 2007
    Messages : 247
    Par défaut
    Ligne 9 remplace par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $selmatos = mysql_query("SELECT * FROM MATERIEL WHERE num_mat = '".$num."', '".$connexion."'");

  3. #3
    Membre confirmé Avatar de mjs21
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2008
    Messages : 85
    Par défaut
    Citation Envoyé par Gaara-Manga Voir le message
    Ligne 9 remplace par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $selmatos = mysql_query("SELECT * FROM MATERIEL WHERE num_mat = '".$num."', '".$connexion."'");
    j'ai juste mis entre ' ' la variable $num et je n'ai plus le message d'erreur, seulement mon materiel n'est pas modifier

  4. #4
    Membre expérimenté Avatar de Gaara-Manga
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Avril 2007
    Messages : 247
    Par défaut
    A quel endroit fait tu la modification de ton matériel ?

    Jvois pas d'UPDATE sur ce que tu nous as donné

  5. #5
    Membre confirmé Avatar de mjs21
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2008
    Messages : 85
    Par défaut
    Citation Envoyé par Gaara-Manga Voir le message
    A quel endroit fait tu la modification de ton matériel ?

    Jvois pas d'UPDATE sur ce que tu nous as donné
    Bah dans ce même type je dois supprimer tel ou tel materiel en cliquant sur le bouton supprimer et celà ne supprime pas dans la base

    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
    <?php
     
    $serveur="localhost";
    $user="webtest";
    $pass="webtest";
    $base="res_materiel";
     
     
    $num = $_GET['num']; 
     
     
    // Requete de selection
    mysql_connect($serveur,$user,$pass);
    mysql_select_db($base);				
    $retour = mysql_query("SELECT * FROM MATERIEL WHERE num_mat = '$num'");
    $fetch = mysql_fetch_array($retour);
     
    ?>
    <p>Voulez-vous vraiment supprimer : <?php echo $fetch['fabri_mat']; echo " "; echo $fetch['modele_mat']; echo " de la base ?"?></p><br/>
     
    <form name="del_mat" method="post" action="suppression.php?del=1">
    <input name="del" type="Submit" id="del" value="Supprimer">
    </form>
    <?php
     
    if(isset($_GET["del"]))
    {
    	$connexion = mysql_connect($serveur,$user,$pass);
    	mysql_select_db($base,$connexion);				
    	$requete = "DELETE FROM MATERIEL WHERE num_mat = $num";
    	$result = mysql_query($requete, $connexion);
    	echo "Element supprim&eacute; avec succ&egrave;s !";
    }
    ?>
    Merci beaucoup de ton aide precieuse.

  6. #6
    Membre expérimenté Avatar de Gaara-Manga
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Avril 2007
    Messages : 247
    Par défaut
    En faite l'erreur est la même.

    Dans tu fait ta requête lors de la condition WHERE, oublie pas de mettre des ' ' entre les chaines de caractères.

    Ce qui donnera au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete = "DELETE FROM MATERIEL WHERE num_mat = $num";

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete = "DELETE FROM MATERIEL WHERE num_mat = '".$num."' ";
    Remplace sa et sa sera bon pour cette partie

  7. #7
    Membre confirmé Avatar de mjs21
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2008
    Messages : 85
    Par défaut
    Citation Envoyé par Gaara-Manga Voir le message
    En faite l'erreur est la même.

    Dans tu fait ta requête lors de la condition WHERE, oublie pas de mettre des ' ' entre les chaines de caractères.

    Ce qui donnera au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete = "DELETE FROM MATERIEL WHERE num_mat = $num";

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete = "DELETE FROM MATERIEL WHERE num_mat = '".$num."' ";
    Remplace sa et sa sera bon pour cette partie
    Cela m'affiche bien mon message Element supprimé avec succès ! mais dans ma base rien a été supprimé oh mon dieu que c'est dur dur ..

  8. #8
    Membre expérimenté Avatar de Gaara-Manga
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Avril 2007
    Messages : 247
    Par défaut
    Sa veut dire que l'enregistrement qu'il a voulu supprimer n'existait pas.

    Essaye de faire un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php 
    if(isset($_GET["del"]))
    {
        $connexion = mysql_connect($serveur,$user,$pass);
        mysql_select_db($base,$connexion);
        $requete = "DELETE FROM MATERIEL WHERE num_mat = '".$num."' ";
        $result = mysql_query($requete, $connexion);
        echo ($result) ? "Element ".$num." supprim&eacute; avec succ&egrave;s !" : "Une erreur est survenue lors de la suppréssion du matériel<br/>".mysql_error();
    }
    ?>
    Comme sa deja tu gereras les éventuels erreurs mais aussi si la requête est passé tu seras quel matériel à été supprimé et par l'occasion tu sera si ta variable $num est bien présente.

  9. #9
    Membre confirmé Avatar de mjs21
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2008
    Messages : 85
    Par défaut
    Citation Envoyé par Gaara-Manga Voir le message
    Sa veut dire que l'enregistrement qu'il a voulu supprimer n'existait pas.

    Essaye de faire un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php 
    if(isset($_GET["del"]))
    {
        $connexion = mysql_connect($serveur,$user,$pass);
        mysql_select_db($base,$connexion);
        $requete = "DELETE FROM MATERIEL WHERE num_mat = '".$num."' ";
        $result = mysql_query($requete, $connexion);
        echo ($result) ? "Element ".$num." supprim&eacute; avec succ&egrave;s !" : "Une erreur est survenue lors de la suppréssion du matériel<br/>".mysql_error();
    }
    ?>
    Comme sa deja tu gereras les éventuels erreurs mais aussi si la requête est passé tu seras quel matériel à été supprimé et par l'occasion tu sera si ta variable $num est bien présente.


    Cela m'affiche sur clique :

    Element supprimé avec succès !

    Mais aucun numéro :s

    De plus, je tiens à preciser que lorsque je clique sur supprimer, la phrase :

    Voulez-vous vraiment supprimer Ordinateur portable : de la base ?

    Se transforme en :

    Voulez-vous vraiment supprimer : de la base ?

    Sans le contenu de fabri_mat et modele_mat...

  10. #10
    Membre émérite Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Par défaut
    Bon moi je vois pas vraiment où est le problème... Cependant je peux te donner un petit conseil utile lorsque tu manipule une base de donnée en php: c'est de faire un echo de tes requetes (avant l'exécution), la tu pourras voir ce qui ne va pas (comme par exemple tes erreurs de type d'avant^^)...

  11. #11
    Membre expérimenté Avatar de Gaara-Manga
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Avril 2007
    Messages : 247
    Par défaut
    Ok donc l'erreur est plutôt clair, sa veut dire que ta variable $num ne contient rien.

    Regarde que tu l'a fait passer correctement.
    Si tu y arrive pas envoie la partie du script qui affiche les infos pour après les supprimer

  12. #12
    Membre confirmé Avatar de mjs21
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2008
    Messages : 85
    Par défaut
    Citation Envoyé par Gaara-Manga Voir le message
    Ok donc l'erreur est plutôt clair, sa veut dire que ta variable $num ne contient rien.

    Regarde que tu l'a fait passer correctement.
    Si tu y arrive pas envoie la partie du script qui affiche les infos pour après les supprimer
    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
    <?php
     
    #########################################################
    #                                                       #
    #         Script de modification et suppression         #
    #						de matériel                     #
    #                                                       #
    #########################################################
     
    // Connexion à la base res_materiel
     
    $serveur="localhost";
    $user="webtest";
    $pass="webtest";
    $base="res_materiel";
    ?><style type="text/css">
     
    img{ 
    border: 0; 
    } 
     
    </style>
    <p><em><strong>Liste du mat&eacute;riel :</strong></em></p>
    <br />
     
     
    <?php
     
    //Parametres de connection à la base :
    $connexion = mysql_connect($serveur,$user,$pass);
    mysql_select_db($base,$connexion);				
    $requete = "SELECT * FROM MATERIEL";
    $result = mysql_query($requete, $connexion);
     
    echo '<table bgcolor="#FFFFFF">'."\n";
            // première ligne on affiche les titres prénom et surnom dans 2 colonnes
            echo '<tr>';
           	 echo '<td bgcolor="#669999"><b><u>Descriptif</u></b></td>';
          	 echo '<td bgcolor="#669999"><b><u>Fabricant</u></b></td>';
         	 echo '<td bgcolor="#669999"><b><u>Modele</u></b></td>';
           	 echo '<td bgcolor="#669999"><b><u>No Serie</u></b></td>';
         	 echo '<td bgcolor="#669999"><b><u>Disponible</u></b></td>' ;
    		 echo '<td bgcolor="#669999"><b><u></u></b></td>';
         	 echo '<td bgcolor="#669999"><b><u></u></b></td>' ;
         	 echo '</tr>'."\n";
        // lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.    
        while($row = mysql_fetch_array($result)) {
            echo '<tr>';
            echo '<td bgcolor="#CCCCCC">'.$row["desc_mat"].'</td>';
            echo '<td bgcolor="#CCCCCC">'.$row["fabri_mat"].'</td>';
          	echo '<td bgcolor="#CCCCCC">'.$row["modele_mat"].'</td>';
            echo '<td bgcolor="#CCCCCC">'.$row["noserie_mat"].'</td>';
          	echo '<td bgcolor="#CCCCCC">'.$row["dispo_mat"].'</td>';
    		echo '<td bgcolor="#CCCCCC"><a href="modification.php?num='.$row['num_mat'].'" target="_blank"><img src="img/modification.PNG" border="0" /></a></td>';
    		echo '<td bgcolor="#CCCCCC"><a href="suppression.php?num='.$row['num_mat'].'" target="_blank" ><img src="img/supprimer.png" border="0" /></a></td>';
          	echo '</tr>'."\n";
        }
        echo '</table>'."\n";
        // fin du tableau.
     
     
     
    mysql_close($connexion);
    ?>

  13. #13
    Membre expérimenté Avatar de Gaara-Manga
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Avril 2007
    Messages : 247
    Par défaut
    Ok en faite le problème c'est que dans la page ou t'affiche tes infos tu lui envoie une variable nomé num et dans la page qui supprime tu lui demande de récupérer une variable del donc c'est normal qu'il récupère rien^^

    Faut juste que tu mettes donc la même variable dans les 2 donc tu peux modifier sa dans ton fichier php de suppréssions en le remplaçant par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?php 
    $num = $_GET["num"])
    if(isset($num))
    {
        $connexion = mysql_connect($serveur,$user,$pass);
        mysql_select_db($base,$connexion);
        $requete = "DELETE FROM MATERIEL WHERE num_mat = '".$num."' ";
        $result = mysql_query($requete, $connexion);
        echo ($result) ? "Element ".$num." supprim&eacute; avec succ&egrave;s !" : "Une erreur est survenue lors de la suppréssion du matériel<br/>".mysql_error();
    }
    ?>
    Ou bien faire la modif dans ton fichier d'affichage le résultat reviendra au même sa fera juste que ta variable s'appellera différemment

  14. #14
    Membre confirmé Avatar de mjs21
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2008
    Messages : 85
    Par défaut
    Citation Envoyé par Gaara-Manga Voir le message
    Ok en faite le problème c'est que dans la page ou t'affiche tes infos tu lui envoie une variable nomé num et dans la page qui supprime tu lui demande de récupérer une variable del donc c'est normal qu'il récupère rien^^

    Faut juste que tu mettes donc la même variable dans les 2 donc tu peux modifier sa dans ton fichier php de suppréssions en le remplaçant par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?php 
    $num = $_GET["num"])
    if(isset($num))
    {
        $connexion = mysql_connect($serveur,$user,$pass);
        mysql_select_db($base,$connexion);
        $requete = "DELETE FROM MATERIEL WHERE num_mat = '".$num."' ";
        $result = mysql_query($requete, $connexion);
        echo ($result) ? "Element ".$num." supprim&eacute; avec succ&egrave;s !" : "Une erreur est survenue lors de la suppréssion du matériel<br/>".mysql_error();
    }
    ?>
    Ou bien faire la modif dans ton fichier d'affichage le résultat reviendra au même sa fera juste que ta variable s'appellera différemment
    Merci de ton aide ! j'ai enfin reussi à m'en sortir

    A bientôt !!

    Encore merci

    Cordialement,

    Emmanuel

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

Discussions similaires

  1. Erreur sous PHP MyAdmin (PMA database?)
    Par Matlight dans le forum Installation
    Réponses: 5
    Dernier message: 28/10/2010, 19h38
  2. aider à corriger une erreur de php
    Par LeYouss dans le forum Langage
    Réponses: 3
    Dernier message: 27/04/2006, 18h04
  3. Erreur en PHP
    Par rane dans le forum Langage
    Réponses: 8
    Dernier message: 27/04/2006, 11h38
  4. [SGBD] erreur mysql_fetch_array
    Par Le Mage Noir dans le forum Requêtes
    Réponses: 18
    Dernier message: 09/02/2006, 12h07
  5. erreur mysql_fetch_array()
    Par speedylol dans le forum Requêtes
    Réponses: 3
    Dernier message: 05/01/2006, 12h00

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