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_num_fields en php 5.5 [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 42
    Points : 25
    Points
    25
    Par défaut mysql_num_fields en php 5.5
    bonjour
    encore qq difficultés à passer en php5.5
    code à changer :
    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
     function titre_out($result) // fonction d'affichage du titre
    {
    global $buffer1;
    $nombre=mysql_num_fields($result)-1;
    $largeur=array(225,174,130);
    $buffer1.= "<table style='border-collapse: collapse;table-layout:fixed;width:575px;margin-left:3px' border='1' cellspacing='2' cellpadding='0'>";
    $buffer1.= "<tr>";
    for ($i=0;$i<$nombre;$i++)
    {
    $entete=mysql_field_name($result,$i);
    $buffer1.= "<th bgcolor=\"#ffcc66\" height=\"20\" width=\"$largeur[$i]\" class='noms'>";
    $entete2=($entete=='francais')?"fran&ccedil;ais":$entete;
    $buffer1.= "<a href=\"noms-des-arbres-".$entete."-.html\">".ucfirst($entete2)."</a>";
    $buffer1.= "</th>";
    }
    $buffer1.= "</tr>";
    $buffer1.= "</table>";
    }
    à la place de mysql_num_fields, j'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (mysqli_field_count($result)) {
        $nombre = mysqli_store_result($result)-1;
    	}
    qui n'est pas bon :
    mysqli_field_count() expects parameter 1 to be mysqli, object
    et ça plante

    pour $entete=mysql_field_name($result,$i); j'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $info=mysqli_fetch_field_direct($result,$i);
    $entete=$info['name'];
    je ne sais pas si ça marche car l'entête est vide;
    actuellement le résultat doit ressembler à ça :
    http://www.lesarbres.fr/noms-des-arbres-latin-.html
    merci pour votre aide très précieuse

  2. #2
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    poste le résultat de var_dump($result);

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 42
    Points : 25
    Points
    25
    Par défaut
    voilà ce que ça donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    object(mysqli_result)[1]
      public 'current_field' => null
      public 'field_count' => null
      public 'lengths' => null
      public 'num_rows' => null
      public 'type' => null

  4. #4
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Ok, donc les fonctions mysql_xxx ne pourront être utilisées sur des objets mysqli_xxx

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 42
    Points : 25
    Points
    25
    Par défaut
    mais qu'est ce qui convient à la place de
    mysql_num_fields
    et
    mysql_field_name ?
    cela me sert à faire l'entête d'un tableau avec les noms des titres de la requête

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Citation Envoyé par lesarbres Voir le message
    ...à la place de mysql_num_fields, j'ai essayé ...
    Euhhh, pourquoi pas mysqli_num_fields ?
    Ou, Orienté Objet :
    Quant à mysql_field_name(), on peut trouver sur le web :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $result = mysqli_query($con, 'SELECT * FROM myTable');
    while ($property = mysqli_fetch_field($result)) {
        echo $property->name;
    }
    Tu trouveras toutes les fonctions utiles ici :


    N.B. Ce n'est pas seulement mysql qu'il faut updater.
    Ta fonction fait vraiment peur... elle donne froid dans le dos...
    Dernière modification par Invité ; 16/11/2014 à 12h47.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 42
    Points : 25
    Points
    25
    Par défaut
    merci
    mysqli_num_fields marche bien

    en revanche avec pour les noms des entêtes je n'y arrive toujours pas
    j'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    while ($property = mysqli_fetch_field($result)) {
        $entete=$property->name[$i];
    	}
    je voudrais un titre qui est le 1er champ ("français") puis le second ("latin"), etc
    sachant que la liste complète des champs c'est : francaislatinanglaisfiche2
    c'est pour ça que j'essaye de faire une boucle avec le $i

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 42
    Points : 25
    Points
    25
    Par défaut
    finalement je fais qqchose sans recourir aux fonctions sql
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $liste=array("francais","latin","anglais");
    etc...

    mais comme j'avais 8 requêtes similaires pour 8 pages distinctes, j'ai mis pas mal de temps à tout faire fonctionner, alors qu’avant la fonction sql faisait le boulot pour tous les cas; Donc on va dire "résolu" en dur dans le code sans fonction sql

    merci pour les avis
    je crois que je vais en venir à bout de ma mise à jour de site....

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

Discussions similaires

  1. [EDI] Quel est l'éditeur que vous recommandez pour PHP ?
    Par Lana.Bauer dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 400
    Dernier message: 10/04/2018, 20h08
  2. Quel est le meilleur script PHP de portail (CMS) ?
    Par Lana.Bauer dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 187
    Dernier message: 18/10/2012, 07h45
  3. L'avenir est-il au PHP ?
    Par Manolo dans le forum Langage
    Réponses: 468
    Dernier message: 11/02/2008, 18h54

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