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 :

Comment capturer un fieldname afin de passer un style pour le résultat d'un champ


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Profil pro
    Développeur Web
    Inscrit en
    Août 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Pays-Bas

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2005
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Comment capturer un fieldname afin de passer un style pour le résultat d'un champ
    bonsoir,

    J'ai une question peut-être simple mais je ne vois pas comment réaliser mon but.
    J'ai une fonction a double mysql_query dans la quelle je retrouve d'une part les noms de champs de la table et d'autre part je met en page le résultat via des div
    Mon problème est que je voudrais pouvoir appliquer des styles a certains champs afin de maitriser la mise en page mais je n'arrive pas à capturer ces champs [ date et auteur en l'occurence] .

    Cette fonction si fonctionne mais dispose les éléments l'un en dessous de l'autre.
    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
    function makeRes($Qry,$Caption){
     include("var.php"); # var.php is a file used to stored connections variable could be replaced by a conf file
     echo"<div class='resDIV'>"; #define css class for div !!!! 
     echo "<p><H3>".$Caption ."</H3></p>";# writing page caption 
     $Results=mysql_query($Qry) or die(mysql_error());
    $field_names = array_keys(mysql_fetch_assoc($Results)); #get the fields names
     
    mysql_data_seek($Results, 0); # finally populating the dataset on table need to reset Dataset to 0 to get all data returned!
    while ($data= mysql_fetch_row($Results)){
           echo "<div class='data'>";
     
            for ($i=0;$i<=count($data)-1;$i++){
     
     
    	if (is_string($data[$i]))	{
    		echo "<h7>".ucwords($field_names[$i]).":</h7> "; # here we are capturing the fields names to generate the  rendering on page field : <content>
    	 #echo "<p>". stripslashes($data[$i])."</p>"; #here we add the content
    	 if(strlen($data[$i])>200 ) {
    			$newData=substr($data[$i], 0, 180);
    			echo "<p>".stripslashes($newData) ."</p>";
    			}
    			else {
    	 echo  "<p>". stripslashes($data[$i])."</p>"; #here we add the content
    	}
    	}
     
    }
    C'est dans la partie While que mon probleme se pose

    J'essaie quelque chose comme:

    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
    while ($data= mysql_fetch_row($Results)){
           echo "<div class='data'><p>";
     
            for ($i=0;$i<=count($data)-1;$i++){
     
     
    	if ((is_string($data[$i]))&&( $field_names[$i]==array_search("date", $field_names) || $field_names[$i]=array_search("author", $field_names))){
    		echo "<span class='authorTitle'><h7>".ucwords($field_names[$i]).":</h7> "; # here we are capturing the fields names to generate the  rendering on page field : <content>
    	 echo  stripslashes($data[$i])."</span>"; #here we add the content
    	}
    	else {
    		echo "<Div class='titleText'><h7>".ucwords($field_names[$i]).": </h7>"; # here we are capturing the fields names to generate the  rendering on page field : <content>
    		if(strlen($data[$i])>200 ) {
    			$newData=substr($data[$i], 0, 180);
    			echo stripslashes($newData) ."</Div>";
    			}
    			else {
    	 echo  stripslashes($data[$i])."</Div>"; #here we add the content
    	}
    Mais il prend le "else" a tout les coups. Je n'arrive pas à lui faire prendre les style pour les champs "date" et "author" afin de lui faire appliquer les styles voulus.

    Si quelqu'un a une indication à donner sur comment procéder ? ou indiquer quelle fonction PHP je devrais utiliser je serais très heureux.

  2. #2
    Membre confirmé Avatar de Lunixinclar
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 416
    Points : 489
    Points
    489
    Par défaut
    je voudrais pouvoir appliquer des styles a certains champs
    Bonsoir si tu débutes essaye de partir sur du simple sans superflu.
    Lire, adapter et tester ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    mysql_connect('localhost',$user,$pass);
    @mysql_select_db($basededonnes) or die('Unable to select database');
     
    $r = mysql_query('SELECT id,nom,date,auteur,texte FROM livres');
    while($t = mysql_fetch_array($r))
    {
      echo $t[0].' <span style="color:green">'.$t[1].'</span>'.
                 ' <span style="color:cyan">'.$t[2].'</span>'."<br/>\n";
    }
     
    mysql_close();
    Pourquoi faire simple quand on peut obfusquer.

  3. #3
    Candidat au Club
    Profil pro
    Développeur Web
    Inscrit en
    Août 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Pays-Bas

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2005
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    @Lunixinclar

    merci pour ce rappelle de simplicité.
    En fait c'est bien là la solution simple.

    J'ai casser mon If pour faire une double boucle et du coup tout marche.

    résultat:

    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
    while ($data= mysql_fetch_row($Results)){
           echo "<div class='data'><p>";
     
            for ($i=0;$i<=count($data)-1;$i++){
     
     
    	if (is_string($data[$i])){
    # second if pour appliquer le style 
    		if( $i<=1){ #ayant 2 array de avec le meme nombre de valeur je peux simplement valider quand i <=1 pour passer mes arguments. 
    		echo "<span class='authorTitle'><h7>".ucwords($field_names[$i]).":</h7> "; # here we are capturing the fields names to generate the  rendering on page field : <content>
    	 echo  stripslashes($data[$i])." </span>"; #here we add the content
    	}
    	else {
    		echo "<Div class='titleText'><h7>".ucwords($field_names[$i]).": </h7>"; # here we are capturing the fields names to generate the  rendering on page field : <content>
    		if(strlen($data[$i])>200 ) {
    			$newData=substr($data[$i], 0, 180);
    			echo stripslashes($newData) ." </Div>";
    			}
    			else {
    	 echo  stripslashes($data[$i])."</Div>"; #here we add the content
    	}
     
    }
    }		
     
    }
    Le reste du code ne comporte pas de HTML intégré tout passe par des includes mais la construction dynamique force l'inclusion de code html.

    Prochaine étape rendre ce code plus standard pour pouvoir le réutiliser facilement comme la première fonction permet de générer des blocks de contenus quelque soit le query envoyé.
    Ici mon idée est aussi de pouvoir réutiliser le code par la suite pour d'autres applications en ayant juste la fonction a appeller.

    merci encore pour l'avis

Discussions similaires

  1. Réponses: 6
    Dernier message: 20/04/2006, 15h44
  2. Comment capturer "Net send" ?
    Par Mariussy dans le forum API, COM et SDKs
    Réponses: 6
    Dernier message: 21/10/2005, 16h01
  3. Comment deverrouiller un fichier afin de le supprimer ?
    Par TicTacToe dans le forum Langage
    Réponses: 5
    Dernier message: 13/10/2005, 17h34
  4. Réponses: 5
    Dernier message: 21/12/2004, 12h00

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