5568 sujets

Sémantique web et HTML

Pages :
Bonjour,

je tente de faire évoluer mon site (je tairais le vieux code actuellement en place Smiley rolleyes ).

pour ce faire j'ai recrée une nouvelle structure de zéro. j'ai ensuite inseré une requete en php dans un div. cette requete tourne sur l'ancienne version, elle tourne seule même, mais sur mon nouveau cadre c'est le néant.

je vous mets le code pour voir si l'un d'entres vous peut me dire ce qui m'échappe.

<div id="fmenu">
<h2>Top 20 des flooders</h2><br><br>

<?php

include ("auth.inc.php");
$a=0;
$result=mysql_query("SELECT pseudo, postcount FROM gms order by postcount DESC Limit 20");

while($ligne = mysql_fetch_array($result)) {
	$postcount = $ligne['postcount'];
	$pseudo = $ligne['pseudo'];
	++$a;
	echo "<li>
			<span style=\"font-family: verdana; font-size: 12px; color:RED\"><B>$a - $pseudo : </span><span style=\"float: right\">$postcount</B></span>
		  </li>";
}
mysql_close();
?>
</div>


et en fait le résultat donne ca :

Top 20 des flooders


$a - $pseudo : $postcount "; } mysql_close(); ?>

merci d'avance

ps, oui j'ai testé en remplacant les "\ par des ' avec le même résultat. Smiley decu
Modifié par coralocean (05 Jun 2012 - 14:00)
Essais de commencer par cleaner tes balises HTML (ouvertures/fermetures) pour voir si le problème ne viendrait pas du côté de l'affichage dans ton navigateur.

<div id="fmenu">
<h2>Top 20 des flooders</h2><br><br>
<ul>
<?php

include ("auth.inc.php");
$a=0;
$result=mysql_query("SELECT pseudo, postcount FROM gms order by postcount DESC Limit 20");

while($ligne = mysql_fetch_array($result)) {
$postcount = $ligne['postcount'];
$pseudo = $ligne['pseudo'];
++$a;
echo "<li>
<B><span style=\"font-family: verdana; font-size: 12px; color:RED\">$a - $pseudo : </span><span style=\"float: right\">$postcount</span></B>
</li>";
}
mysql_close();
?>
</ul>
</div>
Bonjour et bienvenue parmi nous Smiley smile

En tant que modérateur, je me dois de te faire remarquer que tu n'as malheureusement pas respecté l'une des Règles de base du forum qui est d'afficher les codes et exemples proprement à l'aide des boutons [ code]... ici ton code HTML, CSS, PHP, etc.[ /code] (sans espace).

Je te remercie par avance de bien vouloir éditer ton message afin de le rendre conforme à cette règle. Smiley cligne

D'ailleurs, je rappelle que le lien "Aide" qui apparaît tout en haut du forum est important. Il contient des pistes de recherche, des indications sur les règles de vie de la communauté, etc.
Il serait courtois de ta part de bien vouloir en prendre connaissance.

Bonne continuation Smiley smile

upload/1-code.gif
Je reléve 3 erreurs dans ton code:

- que fait là un <li> ? (élément de liste <ul> <ol>)
- mauvaise imbrication des balises:
==> <span><b></span><span></b></span> FAUX
- préfére un style font-weight: bold; a la balise <b>, si tu a besoin de balises pour des questions de formatage, utilise <strong>

J'ai renplacé le echo par un affichage direct des balises, afin de préserver la coloration syntaxique dans l'éditeur, son mode de debug HTML et de la lisibilité.

Je sait pas si ca corrige ton probléme mais tiens compte de tout ca quand même

<div id="fmenu">
<h2>Top 20 des flooders</h2><br><br>

<?php

include ("auth.inc.php");
$a=0;
$result=mysql_query("SELECT pseudo, postcount FROM gms order by postcount DESC Limit 20");

while($ligne = mysql_fetch_array($result)) {
$postcount = $ligne['postcount'];
$pseudo = $ligne['pseudo'];
++$a;
?>
<div>
	<span style="font-family: verdana; font-size: 12px; color:red; font-weight: bold;"><?php echo $a . ' - ' . $pseudo; ?> : </span>
	<span style="float: right; font-weight: bold;"><?php echo $postcount; ?></span>
</div>
<?php
}
mysql_close();
?>
</div>


Ps: dire qu'une requête ne fonctionne pas dans un div n'a aucun sens, quand PHP traite ta requête, il en a que faire (oui pour moi PHP est une personne consciente) que tusoit dans un div ou autre chose, il se contente d'afficher ce qu'on lui demande, ni plus ni moins ** Brave PHP, viens chercher ton susucre **
Modifié par JJK801 (05 Jun 2012 - 13:10)
déjà un grand merci pour vos réponses.

@laurie-anne : désolé, je vais remédier à ca illico.

@moust : j'ai changé 50 fois les balises et rien n'y fait.

@jjk801 : il y avait un ul à l'origine, mais comme dit plus haut j'ai fais moultes changement pour comprendre pourquoi ca ne marche pas. dans le nouveau code le <b> n'apparaissait plus, je précise, le code de départ date d'il y a 8-10 ans, j'ai remodelé de temps à autre. maisje fonctionnait encore avec des frames (oui je sais, ca fait rire ^^). donc le code que tu vois la est la copie du code fonctionnant tel quel. et oui tu as raison, même en dehors d'un div ca donnerait le même résultat.

j'ai testé vos changements sans succès, c'est comme s'il ne reconnaissait pas le ;
il y a ça aussi:


<?php
++$a;


c'est plutot


<?php
$a++;

Modifié par JJK801 (05 Jun 2012 - 14:25)
nope, j'ai tenté et remodelé ce que vous m'avez mis, mais sans succès, seul le texte du code apparait

Top 20 des flooders


$a - $pseudo : $postcount"; } mysql_close(); ?>


j'utilse firefox en temps normal, mais ca donne la même chose sous IE (sauf pour les css mais ca c'est autre chose) sous safari, sous opera et chrome. or ce code dans un fichier séparé fonctionne sur chacun des ses navigateurs, d'ou mon étonnement.
JJK801 a écrit :
il y a ça aussi:
<?php
++$a;
c'est plutot
<?php
$a++;
Euh non... Dans ce cas là, ça ne change rien...

Edit: sinon j'ai des doutes sur les retours à la ligne dans une chaîne de caractère en php... Peut-être vaudrait-il mieux les éviter et afficher les variables par concaténation ?
echo '<li><span style="font-family: verdana; font-size: 12px; color:RED"><b>' . $a . ' - ' . $pseudo . ' : </span><span style="float: right">' . $postcount . '</b></span></li>';

Modifié par Gothor (05 Jun 2012 - 15:07)
en effet, je ne savais pas que ça fonctionné aussi dans ce sens Smiley smile

@ coralocean: as tu essayé avec mon code, car normalement, il ne peut pas afficher exactement la même chose vu que j'avais retiré l'echo
@ jjk801 : alors le ++$a ou $a++ c'est kifkif.

oui j'ai testé avec ton code et il n'y a plus que ceci qui apparait :

Top 20 des flooders


:

@ naemesis testé sur server local et en ligne avec malheureusement le même résultat.

@ gothor je vais tester sans br.
coralocean a écrit :
@ jjk801 : alors le ++$a ou $a++ c'est kifkif.
Pas tout à fait... C'est identique si l'instruction est effectuée indépendamment d'une autre, mais sinon, ça change des choses...
// Affiche les nombres de 0 à 9
$i = 0;
while ($i < 10)
    echo $i++;

// Affiche les nombres de 1 à 10
$i = 0;
while ($i < 10)
    echo ++$i;

Modifié par Gothor (05 Jun 2012 - 15:30)
Gothor a écrit :
Pas tout à fait... C'est identique si l'instruction est effectuée indépendamment d'une autre, mais sinon, ça change des choses...
// Affiche les nombres de 0 à 9
$i = 0;
while ($i &lt; 10)
    echo $i++;

// Affiche les nombres de 1 à 10
$i = 0;
while ($i &lt; 10)
    echo ++$i;


oui, sorry, je voulais dire que l'instruction est valide et qu'elle n'influe pas sur le code. mais tu as raison de le préciser.
Je pense à une chose.

Tu peux essayer de ré-enregistrer ton fichier en forçant l'encodage.
Visiblement le code php sensé afficher les valeurs n'est pas interprété, comme s'il ne reconnaissait pas les balises <?php ?> ou qu'il y a un caractère invisible posant problème au milieu. Un problème d'encodage pourrait peut-être en être la cause.

Je dis ça sans grande conviction, mais le fait que ton code semble juste et que le code s'affiche en dur me semble pouvoir correspondre. Smiley ohwell
Modifié par moust (05 Jun 2012 - 15:42)
moust a écrit :
Je pense à une chose.

Tu peux essayer de ré-enregistrer ton fichier en forçant l'encodage.
Visiblement le code php sensé afficher les valeurs n'est pas interprété, comme s'il ne reconnaissait pas les balises &lt;?php ?&gt; ou qu'il y a un caractère invisible posant problème au milieu. Un problème d'encodage pourrait peut-être en être la cause.

Je dis ça sans grande conviction, mais le fait que ton code semble juste et que le code s'affiche en dur me semble pouvoir correspondre. Smiley ohwell


je me dis la même chose, il ne semble pas reconnaitre le code php. j'ai donc effacé et refait. j'ai même simplifié en ayant le code suivant


<div id="fmenu">
<h2>Top 20 des flooders</h2><br><br>
<ul>

<?php
include ("auth.inc.php");
$result=mysql_query("SELECT pseudo, postcount FROM gms order by postcount DESC Limit 20");

while($ligne = mysql_fetch_array($result)) {
	$postcount = $ligne['postcount'];
	$pseudo = $ligne['pseudo'];
?>

<li>
	<span style="font-family: verdana; font-size: 12px; color:red; font-weight: bold;"><?php echo $pseudo; ?> : </span>
	<span style="float: right; font-weight: bold;"><?php echo $postcount; ?></span>
</li>

<?php
}
mysql_close();
?>

</ul>
</div>


mais rien n'y fait, il voit bien le <li> il met bien le point devant, mais le php non ...
Je viens de tester le code sur mon serveur local et ça marche pourtant très bien...

Quelle version de PHP utilises-tu ?

Essais de remplacer tout ton affichage de chaque ligne par un simple print_r() de $ligne pour voir ça change quelques chose.
moust a écrit :
Je viens de tester le code sur mon serveur local et ça marche pourtant très bien...

Quelle version de PHP utilises-tu ?

Essais de remplacer tout ton affichage de chaque ligne par un simple print_r() de $ligne pour voir ça change quelques chose.


php 5.3.5

bon, j'ai ajouté les lignes print_r, il n'imprime rien, j'ai même viré le fichier css et rien. qu'est ce qui pourrait bien faire que ce code ne fonctionne dans ce fichier et ailleur ca ne pose aucun soucis. ca fait trois jours que ca me travaille, alors que c'est un des derniers points de mon ossature. sans compter que ce n'est qu'une petite partie du code php.
Bonjour, tu testes bien sur un serveur ? ^^' Tu fais pas un simple double clic sur ta page ? Tu as bien sauvegardé ton fichier en .php ?

Ok, des questions qui peuvent sembler bêtes, mais sait-on jamais -_-'
omg, l'extension, comment passer pour un crétin fini. phpedit avait défini les fichiers en html, j'ai totallement zappé, vraiment navré de vous avoir fait bêtement perdre du temps.
Muahahahahah !
(J'ai trouvé ce smiley dans la liste, donc je le mets...)
Smiley roi
Bon, tout n'est peut-être pas encore joué... Il y aura peut-être d'autres bugs =°
Pages :