Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/12/2006, 10h53   #1
Membre du Club
 
Inscription : novembre 2006
Messages : 304
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : novembre 2006
Messages : 304
Points : 44
Points : 44
Par défaut [SQL] Idée de feuille de style

J'ai un tableau qui contient les résultat d'une requete mysql et je dois faire une feuille de style qui me permet d'alterner deux couleurs cad la pemire ligne avec couleur1 et la Deuxieme avec couleur,la troisième avec couleur1...etc !
vous pouvez m"aider !
Maria1505 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2006, 11h10   #2
Modérateur
 
Avatar de Bisûnûrs
 
Josselin
Développeur Web
Inscription : janvier 2004
Messages : 9 050
Détails du profil
Informations personnelles :
Nom : Josselin
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2004
Messages : 9 050
Points : 12 181
Points : 12 181
Code PHP :
1
2
3
4
5
6
7
8
9
$i = 0;
while(ta boucle){
   if($i%2 == 0) $style = "f00";
   else          $style = "ff0";
 
   print '<div style="color:#'.$style.'">Texte</div>';
 
   $i++;
}
Bisûnûrs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2006, 11h14   #3
Membre émérite

 
Avatar de FCYPBA
 
Inscription : novembre 2004
Messages : 735
Détails du profil
Informations personnelles :
Âge : 33
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : novembre 2004
Messages : 735
Points : 924
Points : 924
Citation:
Envoyé par Bisûnûrs
Code PHP :
1
2
3
4
5
6
7
8
9
$i = 0;
while(ta boucle){
   if($i%2 == 0) $style = "f00";
   else          $style = "ff0";
 
   print '<div style="color:#'.$style.'">Texte</div>';
 
   $i++;
}
Je rendrais le code plus compact et supprimerais de ce fait une opération, en le codant comme ceci

Code PHP :
1
2
3
4
5
6
7
 
$tabStyle[]="f00";
$tabStyle[]="ff0";
$i = 0;
while(ta boucle){
   print '<div style="color:#'.$tabStyle[++$i%2].'">Texte</div>';
}

La version ++$i%2 n'est pas forcément à conserver car pas très lisible mais s'il y a beaucoup de lignes on peut gagner un peu
__________________
Pierre
1. Dans le manuel ( PHP, MySQL,..., rayez la mention inutile), tu te plongeras à deux fois plutôt qu'aucune.
2. Dans la doc php, tu liras attentivement les sections Chaines de caractères, Tableaux et Système de fichiers
3. Un code rapide c'est bien, un code maintenable c'est mieux
...

Why was the font tag an orphan ? Because it didn't have a font-family.
FCYPBA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2006, 11h25   #4
Modérateur
 
Avatar de s.n.a.f.u
 
Homme
Développeur Web
Inscription : août 2006
Messages : 2 700
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 37
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : août 2006
Messages : 2 700
Points : 3 357
Points : 3 357
Code PHP :
1
2
3
4
5
6
7
 
$tabStyle[]="c1";
$tabStyle[]="c2";
$i = 0;
while(ta boucle){
   print '<div class="'.$tabStyle[++$i%2].'">Texte</div>';
}

Utilisons les CSS tant qu'à faire, il n'y aura plus besoin de bidouiller le code ensuite pour changer les couleurs, et nous pourrons aussi jouer sur la police, le padding, etc...
s.n.a.f.u est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2006, 11h30   #5
Membre du Club
 
Inscription : novembre 2006
Messages : 304
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : novembre 2006
Messages : 304
Points : 44
Points : 44
Par défaut Idée de feuille de style

"ta boucle" quelle boucle ?
De plus est ce que je vais mettre ca dans les td da mon tableau!
Maria1505 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2006, 11h40   #6
Modérateur
 
Avatar de s.n.a.f.u
 
Homme
Développeur Web
Inscription : août 2006
Messages : 2 700
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 37
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : août 2006
Messages : 2 700
Points : 3 357
Points : 3 357
Citation:
Envoyé par Maria1505
"ta boucle" quelle boucle ?


Et tu comptes faire comment sans boucle sur ton curseur de résultats ?

Je ne voudrait pas être blessant, tout le monde a été débutant et je ne le suis plus depuis peu de temps, mais il y a un minimum de documentation à consulter avant de se lancer.
La base de l'interfacage php / MySQL est quand même à base de boucles sur un curseur de résultats.

Je te conseille le livre de O'Reilly : "Pratique de MySQL et PHP" qui est très bien fait et qui m'a bien aidé à mes débuts.
s.n.a.f.u est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2006, 11h45   #7
NoT
Membre confirmé
 
Inscription : février 2004
Messages : 237
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 237
Points : 261
Points : 261
Si t'es dans un tableau tu remplace les <div> par tes <tr> ( en éspérant ne pas te parler chinois ^^ )

On te donne les éléments pour régler ton problème mais à toi de l'adapter.
NoT est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2006, 21h27   #8
Membre du Club
 
Inscription : novembre 2006
Messages : 304
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : novembre 2006
Messages : 304
Points : 44
Points : 44
Par défaut Idée de feuille de style

Merci pour la reponse mais voila mon programme :
Code :
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
<html>
<body>
<font color=orange><h3 align=center><u>Résultat</u></h3></font>
<hr>
<CENTER>
<table border=1>
       <tr>
          <th>Nom</th>
          <th>Prenom</th>
          <th>CNE</th>
          <th>Age</th>
          <th>Moyenne</th>
               </tr>
<?
if (mysql_connect("localhost","root","")>0)
echo"";
else echo "connexion impossible ";
if(mysql_select_db("ensas")==true) 
echo "<br> ";
else "selection de la base impossible ";
$choix1=$_POST['choix1'];
$choix2=$_POST['choix2'];
$valeur=$_POST['valeur'];
$requete="SELECT * FROM g_info WHERE $choix1 $choix2 '$valeur'";
$result=mysql_query($requete);
   do
     {
?>
       <tr>
          <td><? echo $enreg['NOM']; ?></td>
          <td><? echo $enreg['PRENOM']; ?></td> //c'est ca mon tableau d'affichage alors a votre avis qu'est ce que j dois mettre dans la boucle 
          <td><? echo $enreg['CNE']; ?></td>
          <td><? echo $enreg['Age']; ?></td>
          <td><? echo $enreg['Moyenne']; ?></td>
       </tr>
<?
    }while($enreg=mysql_fetch_array($result));
?>
</table>
</center>
</body>
</html>
Maria1505 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2006, 10h39   #9
Membre émérite

 
Avatar de FCYPBA
 
Inscription : novembre 2004
Messages : 735
Détails du profil
Informations personnelles :
Âge : 33
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : novembre 2004
Messages : 735
Points : 924
Points : 924
Bonjour,

Exactement ce que l'on a t'a expliqué un peu plus haut. A savoit mettre la partie classe dynamique dans le tr.

En plus, il peut y avoir un problème avec ton script dans le cas ou la requete ne renvoie rien. Dans un cas comme cela, ton script afficera tout de même une ligne à cause du do. Il faut donc modifié également cette partie

Comme ceci :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
$requete="SELECT * FROM g_info WHERE $choix1 $choix2 '$valeur'";
$result=mysql_query($requete);
if (mysql_num_rows($result)>0){
    $i=0;
    $tabStyle[0]="c1";
    $tabStyle[1]="c2";
    while($enreg=mysql_fetch_array($result)){
       echo '<tr class="'.$tabStyle[++$i%2].'">';
       echo '<td>'.$enreg['NOM'].'</td>';
       echo '<td>'.$enreg['PRENOM'].'</td>';
       echo '<td>'.$enreg['CNE'].'</td>';
       echo '<td>'.$enreg['Age'].'</td>';
       echo '<td>'.$enreg['Moyenne'].'</td>';
       echo '</tr>';
    }
}
J'ai modifié également l'affichage des lignes car je n'aime pas trop ce mélange php/html

Et dans le css, il faut rajouter un truc du genre
Code CSS :
1
2
3
 
tr.c1{background-color:#ff0;}
tr.c2{background-color:#f00;}

Une autre remarque en passant. Au vu de ta requête, j'en déduis que la liste des conditions du where sont passé en $_GET ce qui n'est pas du tout sécurisé car une personne de mal intentionné pourrait s'amuser un peu avec ta requête pour obtenir des infos sur ta base/table/etc ... Pour plus d'infos je te conseille de faire une recherche sur "Injection SQL"

Voilà
__________________
Pierre
1. Dans le manuel ( PHP, MySQL,..., rayez la mention inutile), tu te plongeras à deux fois plutôt qu'aucune.
2. Dans la doc php, tu liras attentivement les sections Chaines de caractères, Tableaux et Système de fichiers
3. Un code rapide c'est bien, un code maintenable c'est mieux
...

Why was the font tag an orphan ? Because it didn't have a font-family.
FCYPBA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2006, 14h20   #10
Membre du Club
 
Inscription : novembre 2006
Messages : 304
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : novembre 2006
Messages : 304
Points : 44
Points : 44
Par défaut Idée de feuille de style

Merci pour votre aide, mais j'ai jamais travailler avec des feuilles de style, alors ma question est ce que je vais ecrire :
Code :
1
2
tr.c1{background-color:#ff0;}
tr.c2{background-color:#f00;}
dans un fichier.css, et est ce seulement ces deux lignes que je vais ecrire !
Maria1505 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2006, 14h40   #11
Membre du Club
 
Inscription : novembre 2006
Messages : 304
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : novembre 2006
Messages : 304
Points : 44
Points : 44
Par défaut Idée de feuille de style

Merci bcq j'ai trouver la réponse, mais j'aimerai bien que m'expliquiez ces deux dernières lignes si possible.merci d'avance
Maria1505 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2006, 23h05   #12
Membre du Club
 
Inscription : novembre 2006
Messages : 304
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : novembre 2006
Messages : 304
Points : 44
Points : 44
Par défaut J'ai un petit prob je sais pas ou ?

Donc voila j'ai mis les resultat d'une requte d'ans un tableau avec deux couleur qui s'alternent mais mon prob c que lorsque je met leresultat dde ce tableau dans un fichier, parce que soit je recupere les resultat sans couleur qui s'alternent(une seule slmt) soit le fichier est vide et les couleurs s'alternet pouver vs me dire que dois je faire !
Code :
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
<html>
<head>
     <title>Recherche</title>
            <STYLE TYPE="text/css">
                  tr.c1{background-color:#FF00FF;}
                  tr.c2{background-color:#DDA0DD;}
            </style>
</HEAD>
 
<body>
<font color=orange><h3 align=center><u>Résultat</u></h3></font>
<hr>
<CENTER>
<table border=1>
       <tr>
          <th>Nom</th>
          <th>Prenom</th>
          <th>CNE</th>
          <th>Age</th>
          <th>Moyenne</th>
                </tr>
<?
if (mysql_connect("localhost","root","")>0)
echo"";
else echo "connexion impossible ";
if(mysql_select_db("ensas")==true) 
echo "<br> ";
else "selection de la base impossible ";
$choix1=$_POST['choix1'];
$choix2=$_POST['choix2'];
$valeur=$_POST['valeur'];
$requete="SELECT * FROM g_info WHERE Age<23";
$result=mysql_query($requete);
if (mysql_num_rows($result)>0)
{
    $i=0;
    $tabStyle[0]="c1";
    $tabStyle[1]="c2";
// ouverture initiale          
     if(!($handle = fopen("resultatSQL.txt", "w+"))) 
                   {
                   echo "Ecriture Impossible !";
                   die();
                   }
 
    while($enreg=mysql_fetch_array($result))
         {
 
              echo '<tr class="'.$tabStyle[++$i%2].'">';
              echo '<td>'.$enreg['NOM'].'</td>';
              echo '<td>'.$enreg['PRENOM'].'</td>';
              echo '<td>'.$enreg['CNE'].'</td>';
              echo '<td>'.$enreg['Age'].'</td>';
              echo '<td>'.$enreg['Moyenne'].'</td>';
              echo '</tr>';
 
    // écriture incrémentée
      for($i = 0; $i < count($enreg); $i++)     
              fwrite($handle, $enreg[$i] . " | ");
                    fwrite($handle, "\n");
 
         }
// fermeture finale                       
     fclose($handle);
}
 
?>
</table>
</center>
</body>
</html>
Maria1505 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h09.


 
 
 
 
Partenaires

Hébergement Web