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

Installation MySQL Discussion :

[Fonction]Mysql_fetch_array


Sujet :

Installation MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 7
    Par défaut [résolu][Fonction]Mysql_fetch_array
    Bonjour !

    J'ai récemment installé Wamp pour créer un intranet car je dispose de plusieur ordi, reliés par une livebox, en wifi, ethernet ou usb.

    Je souhaiterai créer un carnet d'adresses très simple. Pour tester si tout fonctionne bien, voila le script que j'ai écrit. Tout en ayant bien entendu, créé la base et la table dans phpMyadmin.

    Dans la base carnet_adressses, il y a une table nommée contacts qui elle meme contient 9 champs.

    ID (primaire, auto-increment), nom, prenom, (en VARCHAR 50)...

    Il y a deux enregistrements dans cette table.

    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
     
     
    <?php 
     
    $connexion = mysql_connect('localhost', 'root', '12206pompier') or die ("impossible de se connecter au serveur");
     
    mysql_select_db('carnet_adressses', $connexion) or die ("impossible de se connecter a la base");
     
    $nom1="SELECT nom, prenom FROM `contacts`" or die("erreur");
     
    $nom2="SELECT * FROM `contacts` " or die("erreur");
     
    $nom1_ok = mysql_query($nom1, $connexion) or die("erreur");
     
    $nom2_ok = mysql_query($nom2, $connexion) or die("erreur");
     
    $nb_valeur = mysql_num_rows($nom1_ok);
     
    $nb_valeur2 = mysql_num_rows($nom2_ok);
     
    $nb_valeur3 = $nb_valeur + $nb_valeur2;
     
    echo $nb_valeur3;
     
    while($tableau=mysql_fetch_row($nom1_ok))
    {
    $nom=$tableau['nom'];
    $prenom=$tableau['prenom'];
    } 
     
    ?>
    La page de résultat affiche le chiffre 4. Qui est bien le nombre total d'enregistrement additionné deux fois. Par contre, je n'ai absolument rien qu'en a l'affichage des données contenues dans la page. Et aucune erreure remonté par php.

    De plus, j'ai installé un cms sur une autre base, il va tres bien. Je voulais faire ce site par moi meme. J'ai pourtant réalisé plusieurs sites en php. Dont un pour les études, il était hébergé chez free. Est-ce que le fait d'être en local produit cela ?

    Aucune des fonction die ne renvoie d'erreur, avec le test faute d'orthographe dans la ligne, une erreur est présente. Ca veut bien dire que la connexion est bien faite avec Mysql.

    Quand a l'affichage, j'ai essayé 25 méthodes, echo, print, printf, écrire autrement les valeurs, mais toujours rien, je bloque.

    Merci pour vos éclairsissements.



    @ ++

  2. #2
    Membre émérite Avatar de FCYPBA
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 745
    Par défaut
    C'est tout simplement parceque tu essai d'acceder aux données de la base via un fetch_row qui te renvoie un tableau sur base d'index numériques ( 1ere colone 0, etc...)

    Si tu veux passer par les noms des colones, alors il faut utiliser mysql_fetch_assoc()


    Ou mieux encore, tu peux utiliser mysql_fetch_array qui te renvoie un tableau avec des index numériques et noms de colones. Un genre de combinaison de row et assoc quoi


    pierre

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 7
    Par défaut
    Merci de ton aide. C'est vrai que c'etait bete de ma part.

    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
    <?php 
     
    $connexion = mysql_connect('localhost', 'root', '12206pompier') or die ("impossible de se connecter au serveur");
     
    mysql_select_db('carnet_adressses', $connexion) or die ("impossible de se connecter a la base");
     
    $nom1="SELECT nom, prenom FROM `contacts`" or die("erreur");
     
    $nom2="SELECT * FROM `contacts` " or die("erreur");
     
    $nom1_ok = mysql_query($nom1, $connexion) or die("erreur");
     
    $nom2_ok = mysql_query($nom2, $connexion) or die("erreur");
     
    $nb_valeur = mysql_num_rows($nom1_ok);
     
    $nb_valeur2 = mysql_num_rows($nom2_ok);
     
    $nb_valeur3 = $nb_valeur + $nb_valeur2;
     
    echo $nb_valeur3;
     
    while($tableau=mysql_fetch_array($nom1_ok))
    {
    print($tableau['nom']);
    print($tableau['prenom']);
    }
     
    ?>
    Ca fonctionne correctement :o) Merci. Et désolé de la bétise ^^.

    @++

  4. #4
    Membre éclairé Avatar de snipes
    Inscrit en
    Septembre 2004
    Messages
    547
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 547
    Par défaut
    Et le ptit plus qui va nous montrer que c'est résolue
    rajoute le tag

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 7
    Par défaut
    Je viens de modifier un peu le code, pas moyen de mettre ça dans un tableau qui fait plus tableau... ?

    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
    <?php 
     
    $connexion = mysql_connect('localhost', 'root', '12206pompier') or die ("impossible de se connecter au serveur");
     
    mysql_select_db('carnet_adressses', $connexion) or die ("impossible de se connecter a la base");
     
    $nom1="SELECT nom, prenom FROM `contacts`" or die("erreur");
     
    $nom1_ok = mysql_query($nom1, $connexion) or die("erreur");
     
    $nb_value = mysql_num_rows($nom1_ok);
     
    echo $nb_value;
     
    ?>
     
    <p align="center" class="Style1">Carnet d'adresses</p>
    <p>&nbsp;</p>
    <p align="center">A | B | C |  D | E | F |  G | H | I |  J</p>
    <p align="center">Adresses les plus vues. </p>
     
    <?
     
    while($tableau=mysql_fetch_array($nom1_ok))
    {
     
    ?>
     
    <table width="659" border="1" align="center">
      <tr>
        <td width="208"><?php print($tableau['nom']); ?></td>
        <td width="233"><?php print($tableau['prenom']) ;?></td>
      </tr>
    </table>
     
    <?
     
    } 
     
    ?>
    La variable $nb_value indique bien le nombre d'enregistrements, 2.

    Par contre, ça je n'ai rien pour les noms et prenom, il laise un tableau d'une ligne et deux colonnes, vide.


  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 7
    Par défaut
    Citation Envoyé par snipes
    Et le ptit plus qui va nous montrer que c'est résolue
    rajoute le tag
    oups ^^

    Heu... c'est tjs le meme sujet, j'vais pas refaire un topic la si ?

    Pour le résolu, ça va bientot le faire je pense, c'est du meme hack-habit ^^


  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2002
    Messages
    141
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : Tunisie

    Informations forums :
    Inscription : Août 2002
    Messages : 141
    Par défaut
    quel est la difference entre mysql_fetch_array et mysql_fetch_assoc

  8. #8
    Membre émérite Avatar de FCYPBA
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 745
    Par défaut
    Le tableau renvoyé par mysql_fetch_array contient en plus les champs sous forme d'index numérique comme je l'ai expliqué un peu plus haut.

    Plus d'infos dans la doc mysql_fetch_array

    Pierre

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2002
    Messages
    141
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : Tunisie

    Informations forums :
    Inscription : Août 2002
    Messages : 141
    Par défaut
    est ce que assoc est plus rapide que array ou non parce que dans mes codes j'utilise array

  10. #10
    Membre émérite Avatar de FCYPBA
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 745
    Par défaut
    ce n'est pas pour rien que je donne l'adresse de la doc :


    Performance : Une chose importante à noter est que l'utilisation de mysql_fetch_array() n'est pas significativement plus lent que l'utilisation de mysql_fetch_row(), alors qu'il fournit des valeurs significatives ajoutées.
    Edit : Désolé du ton mais c'est la fin de la journée

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 7
    Par défaut
    Re,

    J'ai regardé la doc, ça pas été tout a fait ce que j'imaginais, en fait ça m'a pas beaucoup aidé.

    Voila ce que j'ai fait pour que ça fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    while($tableau=mysql_fetch_array($nom1_ok))
     
    {
     
    echo "<table width=\"659\" border=\"0\" align=\"center\">
      <tr>
        <td width=\"208\">"; echo $tableau['nom'] ; echo "</td>
        <td width=\"233\">"; echo $tableau['prenom'] ; echo "</td>
      </tr>
    </table>";
    }
    On est obligé d'écrire le html grace a la fonction php echo ?
    Car si dans la boucle while je ferme ?> que je met mon html et ou a l'interieur je rajoute <? echo ... ?> ça ne fonctionne pas.

    Je sais pas si j'ai été très clair, mais encore merci pour vos éclairssissements justement.


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

Discussions similaires

  1. [MySQL] Ordre des champs avec la fonction mysql_fetch_array
    Par laurentSc dans le forum PHP & Base de données
    Réponses: 16
    Dernier message: 14/12/2009, 23h19
  2. la fonction mysql_fetch_array
    Par hadjiphp dans le forum Langage
    Réponses: 4
    Dernier message: 13/06/2009, 10h58
  3. fonction printf
    Par ydeleage dans le forum C
    Réponses: 7
    Dernier message: 30/05/2002, 11h24
  4. FOnction api specifiant la position de la souris
    Par florent dans le forum C++Builder
    Réponses: 4
    Dernier message: 15/05/2002, 20h07

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