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 :

Afficher une donnée en fonction de son identifiant [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Afficher une donnée en fonction de son identifiant


    j'ai une base avec en clé un id auto_increment

    je à afficher une donnée stocké dans ma base selon son id

    afficher $nom1, $prenom1, si $id=1 etc

    et quel est la fonction me permettant de connaître le nombre de ligne enregistré dans ma base

    en plus limpide (j'espère)


    merci

  2. #2
    Membre averti Avatar de makmaoui
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2007
    Messages
    283
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2007
    Messages : 283
    Points : 368
    Points
    368
    Par défaut
    Salut Bibbe,

    en supposant que ton SGBD est MySQL, voici une manière de procéder en sachant qu'il y en a d'autres :

    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
     
    <?php
     
     
    // Connexion à ta Base de données
     
      // Sélection d'un enregistrement selon l'ID
     
    $monEnregistrement = mysql_query("select * from maTable Where id = $id");
     
    if(mysql_num_rows($monEnregistrement) < 1) 
       echo "Aucun enregistrement ne correspond à l'id $id";
    else
      {
       $var = mysql_fetch_assoc($monEnregistrement); 
       $nom = $var['nom'];
       $prenom = $var['prenom'];
     
       echo "Nom : $nom ,   Prénom : $prenom";
      }
     
      //Calcul du nombre total d'enregistrements
     
      $mesEnregistrements = mysql_query('select * from maTable");
    
      echo "Nombre total d'enregistrement dans ma table : ".mysql_num_rows($mesEnregistrements);
    ?>
    bon courage

  3. #3
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 098
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 098
    Points : 8 207
    Points
    8 207
    Billets dans le blog
    17
    Par défaut
    Donc deux choses :
    1. Afficher les liens vers les fiches (script copains.php)
    2. Afficher une fiche selon l'ID (script copain.php)

    Voici une implémentation simpliste :

    === 1. Afficher les liens vers les fiches (copains.php) ===

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
        $sql = 'SELECT ALL id, nom, prenom FROM copains' ;
        $rs = mysql_query($sql) ;
    ?>
    <ul>
        <?php while ( $tuple = mysql_fetch_object($rs) ) : ?>
            <li>
                <a href="copain.php?id=<?php echo $tuple->id ?>">
                    <?php echo $tuple->prenom ?>
                    <?php echo $tuple->nom ?>
                </a>
            </li>
        <?php endwhile ?>
    </ul>
    === 2. Afficher une fiche selon l'ID (copain.php) ===

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
        $sql = 'SELECT ALL id, nom, prenom, etc. FROM copains WHERE id = ' . $_GET['id'] ;
        $rs = mysql_query($sql) ;
        $tuple = mysql_fetch_object($rs) ;
    ?>
    <h2><?php echo $tuple->prenom ?> <?php echo $tuple->nom ?></h2>
    ...
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  4. #4
    Membre éprouvé Avatar de fenkys
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    376
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 376
    Points : 1 054
    Points
    1 054
    Par défaut
    Regle numero 1 du lampeur : ne jamais utiliser mysql_numrows pour compter le nombre de lignes d'une table, utiliser count.

    $resultat = mysql_query("SELECT count(id) FROM maTable");
    echo mysql_result($resultat,0,0);

    fera exactement la même chose que :

    $resultat = mysql_query("SELECT * FROM maTable");
    echo mysql_numrows($resultat);

    Sauf que : Dans le premier cas, mysql va retourner une seule valeur et mysql_result traiter cette seule valeur, dans le second cas, mysql va retourner toutes les lignes de la tables (donc manipulation de beaucoup de données et reservation d'un gros bloc mémoire) et mysql_numrows va les compter.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 7
    Points : 5
    Points
    5
    Par défaut et voila :D
    Apres de nombreux

    je vous présente une solution

    http://84.101.228.160//affichage.html

    reste l'histoire de la mise en page ... ce sera pour une prochaine

    en passant je laisse le code du php. il n'est pas commenté, mais si vous avez des questions n'hésitez po
    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
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    <?php require_once('Connections/root.php'); ?>
    <?php
    if (!function_exists("GetSQLValueString")) {
    function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
    {
      $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
     
      $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
     
      switch ($theType) {
        case "text":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;    
        case "long":
        case "int":
          $theValue = ($theValue != "") ? intval($theValue) : "NULL";
          break;
        case "double":
          $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
          break;
        case "date":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;
        case "defined":
          $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
          break;
      }
      return $theValue;
    }
    }
     
    mysql_select_db($database_root, $root);
    $query_Recordset1 = "SELECT * FROM nom WHERE nom.id_nom=$id_nom";
    $Recordset1 = mysql_query($query_Recordset1, $root) or die(mysql_error());
    $row_Recordset1 = mysql_fetch_assoc($Recordset1);
    $totalRows_Recordset1 = mysql_num_rows($Recordset1);
     
    mysql_free_result($Recordset1);
     
     
    ?>
     
     
    <p>nom 1 : <?php echo $row_Recordset1['nom']; ?></p>
     
    <p>prenom 1 : <?php echo $row_Recordset1['prenom']; ?></p>
    <p>
    <?php
     
    $query_Recordset2 = "SELECT * FROM nom";
     
     
    $result = mysql_query($query_Recordset2, $root) or die(mysql_error());
    $num_rows = mysql_num_rows($result);
     
     
    print ('<p>'); print($num_rows); print('</p>');
     
    if ($id_nom==1)
    {
    $id_nom=$id_nom+1;
    print ('<a href="affichage4.php?id_nom=');
    print($id_nom);
    print('">fiche suivante</a>');
    print ('   id_nom=1   ');
    }
     
    elseif ($id_nom<$num_rows)
     {
    $id_nom_avance=$id_nom;
    $id_nom_avance=$id_nom_avance+1;
    $id_nom_retour=$id_nom;
    $id_nom_retour=$id_nom_retour-1;
    print ('<a href="affichage4.php?id_nom=');
    print($id_nom_retour);
    print('">fiche precedente</a>');
    print ('<p>');
     
    print ('<a href="affichage4.php?id_nom=');
    print($id_nom_avance);
    print('">fiche suivante</a>');
    print ('<p>');
    print('    id_nom sup a 1   ');
    print($id_nom_avance);
    print('</p>');
     }
    else 
    {
    $id_nom_retour=$id_nom;
    $id_nom_retour=$id_nom_retour-1;
    print ('<a href="affichage4.php?id_nom=');
    print($id_nom_retour);
    print('">fiche precedente</a>');
    print('<p><a href="affichage.html">retour au menu</a></p>');
    }
     
    ?>
    merci aux 2 qui m'ont répondu

    ++

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 7
    Points : 5
    Points
    5
    Par défaut oups
    je n'avais pas vu le post de Fenkys

    bon ba ... va pour retaper tout le code

    et faire comme Fenkys y dit ()

    quand j'aurai fini mon brainlag, je re-posterai le nouveau code

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 7
    Points : 5
    Points
    5
    Par défaut et re voila :D
    donc redije

    http://84.101.228.160//affichage.html

    avec la solution de Fenrys

    avec le code en dessous (en passant j'ai enlevé les trucs de vérification/débugage)

    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
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    <?php require_once('Connections/root.php'); ?>
    <?php
    if (!function_exists("GetSQLValueString")) {
    function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
    {
      $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
     
      $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
     
      switch ($theType) {
        case "text":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;    
        case "long":
        case "int":
          $theValue = ($theValue != "") ? intval($theValue) : "NULL";
          break;
        case "double":
          $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
          break;
        case "date":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;
        case "defined":
          $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
          break;
      }
      return $theValue;
    }
    }
     
    mysql_select_db($database_root, $root);
    $query_Recordset1 = "SELECT * FROM nom WHERE nom.id_nom=$id_nom";
    $Recordset1 = mysql_query($query_Recordset1, $root) or die(mysql_error());
    $row_Recordset1 = mysql_fetch_assoc($Recordset1);
    $totalRows_Recordset1 = mysql_num_rows($Recordset1);
     
    mysql_free_result($Recordset1);
     
     
    ?>
     
     
    <p>nom <?php print($id_nom); ?>: <?php echo $row_Recordset1['nom']; ?></p>
     
    <p>prenom <?php print($id_nom); ?> : <?php echo $row_Recordset1['prenom']; ?></p>
    <p>
    <?php
     
    $query_Recordset2 = "SELECT count(id_nom) FROM nom";
    $result = mysql_query($query_Recordset2, $root) or die(mysql_error());
    $num_rows = mysql_result($result,0,0);
    if ($id_nom==1)
    {
    $id_nom=$id_nom+1;
    print ('<a href="affichage5.php?id_nom=');
    print($id_nom);
    print('">fiche suivante</a>');
    }
     
    elseif ($id_nom<$num_rows)
     {
    $id_nom_avance=$id_nom;
    $id_nom_avance=$id_nom_avance+1;
    $id_nom_retour=$id_nom;
    $id_nom_retour=$id_nom_retour-1;
    print ('<a href="affichage5.php?id_nom=');
    print($id_nom_retour);
    print('">fiche precedente</a>');
    print ('<p>');
    print ('<a href="affichage5.php?id_nom=');
    print($id_nom_avance);
    print('">fiche suivante</a>');
    print ('<p>');
     }
    else 
    {
    $id_nom_retour=$id_nom;
    $id_nom_retour=$id_nom_retour-1;
    print ('<a href="affichage5.php?id_nom=');
    print($id_nom_retour);
    print('">fiche precedente</a>');
    print('<p><a href="affichage.html">retour au menu</a></p>');
    }
     
    ?>
    c'est beau, ca fonctionne !
    j'ai les yeux comme ca ->

    mais grace a vous trois j'ai mon résultat

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

Discussions similaires

  1. [XL-2007] Afficher des données en fonction d'une combobox
    Par balibou dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 26/02/2013, 16h08
  2. Réponses: 1
    Dernier message: 03/04/2010, 18h12
  3. supprimer une ligne du fichier en fonction de son identifiant
    Par kabirou ousseini dans le forum C++
    Réponses: 0
    Dernier message: 28/04/2009, 21h21
  4. Réponses: 15
    Dernier message: 31/03/2009, 22h22
  5. Afficher une donnée sur la page web avec une fonction javascript
    Par Djaiffe dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 27/01/2008, 00h05

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