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 de récupération [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre habitué
    Femme Profil pro
    Architecte de système d'information
    Inscrit en
    Février 2012
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2012
    Messages : 404
    Points : 127
    Points
    127
    Par défaut Erreur de récupération
    je cherche a récupérer l'id d'utilisateur qui est inséré dans la table utilisateur puis je le stocke dans la table utilisateurcategorie (ce traitement se fait au même temps c'est a dire une requête pour insérer un utilisateur, une requête pour récupérer l'id d'utilisateur inséré puis le stocké dans la table utilisateurcategorie) voila ma requête mais toujours il attend un paramètre 1 et il dit aussi que la table utilisateurcategorie n'existe pas dans la BD mais j'ai la crée! , alors j'ai pas compris comment corrigé ce problème
    "Warning: mysql_fetch_array() expects parameter 1 to be resource"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $p=mysql_query("SELECT * FROM utilisateur WHERE idUser=(SELECT idUser FROM  utilisateurcategorie u
    	WHERE utilisateur.idUser=u.idUser)");
    while($row=mysql_fetch_array($p)){
    	$id_user=$row['idUser'];
    }
    merci

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Relis bien la requête que tu as écris, tu verras qu'elle tourne en rond.

    La fonction mysql_insert_id() te donnera simplement l'id que tu viens de créer.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    mysql_query('INSERT INTO utilisateur  .......');
    $id = mysql_insert_id();
    Au passage quand même l'extension mysql est obsolète.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre habitué
    Femme Profil pro
    Architecte de système d'information
    Inscrit en
    Février 2012
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2012
    Messages : 404
    Points : 127
    Points
    127
    Par défaut
    merci vraiment c'est ça que je cherche une fonction qui récupère l'id
    mais il existe encore un petit problème
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    erreur d'insertion des categories Cannot add or update a child row: a foreign key constraint fails (`tp3_exer2_exer3`.`utilisateur_categorie`, CONSTRAINT `utilisateur_categorie_ibfk_2` FOREIGN KEY (`idCategories`) REFERENCES `categorie` (`idCategorie`))
    même si j'ai ajouté les clés étrangères
    Nom : 3503944444.png
Affichages : 59
Taille : 24,2 Ko

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu essaies d'inserer dans utilisateur_categorie un id qui n'existe pas dans la table categorie.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre habitué
    Femme Profil pro
    Architecte de système d'information
    Inscrit en
    Février 2012
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2012
    Messages : 404
    Points : 127
    Points
    127
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Tu essaies d'inserer dans utilisateur_categorie un id qui n'existe pas dans la table categorie.
    si il existe car j'ai un id=2 dans la table utilisateur ,j'ai testé dan phpmyadmin s'il existe dans la table utilisateur_categorie donc j'ai le trouvé !


    je récuépre les catégorie d'aprés ce formulaire (elles sont stockés dans la bd)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <td><select name="categorie[]" multiple>
    <?php
    include("db.php");
    $r=mysql_query("SELECT * FROM categorie")or die("erreur d'affichage de la liste Catégories");
    while($a=mysql_fetch_array($r)){
    echo'<option value="'.$a['idCategorie'].'">'.$a['libelleCategorie'].'</option>';
    }
     
    ?>
     
    </select>

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    lis bien l'erreur et mon message, ça parle categorie dans la table categorie, pas de la table utilisateur.

    tu as contrôlé le requête que tu executais ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre habitué
    Femme Profil pro
    Architecte de système d'information
    Inscrit en
    Février 2012
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2012
    Messages : 404
    Points : 127
    Points
    127
    Par défaut
    Citation Envoyé par sabotage Voir le message
    lis bien l'erreur et mon message, ça parle categorie dans la table categorie, pas de la table utilisateur.

    tu as contrôlé le requête que tu executais ?
    Merci j'ai résolu ce problème mais je cherche comment affiché un tableau des catégories d'aprés la table dans la base séparées par ";" selon un utilisateur précise (un utilisateur possède plusieurs catégories).
    voilà mon essaie qui ne fonctionne pas , il affiche "Warning: mysql_fetch_array() expects parameter 1 to be resource, "
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $id_u=$_GET['id'];
     
    //affichage des cat
    $cat=mysql_query('SELECT * FROM  utilisateur_categorie c_u,categorie c WHERE idUser='.$id_u.'
    	and c_u.idCategories=c.idCategorie');
    //$tab=explode(";", $cat);
    while($t= explode(";",mysql_fetch_array($cat))){
    echo "<td>".$t['libelleCategorie']."</td>";
    }

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    - l'extension mysql est obsolète, passe à PDO
    - on ne met pas des donnes $_GET dans une requête
    - placer des données séparées par un point-virgule dans une colonne est une mauvaise structure
    - les jointures se font avec JOIN
    - utilise mysql_error() pour debuguer ta requête
    - je ne sais pas quel type de presentation tu veux obtenir mais ton explode me parait douteux

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $id_u = intval($_GET['id']);
     
    $cat=mysql_query('SELECT * FROM  utilisateur_categorie uc JOIN categorie c ON uc.idCategories= c.idCategorie WHERE idUser='.$id_u);
    echo mysql_error(); // pour debuguer
    $tab=explode(";", $cat);
    while($row = mysql_fetch_array($cat)) {
           echo '<td>'. $t['libelleCategorie'].'</td>';
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre habitué
    Femme Profil pro
    Architecte de système d'information
    Inscrit en
    Février 2012
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2012
    Messages : 404
    Points : 127
    Points
    127
    Par défaut
    Citation Envoyé par sabotage Voir le message
    - l'extension mysql est obsolète, passe à PDO
    - on ne met pas des donnes $_GET dans une requête
    - placer des données séparées par un point-virgule dans une colonne est une mauvaise structure
    - les jointures se font avec JOIN
    - utilise mysql_error() pour debuguer ta requête
    - je ne sais pas quel type de presentation tu veux obtenir mais ton explode me parait douteux

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $id_u = intval($_GET['id']);
     
    $cat=mysql_query('SELECT * FROM  utilisateur_categorie uc JOIN categorie c ON uc.idCategories= c.idCategorie WHERE idUser='.$id_u);
    echo mysql_error(); // pour debuguer
    $tab=explode(";", $cat);
    while($row = mysql_fetch_array($cat)) {
           echo '<td>'. $t['libelleCategorie'].'</td>';
    }
    Merci le problème est résolu

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

Discussions similaires

  1. Erreur de récupération de données
    Par Titus94120 dans le forum Langage
    Réponses: 5
    Dernier message: 16/06/2008, 13h58
  2. [vba] erreur 3061 & récupération recordset
    Par bugprog dans le forum Access
    Réponses: 1
    Dernier message: 04/05/2007, 16h00
  3. [MySQL] Erreur à la récupération des données
    Par Philinfo dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 11/11/2006, 17h40
  4. Erreur sur récupération type d'input
    Par michaelbob dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/08/2006, 12h12
  5. [VB]erreur à la récupération d'une valeur d'un dictionnaire
    Par amelhog dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 07/02/2006, 12h06

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