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 :

mysql_fetch_array : print_r ne renvoie pas le resultat attendu. [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 220
    Points
    1 220
    Par défaut mysql_fetch_array : print_r ne renvoie pas le resultat attendu.
    Bonjour.

    Je ne sait pas si c'est un problème de langage ou de sgbd donc je poste ici. (merci aux modos de le déplacer en cas de besoin.)

    j'ai créé une table dans ma base de donnée de la manière suivante:
    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
    <?php
    $requete_sql="CREATE  TABLE inscrits_newsletter (id INT not null AUTO_INCREMENT,pseudonyme VARCHAR (50) , email VARCHAR (128), type_install VARCHAR (8), code_modif VARCHAR (18), ip VARCHAR(15), primary key(id))" ;
    $The_code = uniqid(rand( )) ;
    include ('connectvars.php');
    $link=mysql_connect($dbhost, $dbuser, $dbpasswd); // Connexion à MySQL
    mysql_select_db($dbname, $link) or  die(mysql_error () ); // Sélection de la base de donnée
    mysql_query("DROP TABLE inscrits_newsletter",$link) or die ('Erreur : '.mysql_error() ); //supression d'une éventuelle bas déja existante
    mysql_query("$requete_sql", $link)  or die ('Erreur : '.mysql_error() ); // crée la table inscrits_newsletter. 
    $ip_adr=$_SERVER['REMOTE_ADDR'];
    $entree="INSERT INTO inscrits_newsletter VALUES('','Mephistopheles', 'Mephistopheles_9@hotmail.fr', '123', '$The_code','$ip_adr')";
    mysql_query($entree, $link) or die ('Erreur : '.mysql_error() );// entrée de données test
    $The_code = uniqid(rand( )) ;
    $entree="INSERT INTO inscrits_newsletter VALUES('','Mephisto', 'autreadresse@aol.com', '234', '$The_code','$ip_adr')";
    mysql_query($entree, $link) or die ('Erreur : '.mysql_error() );// entrée de données test
    mysql_close() or die ('Erreur : '.mysql_error() ); // Déconnexion de MySQL
    J'ai exécuté le code, puis ai éxécuté pour l'afficher le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    include ('connectvars.php');
    $link=mysql_connect($dbhost, $dbuser, $dbpasswd); // Connexion à MySQL
    mysql_select_db($dbname, $link) or  die(mysql_error () ); // Sélection de la base de donnée
    $reponse = mysql_query("SELECT * FROM inscrits_newsletter", $link) or die ('Erreur : '.mysql_error() ); // récupération des données test
    while ($donnees = mysql_fetch_array($reponse))
    {
    	echo '<pre>';
    	print_r($donnees);
    	echo '</pre>';
    }
    mysql_close() or die ('Erreur : '.mysql_error() ); // Déconnexion de MySQL
    ?>
    ce code marche également, mais l'affichage m'interloque:
    j'ai:
    Array
    (
    [0] => 1
    [id] => 1
    [1] => Mephistopheles
    [pseudonyme] => Mephistopheles
    [2] => Mephistopheles_9@hotmail.fr
    [email] => Mephistopheles_9@hotmail.fr
    [3] => 123
    [type_install] => 123
    [4] => 194754581a87cdf20f
    [code_modif] => 194754581a87cdf20f
    [5] => 127.0.0.1
    [ip] => 127.0.0.1
    )

    Array
    (
    [0] => 2
    [id] => 2
    [1] => Mephisto
    [pseudonyme] => Mephisto
    [2] => autreadresse@aol.com
    [email] => autreadresse@aol.com
    [3] => 234
    [type_install] => 234
    [4] => 241444581a87d16e2f
    [code_modif] => 241444581a87d16e2f
    [5] => 127.0.0.1
    [ip] => 127.0.0.1
    )
    Mais ne devrais-je pas avoir:
    Array
    (
    [id] => 1
    [pseudonyme] => Mephistopheles
    [email] => Mephistopheles_9@hotmail.fr
    [type_install] => 123
    [code_modif] => 194754581a87cdf20f
    [ip] => 127.0.0.1
    )

    Array
    (
    [id] => 2
    [pseudonyme] => Mephisto
    [email] => autreadresse@aol.com
    [type_install] => 234
    [code_modif] => 241444581a87d16e2f
    [ip] => 127.0.0.1
    )


    si vous pouviez m'aider..., je galère dessus depuis un bout de temps

    merci
    Méphistophélès
    Si la solution ne résout pas votre problème, changez le problème...
    Cours et tutoriels C++ - FAQ C++ - Forum C++.

  2. #2
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Bonjour
    mysql_fetch_array renvoie un tableau associatif, mais qui est fait de telle sorte qu'il puisse également être utilisé comme un tableau normal (accès par indices numériques). D'où les entrées dupliquées que tu vois, avec des clés numériques.

    mysql_fetch_assoc ne devrait pas présenter d'effets de bord de ce type.

  3. #3
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 220
    Points
    1 220
    Par défaut
    En effet, c'est beaucoup mieux.

    merci beaucoup.

    une question: est-ce que mysql_fetch_array est plus couteux en processeur/mémoire que mysql_fetch assoc ?


    merci
    Méphistophélès
    Si la solution ne résout pas votre problème, changez le problème...
    Cours et tutoriels C++ - FAQ C++ - Forum C++.

  4. #4
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Citation Envoyé par méphistopheles
    une question: est-ce que mysql_fetch_array est plus couteux en processeur/mémoire que mysql_fetch assoc ?
    Il est forcément plus coûteux, puisqu'il donne plus de résultats. A mon avis c'est quand même négligeable pour la plupart des applications...

  5. #5
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 220
    Points
    1 220
    Par défaut
    Merci.

    je met le sujet
    Méphistophélès
    Si la solution ne résout pas votre problème, changez le problème...
    Cours et tutoriels C++ - FAQ C++ - Forum C++.

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

Discussions similaires

  1. [DetachedCriteria] Ne renvoie pas le resultat escompté
    Par mavina dans le forum Hibernate
    Réponses: 0
    Dernier message: 24/03/2011, 02h42
  2. requete SQL incomplète qui ne renvoie pas le résultat attendu
    Par ballantine's dans le forum Langage SQL
    Réponses: 14
    Dernier message: 07/10/2010, 07h23
  3. comptage ou somme qui ne donne pas le resultat attendu
    Par JeAn-PhI dans le forum Requêtes
    Réponses: 2
    Dernier message: 08/02/2010, 14h47
  4. Select Case ne renvoie pas la valeur attendue
    Par H.ile dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 23/01/2009, 14h58
  5. jointure renvois pas tous les enregistrements
    Par rayonx dans le forum Langage SQL
    Réponses: 7
    Dernier message: 29/08/2002, 12h51

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