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 :

SELECT sur tous les champs Non nuls puis affichage ?


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Avatar de elitemedia
    Profil pro
    Inscrit en
    Août 2006
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 115
    Points : 120
    Points
    120
    Par défaut SELECT sur tous les champs Non nuls puis affichage ?
    Bonjour,

    J'ai un petit souci pour une chose que je n'arrive pas à faire.

    Voici la table MySQL (simplifiée)

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    CREATE TABLE `nip_profile` (
      `profile_ID` int(11) unsigned NOT NULL auto_increment,
      `name` varchar(100) NOT NULL COMMENT 'Artist pseudo',
      `date_of_birth` date default NULL,
      `website` varchar(255) default NULL,
      `origin` varchar(50) default NULL,
      `based_at` varchar(100) default NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Actors profiles' AUTO_INCREMENT=3 ;

    Comme vous pouvez le constater j'ai certaines valeures à NULL par défaut.
    Maintenant je voudrais dans mon script PHP récupérer toutes les données qui ne sont pas Nulles puis n'afficher que celles-ci sur ma page, et la je bloque un peu, pas sur la requete elle même que je ferai avec un IS NOT NULL, mais je cherche une bonne solution pour afficher uniquement les champs qui ne sont pas à NULL dans un tableau HTML.

    Le but est que l'utilisateur ne se trouve pas avec des champs vides dans son affichage, du genre:

    nom: Christophe
    site web: <- Imaginons que ce champ soit nul, alors il ne doit pas apparaitre
    date de naissance: 03.08.1976

    Alors bien sûr, je pourrai tester chaque champ 1 par 1 avec une condition 'if', mais je trouve ca lourd pour les 25 champs que j'ai dans cette table, cela me ferai 25 'if' ce qui n'est pas super.

    Avez-vous une idée bien propre comme il faut ?
    Votre nom de domaine dès 1,47€ ?
    www.avenuedot.com

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 39
    Points : 44
    Points
    44
    Par défaut
    Bien propre comme il faut, je ne sais pas, mais voici un embryon d'idée :
    Tu instancies un tableau associatif avec pour clés les attributs de ta table que tu désires afficher et pour valeur leur nom "humain". Puis tu parcours ce tableau et pour chaque couple clé/valeur, tu testes si la valeur est vide et tu génères ton morceau de tableau ou non.
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $donnees_membre = mysql_fetch_assoc($requete_membre);
    $donnees = array(
    	'website' => 'Site web',
    	'origin' => 'Origine',
    	'based_at' => 'Habite'
    );
    // affichage des donnees
    foreach($donnees as $cle => $nom) {
    	echo '<tr><td>';
    	if (!est_vide($donnees_membre[$cle])) echo $nom.' : '.$donnees_membre[$cle];
    	echo '</td></tr>';
    }
    J'ai mis une fonction fictive est_vide() au cas où tu aurais tes propres critères pour déterminer ce qui est "vide".

  3. #3
    Membre éclairé Avatar de cadoudal56
    Profil pro
    Inscrit en
    Février 2005
    Messages
    694
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

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

    Informations forums :
    Inscription : Février 2005
    Messages : 694
    Points : 779
    Points
    779
    Par défaut
    Hello,

    Via la requete avec des conditions dans le WHERE ne serait t-il pas la solution ?

    Ainsi tu es sur de récupérer un résultat conforme a tes attentes

    @+
    cadou
    LMN24 - Site d'actualité internationale multilingue
    http://www.lmn24.com

  4. #4
    Membre régulier
    Avatar de elitemedia
    Profil pro
    Inscrit en
    Août 2006
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 115
    Points : 120
    Points
    120
    Par défaut
    Non Cadou, c'est justement l'objet de ma question, cela ne concerne pas la requete mais le traitement des données renvoyées par celle-ci.

    Dudule-le-poisson merci pour cette piste, cela est un point de départ, je vais tester.
    Votre nom de domaine dès 1,47€ ?
    www.avenuedot.com

Discussions similaires

  1. Compter les champs non-nuls sur un record
    Par rozwel dans le forum MySQL
    Réponses: 1
    Dernier message: 28/01/2009, 15h49
  2. ORDER BY sur les champs non nuls
    Par ant0inep dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 05/03/2008, 18h22
  3. [SQL Server 2000] UPDATE sur tous les champs de ma table
    Par neeux dans le forum Langage SQL
    Réponses: 8
    Dernier message: 11/12/2006, 10h13
  4. requete ajout caractere sur tous les champs d'une table
    Par lorenzo74 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 24/06/2006, 13h34
  5. une requete effectuant une recherche sur tous les champs
    Par raynor911 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 13/02/2006, 15h06

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