Fond différent en fonction d'une donnée de la base mysql

mbk28 Messages postés 18 Date d'inscription samedi 7 février 2004 Statut Membre Dernière intervention 12 janvier 2014 - 6 sept. 2009 à 11:24
mbk28 Messages postés 18 Date d'inscription samedi 7 février 2004 Statut Membre Dernière intervention 12 janvier 2014 - 8 sept. 2009 à 21:29
Bonjour,

je suis en train de construire mes pages et je souhaiterais que le fond des lignes varie en fonction de la donnée medailleID.
les styles sont défini en css.
je souhaiterais que:
si medailleID=1 alors fond de cellule class="gold"
si medailleID=2 alors fond de cellule class="argent"
si medailleID=3 alors fond de cellule class="bronze"
sinon le fond de cellule est celui défini par défaut

le code du tableau:
<tr>
<td><?php echo $row_RsResult['Rg']; ?>. <?php echo $row_RsResult['Prenom']; ?> <?php echo $row_RsResult['Surnom']; ?> <?php echo $row_RsResult['Nom']; ?></td>
<td class="cent">" alt="flag" width="26" height="16" align="absmiddle" /> <?php echo $row_RsResult['Code']; ?></td>
<td class="perf"><?php echo $row_RsResult['Perf']; ?></td>
<td width="5%" class="cent">
<? if ($row_RsResult['Rec']==2) echo "RM"; ?>
<? if ($row_RsResult['Rec']==1) echo "RO"; ?>
</td>
</tr>

merci pour votre aide

mbk28

28 réponses

kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
7 sept. 2009 à 22:43
Re,

milles excuses si je vous dérange encore

Il n'y a aucun dérangement dès l'instant où l'on sent une certaine envie de progresser et d'aller de l'avant. Ce forum est là pour ça, heureusement, mais il n'a pas vocation à fournir du code tout fait.

Lis tu mes messages ? Sans vouloir être désagréable dis le moi, ça m'éviteras de perdre mon temps :
Et puis "<?" s'écrit "<?php"

En laissant "<?" tu peux être certain de rencontrer des pbs, tout de suite ou d'ici très peu de temps.

pour information la valeur de medailleId va de 1 à 10, seuls les 1, 2 et 3 ont une couleur de fond

Il faut donc que tu inclus, dans ton tableau $meds, les valeurs de 4 à 10, du style :
$meds array( 1> 'gold', 2 => 'argent,
3 => 'bronze', 4 => '', 5 => '', [...] ) ;

Sinon tu auras une erreur (variable non définie)
Passer un peu de temps en recherche et documentation là dessus te serait bénéfique plutôt que de recopier du code que vraisemblablement tu ne comprends pas. C'est comme cela qu'on avance !!


après recherche, il semble qu'il manque un }, mais je ne sais pas où le mettre

Pour la troisième fois : notes systématiquement le message d'erreur exact, le code nécessaire, la ligne incriminée.
Ton code à beau être très simple ça facilite l'aide. Si demain il fait 200 lignes et est bien plus complexe personne ne te répondra.

As tu suivi les recommandations de Nautilus (utiliser un éditeur avec coloration syntaxique php) ??
J'en doute fort (vois du côté de psPad ou notepad++ par exemple)

Tu as ça en trop :
<?php do { ?>

Et le tag d'ouverture est "<?php" et pas "<? php" Un éditeur de texte avancé te permettrait de le voir tout de suite.
Pour le reste j'ai abandonné.


Kohntark -
0
mbk28 Messages postés 18 Date d'inscription samedi 7 février 2004 Statut Membre Dernière intervention 12 janvier 2014
7 sept. 2009 à 23:57
re,
Après avoir bien lu vos messages les tiennes et celles de nautilus, j'ai fais les corrections en supprimant l'espace après le ? et j'ai supprimé le bout de code que tu indiquait et au joie, le tableau c'est affiché. Merci
En revanche, les problèmes continuent, 8; s'affichent au dessus du tableau, je ne sais pas d'où ils viennent. De plus la première colonne est centrée or ce style ne figure pas dans les style gold, argent et bronze, car ils ne définissent que des fond de cellule et rien d'autre.
J'utilise un éditeur de syntaxe coloré ( Dream sur mac) et cela m'a permis de corriger certaines erreurs.
notes systématiquement le message d'erreur exact, le code nécessaire, la ligne incriminée.

Lorsque je l'ai indiqué le message d'erreur, celui-ci ne correspondait à rien. Dans ce fil, j'ai indiqué cette information mais la balise correspondant à l'erreur n'eistait pas sur la ligne. J'ai également eu une erreur $end pour une ligne ou le seul caractère de la ligne était > correspondant à la fin du code.
Passer un peu de temps en recherche et documentation là dessus te serait bénéfique plutôt que de recopier du code que vraisemblablement tu ne comprends pas.

J'ai lu des livres en suivant les exemples, j'ai fais de même avec des sites, mais quand on est seul. Ce n'est pas que je ne comprend certainement pas, c'est que je n'y connais rien et comme je ne peux pas poser de question ce n'est pas facile, c'est pour cela que je laisse le logiciel faire le code sans rien modifier et comme il n'y avait pas d'extension qui faisait ce que je souhaitais faire, j'ai posé la question.
Lis tu mes messages ? Sans vouloir être désagréable dis le moi, ça m'éviteras de perdre mon temps

Bien sur que je vous lis mais comme dis ci-dessus je n'ai jamais eu de formation alors je ne comprend pas tout. Je sais que tu n'as pas que cela à faire et moi non plus. je fais un site pour mon plaisir personnel et je ne souhaite pas devenir un pro, mais j'aimerais bien comprendre le php de temps en temps

mbk28
0
nautilus99 Messages postés 661 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 18 septembre 2009 1
8 sept. 2009 à 00:12
Pour te former à PHP (en évitant toutefois certaines des failles de sécurité) lis et testes les tutos du site du zéro.

Dans le cas d eton erreur, la ligne indiquée peut signaler une erreur dans le slignes précédentes, par exemple un ; qui manque ou en trop..
0
mbk28 Messages postés 18 Date d'inscription samedi 7 février 2004 Statut Membre Dernière intervention 12 janvier 2014
8 sept. 2009 à 17:25
bonjour,
je reviens vers vous pour vous signaler que le tableau s'affiche mais pas le code couleur pour les médaillés
Le code:
</tr>
<?php
$meds array( 1> 'gold', 2 => 'argent', 3 => 'bronze', 4 => 'rien', 5 => 'rien', 6 => 'rien', 7 => 'rien', 8 => 'rien', 9 => 'rien', 10 => 'rien') ;
do {
echo '<tr class="'. $meds[$row_RsResult['medailleID']] .'">';
?>
<td>

je précise que je n'ai aucun message d'erreur, le tableau est disponible à l'adresse suivante:
http://www.marcolympics.org/jeux/2006-2008/ete/athle_h100_3.php

mbk28
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
8 sept. 2009 à 20:06
Re,

Il y a un truc qui m'échappe là.
Il n'y a rien dans les class et aucune erreur : l'error_reporting est il toujours activé ?
Soit :
$row_RsResult['medailleID'] vaut bien 1,2...10 et dans ce cas il n'y a pas de raison que ça ne s'affiche pas
$row_RsResult['medailleID'] n'est pas dans le tableau $meds et dans ce cas il y a génération d'un message d'erreur.

Peux tu montrer le code complet (celui générant le tableau de ton lien) ?

Cordialement,


Kohntark -
0
mbk28 Messages postés 18 Date d'inscription samedi 7 février 2004 Statut Membre Dernière intervention 12 janvier 2014
8 sept. 2009 à 20:38
bonsoir,
je signale qu'il n'y a aucune erreur de signalée.
ci dessus le code complet:
16/08,
C.N.O.,
perf.,
,

<?php$meds array( 1> 'gold', 2 => 'argent', 3 => 'bronze', 4 => 'rien', 5 => 'rien', 6 => 'rien', 7 => 'rien', 8 => 'rien', 9 => 'rien', 10 => 'rien') ;
do {
echo '----
';
?>
<?php echo $row_RsResult['Rg']; ?>. <?php echo $row_RsResult['Prenom']; ?> <?php echo $row_RsResult['Surnom']; ?> <?php echo $row_RsResult['Nom']; ?>,
" alt="flag" width="26" height="16" align="absmiddle" /> <?php echo $row_RsResult['Code']; ?>,
<?php echo $row_RsResult['Perf']; ?>,
<? if ($row_RsResult['Rec']==2) echo "RM"; ?>
<? if ($row_RsResult['Rec']==1) echo "RO"; ?>,

<?php } while ($row_RsResult = mysql_fetch_assoc($RsResult)); ?>




mbk28
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
8 sept. 2009 à 21:20
J'ai bien peur que le code ne soit pas complet. Je ne vois nul part la requête et la construction de $RsResult.
Je me repète donc :
Peux tu montrer le code complet (celui générant le tableau de ton lien)

Si je te demande le code complet c'est que dans celui que tu fournissais dans ton avant dernier message (et dans le dernier) il n'y a pas d'erreur (sauf bien sur si j'ai lu trop vite).

Fournis également la structure de ta DB.

Cordialement,


Kohntark -
0
mbk28 Messages postés 18 Date d'inscription samedi 7 février 2004 Statut Membre Dernière intervention 12 janvier 2014
8 sept. 2009 à 21:29
bonsoir,
tout le code complet:
<?php require_once('../../../Connections/jo.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue "", $theNotDefinedValue "")
{
if (PHP_VERSION < 6) {
$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_jo, $jo);
$query_RsResult = "SELECT * FROM results, medaille, jeux, epreuve, sexe, athlete, pays, competition, poids, categorie, saison, accueil WHERE results.MedailleID=medaille.MedailleID AND results.JeuxID=jeux.JeuxID AND results.EpreuveID=epreuve.EpreuveID AND epreuve.SexeID=sexe.SexeID AND epreuve.CompetID=competition.CompetID AND results.AthleteID=athlete.AthleteID AND athlete.PaysID=pays.PaysID AND epreuve.PoidsID=poids.PoidsID AND epreuve.CategorieID=categorie.CategorieID AND epreuve.SaisonID=saison.SaisonID AND epreuve.SexeID=sexe.SexeID AND results.JeuxID=57 AND epreuve.EpreuveID=1 AND results.AthleteID!=9823 AND jeux.JeuxID=accueil.JeuxID ORDER BY epreuve.SexeID, epreuve.Epreuve, epreuve.CategorieID, jeux.JeuxID, medaille.MedailleID, results.Rg";
$RsResult = mysql_query($query_RsResult, $jo) or die(mysql_error());
$row_RsResult = mysql_fetch_assoc($RsResult);
$totalRows_RsResult = mysql_num_rows($RsResult);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Pekin 2008 Athletisme 100 m homme: le résultat complet</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<link href="../../../library/style.css" rel="stylesheet" type="text/css" />
<link href="../../../library/style2.css" rel="stylesheet" type="text/css" />
<link href="../../../SpryAssets/SpryMenuBarHorizontal3.css" rel="stylesheet" type="text/css" />
<link rel="shortcut icon" href="../../../images/favicon.ico" />
</head>

16/08,
C.N.O.,
perf.,
,

<?php$meds array( 1> 'gold', 2 => 'argent', 3 => 'bronze', 4 => 'rien', 5 => 'rien', 6 => 'rien', 7 => 'rien', 8 => 'rien', 9 => 'rien', 10 => 'rien') ;
do {
echo '----
';
?>
<?php echo $row_RsResult['Rg']; ?>. <?php echo $row_RsResult['Prenom']; ?> <?php echo $row_RsResult['Surnom']; ?> <?php echo $row_RsResult['Nom']; ?>,
" alt="flag" width="26" height="16" align="absmiddle" /> <?php echo $row_RsResult['Code']; ?>,
<?php echo $row_RsResult['Perf']; ?>,
<? if ($row_RsResult['Rec']==2) echo "RM"; ?>
<? if ($row_RsResult['Rec']==1) echo "RO"; ?>,

<?php } while ($row_RsResult = mysql_fetch_assoc($RsResult)); ?>


</html>
<?php
mysql_free_result($RsResult);
?>


la structure complète de la base:

-- --------------------------------------------------------
0
Rejoignez-nous