8792 sujets

Développement web côté serveur, CMS

bonjour!!
voici mon problème:
j'utilise des listes comme ca:

<ul>
<li>blabla</li>
<li>blibli</li>
</ul>

sauf que les <li></li> sont générés par PHP (ca provient d'une base de données)
le couic c'est que pour certain <ul></ul>, y pas 'encore' de <li></li>
et donc quand j'essaie de valider ma belle page en XHTML, ca me dit erreur
donc d'abord je comprenais pas et puis j'ai lu qq part que la balise <ul> devait forcément contenir une balise <li>.
donc voilà, auriez-vous une solution rapide et économisque Smiley smile ?
merci d'avance!!

Pivert

edit: encodage
Modifié par Pivert (24 Dec 2005 - 11:43)
Salut!

et tu n'arrives pas à afficher les <ul></ul> en PHP que s'il existe des éléments à mettre dedans?
Bonjour,

C'est simplement que ton code PHP présente quelques défauts qui lui font générer des balises inutiles.

De là 2 solutions :

- modifier le code afin d'éviter de générer ces balises

- retirer les balises superflues par un autre code, avec Regexp ou autre solution (par exemple voir si les balises superflues sont en fin de variable, les détecter en cherchant un "<" par strrpos() puis découper la chaine au bon endroit par un substr()...). Cela bien entendu si tu génères un résultat contenu dans des variables.
merci pour les réponses
mais chuis pas tres fort en php Smiley lol
j'ai essayé ça mais ca marche pas (c'est la troisieme ligne qui doit cloché)
si vous pouviez m'expliquer comment faire if you please Smiley smile

<?
$reponse = mysql_query("SELECT * FROM bdd WHERE champ='intel' ");
if ($reponse != NULL)
{
?>
<ul>
<?
while ($donnees = mysql_fetch_array($reponse))
{
?>
<li>**bon la y a les infos de la bdd**</li>
<?
}
?>
</ul>
	<?php
	}
	?>


(j'ai pas mis le truc en 'code' parce que ca bug avec mon navigateur)

edit: voilà le code encodé...
Modifié par Pivert (23 Dec 2005 - 20:59)
Administrateur
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 qui apparaît en bandeau tout en haut du forum ("Nouveau sur le 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
Bonjour,

Les tests sur les résultats de ta requête sont-ils valides ?

Tu ne mets pas les résultats de ta requête dans une variable, contrairement à ce que je fais.

Je procède ainsi (en reprenant tes tests) :

$reponse = mysql_query("SELECT * FROM bdd WHERE champ='intel' ");

if ($reponse != NULL)
{
$variable = '<ul>';
while ($donnees = mysql_fetch_array($reponse)){
$variable .= '<li>**bon la y a les infos de la bdd**</li>';
}
$variable .= '</ul>';
}



Et je sors le résultat dans la page avec un "echo $variable".

Dans ce cas si les tests sur la présence de données issues de la table sont valides il ne peut pas y avoir de "<ul>" ou de "<li>" vides.
bonjour,
bon apres un rapide echo de mon affichage du résultat de ma requete, me suis rendu compte que meme si la requete n'a pas de résultats dans la base de données, ca affiche qd meme "ressource id blabla" (je pensais ca aurait été nul... )
bon comme le php ca m'a l'air trop compliqué, j'ai résolu mon probleme en faisant un <li></li> systématique avec dedans quelque info utile au lecteur.. Smiley lol

cela dit, je remercie tous ceux qui ont bien voulu m'éclairer
Pivert