Problème affichage tableau php/mysql
Fermé
bagui2a
Messages postés
3
Date d'inscription
lundi 12 mai 2008
Statut
Membre
Dernière intervention
14 mai 2008
-
12 mai 2008 à 12:55
bagui2a - 11 juin 2008 à 21:56
bagui2a - 11 juin 2008 à 21:56
A voir également:
- Problème affichage tableau php/mysql
- Tableau word - Guide
- Tableau ascii - Guide
- Tableau croisé dynamique - Guide
- Trier tableau excel - Guide
- Easy php - Télécharger - Divers Web & Internet
2 réponses
bagui2a
Messages postés
3
Date d'inscription
lundi 12 mai 2008
Statut
Membre
Dernière intervention
14 mai 2008
1
14 mai 2008 à 14:57
14 mai 2008 à 14:57
Bonjour à tous ,
voilà g un problème et je n'arrive pas à trouver la solution je sollicite donc votre aide.
le problème est le suivant:
g créer un script php qui est en fait une fonction permettant d'afficher un tableau "personnalisable" en fonction du nombre de colonnes et de lignes que l'on veut.
Mon tableau ainsi créé va de 1 à 200.
Toutefois je voudrais y inclure une condition en fonction de mes enregistrements que j'ai sur ma base sql.
C à d mes enregistrements correspondent à des chiffres (qui ne suivent pas forcément un ordre croissant mais plutôt aléatoire en fonction des besoins) et je voudrais que si un ou plusieurs de mes enregistrements correspondent à un ou plusieurs chiffre du tableau ces cellules changent de couleur.
voici le script tel qu'il est actuellement le problème c qu'il ne change la couleur que d'une seule cellule alors qu'il y a 2 enregistrements avec les nombres respectifs de 1 et de 5 or il ne change de couleur que la cellule du chiffre 5.
Voici mon code:
<html>
<body>
<?php
function generer_tableau($col,$lig)
{
$color='<td style="background-color:#8997D4">'; //couleur cellule
$color1='<td style="background-color:#66FFCC">'; // autre couleur
$col12='<td>'; // ouverture cellule
$col13='</td>'; // fermeture
$cr="\n";
// Initialise un nouveau tableau avec le code HTML requis : balise <table>
$tableau ='<table border="2" cellspacing="5" width="70%">'.$cr;
for ($l = 0; $l < $lig ; $l++) // génère lignes
{
// Initialise une nouvelle ligne avec le code HTML requis : balise <tr>
$ligne = '<tr>';
for ($c = 0; $c < $col ; $c++) //génère colonnes
// Ajoute la colonne dans la ligne avec le code HTML requis : balise <td> .... </td>
{
$x=$x+1; // affichage mes chiffres de 1 à ma dimension choisie du tableau (ici 200)
$requette = mysql_query("SELECT numplace,nomplace from EMPLACEMENT where numplace order by numplace");
while($result = mysql_fetch_array($requette))
{
$nupla = $result["numplace"];
$resultat = $color1.$x; // couleur1 avec le chiffre affiché dans la cellule
$fin = $resultat.$col13; // fermeture balises cellules
$resultat2 = $col12.$x; // couleur2
$fin2 = $resultat2.$col13; // fermeture balises cellules
$affiche1=$fin;
$affiche2=$fin2;
}
//conditions si le chiffre de mon enregistrement correspond à celui du tableau
if ($nupla==$x) {
//alors je change la couleur des cellules
$resu=$affiche1;
}else{
$resu=$affiche2; // sinon je laisse la couleur par defaut
}
$ligne .= $resu; // j'affiche le resultat
}
// Ferme la ligne avec le code HTML requis : balise </tr>
$ligne .='</tr>'.$cr;
// Ajoute la ligne au tableau
$tableau .= $ligne;
}
// Ferme le tableau avec le code HTML requis : balise </table>
$tableau.='</table>'.$cr;
return $tableau;
}
// Récuperer le code HTML du tableau dans une variable
//function generer_tableau(10,20) affichera un tableau de 10 colonnes et de 20 lignes donc 200
?>
</body>
</html>
Voilà je voudrais donc pouvoir "allumer" toutes les cellules qui correspondent à mes enregistrements sql en faisant une comparaison avec les chiffres du tableau.
Merci d'avance pour votre aide.
voilà g un problème et je n'arrive pas à trouver la solution je sollicite donc votre aide.
le problème est le suivant:
g créer un script php qui est en fait une fonction permettant d'afficher un tableau "personnalisable" en fonction du nombre de colonnes et de lignes que l'on veut.
Mon tableau ainsi créé va de 1 à 200.
Toutefois je voudrais y inclure une condition en fonction de mes enregistrements que j'ai sur ma base sql.
C à d mes enregistrements correspondent à des chiffres (qui ne suivent pas forcément un ordre croissant mais plutôt aléatoire en fonction des besoins) et je voudrais que si un ou plusieurs de mes enregistrements correspondent à un ou plusieurs chiffre du tableau ces cellules changent de couleur.
voici le script tel qu'il est actuellement le problème c qu'il ne change la couleur que d'une seule cellule alors qu'il y a 2 enregistrements avec les nombres respectifs de 1 et de 5 or il ne change de couleur que la cellule du chiffre 5.
Voici mon code:
<html>
<body>
<?php
function generer_tableau($col,$lig)
{
$color='<td style="background-color:#8997D4">'; //couleur cellule
$color1='<td style="background-color:#66FFCC">'; // autre couleur
$col12='<td>'; // ouverture cellule
$col13='</td>'; // fermeture
$cr="\n";
// Initialise un nouveau tableau avec le code HTML requis : balise <table>
$tableau ='<table border="2" cellspacing="5" width="70%">'.$cr;
for ($l = 0; $l < $lig ; $l++) // génère lignes
{
// Initialise une nouvelle ligne avec le code HTML requis : balise <tr>
$ligne = '<tr>';
for ($c = 0; $c < $col ; $c++) //génère colonnes
// Ajoute la colonne dans la ligne avec le code HTML requis : balise <td> .... </td>
{
$x=$x+1; // affichage mes chiffres de 1 à ma dimension choisie du tableau (ici 200)
$requette = mysql_query("SELECT numplace,nomplace from EMPLACEMENT where numplace order by numplace");
while($result = mysql_fetch_array($requette))
{
$nupla = $result["numplace"];
$resultat = $color1.$x; // couleur1 avec le chiffre affiché dans la cellule
$fin = $resultat.$col13; // fermeture balises cellules
$resultat2 = $col12.$x; // couleur2
$fin2 = $resultat2.$col13; // fermeture balises cellules
$affiche1=$fin;
$affiche2=$fin2;
}
//conditions si le chiffre de mon enregistrement correspond à celui du tableau
if ($nupla==$x) {
//alors je change la couleur des cellules
$resu=$affiche1;
}else{
$resu=$affiche2; // sinon je laisse la couleur par defaut
}
$ligne .= $resu; // j'affiche le resultat
}
// Ferme la ligne avec le code HTML requis : balise </tr>
$ligne .='</tr>'.$cr;
// Ajoute la ligne au tableau
$tableau .= $ligne;
}
// Ferme le tableau avec le code HTML requis : balise </table>
$tableau.='</table>'.$cr;
return $tableau;
}
// Récuperer le code HTML du tableau dans une variable
//function generer_tableau(10,20) affichera un tableau de 10 colonnes et de 20 lignes donc 200
?>
</body>
</html>
Voilà je voudrais donc pouvoir "allumer" toutes les cellules qui correspondent à mes enregistrements sql en faisant une comparaison avec les chiffres du tableau.
Merci d'avance pour votre aide.
Avant tout, je te demande de supprimer un des deux messages qui sont identiques.
Si j'ai bien compris ce que tu veux faire, tu veux afficher des chiffres dans des cases et faire en sorte que si un chiffre se trouve déjà dans ton tableau, la couleur de fond change.
Dis-moi si c'est bien ça ou alors, explique-toi mieux.
Tes chiffres (ou nombres) peuvent aller de combien à combien ?
Si j'ai bien compris ce que tu veux faire, tu veux afficher des chiffres dans des cases et faire en sorte que si un chiffre se trouve déjà dans ton tableau, la couleur de fond change.
Dis-moi si c'est bien ça ou alors, explique-toi mieux.
Tes chiffres (ou nombres) peuvent aller de combien à combien ?