Ses derniers messages sur les forums
C'est surtout que tu as oublié un espace :
$orderby = "ORDER BY DESC LIMIT 10";
Pour éviter ce genre de chose, j'écris comme ça :
$sql = "SELECT * FROM membres $clause $orderby" ;
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Bonjour,
J'ai un petit problème cosmétique. Voici, simplifié, la problématique :
Le document XML à importer :
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE adventures SYSTEM "adventures.dtd">
<adventures xmlns="adventures.dtd"
xmlns:html="http://www.w3.org/1999/xhtml">
<adventure id='adv-adoprixtoxis' kind='kind-sf'>
<title>Adoprixtoxis</title>
<synopsis>
<html:p>Une aventure spatiale !</html:p>
<html:p>Qui n'est pas terminée.</html:p>
</synopsis>
<opinion>
<html:p>Très bonne !</html:p>
<html:p>Mais faudrait en dire plus ;)</html:p>
</opinion>
</adventure>
</adventures>
La DTD qui dit comment qu'il doit être, mon XML :
<!ELEMENT adventures (adventure)+ >
<!ELEMENT adventure (title,synopsis,opinion) >
<!ATTLIST adventure id ID #IMPLIED >
<!ATTLIST adventure title CDATA #IMPLIED >
<!ATTLIST adventure kind IDREF #IMPLIED >
<!ELEMENT title (#PCDATA) >
<!ELEMENT synopsis (#PCDATA)+ >
<!ELEMENT opinion (#PCDATA)+ >
Le script, en exécution locale, qui permet de générer la page d'index :
<?php
$advsDoc = DomDocument::load('adventures.xml') ;
$advsListNode = $advsDoc->getElementsByTagName('adventure') ;
$templateDoc = DomDocument::load('idx-template.html') ;
$templateDoc->validate() ;
$contentNode = $templateDoc->getElementById('content') ;
$dlNode = $contentNode->ownerDocument->createElement('dl') ;
foreach($advsListNode as $advNode)
{
$filebase = $advNode->getAttribute('id') ;
$title = $advNode->getElementsByTagName('title')
->item(0)->nodeValue ;
$dtNode = $contentNode->ownerDocument->createElement('dt') ;
$ddNode = $contentNode->ownerDocument->createElement('dd') ;
$aNode = $contentNode->ownerDocument->createElement('a') ;
$aNode->nodeValue = "(…)" ;
$aNode->setAttribute('href', "$filebase.html") ;
$dtNode->nodeValue = "$title
:" ;
// $ddNode->nodeValue = "Premier p" ;
$pNode = $advNode->getElementsByTagName('synopsis')->item(0)
->getElementsByTagName('p')->item(0) ;
$pNode = $ddNode->ownerDocument->importNode($pNode, true) ;
$pNode->appendChild($aNode) ;
$ddNode->appendChild($pNode) ;
$dlNode->appendChild($dtNode) ;
$dlNode->appendChild($ddNode) ;
}
$contentNode->insertBefore($dlNode, $contentNode->lastChild) ;
$templateDoc->normalize() ;
$templateDoc->save("{$advsDir}index.html") ;
unset($templateDoc) ;
?>
Le template HTML de la page d'index :
<?xml version="1.0" encoding="iso-8859-15"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr">
<head>
<title>Aventures MP3</title>
<link rel="stylesheet" type="text/css" href="../style.css" />
</head>
<body>
<div id="body">
<div id="content">
<h1>Aventures.</h1>
<div class="section">
<p>
Voici la liste alphabétique des aventures
netophoniques
:
</p>
</div>
</div>
</body>
</html>
Le résultat :
<?xml version="1.0" encoding="iso-8859-15"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr">
<head>
<title>Aventures MP3</title>
<link rel="stylesheet" type="text/css" href="../style.css" />
</head>
<body>
<div id="body">
<div id="content">
<h1>Aventures.</h1>
<div class="section">
<p>
Voici la liste alphabétique des aventures
netophoniques
:
</p>
<dl><dt>Adoprixtoxis
:</dt>
<dd xmlns:html="http://www.w3.org/1999/xhtml">
<p xmlns:html="http://www.w3.org/1999/xhtml">Une aventure spatiale !
<a href="adv-adoprixtoxis.html">(…)</a></p></dd></dl>
</div>
</div>
</body>
</html>
Comme vous le constaterez, malgréle namespace commun, libxml me rajoute des déclarations XML. Avez-vous déjà rencontré le problème et résolu la chose de manière élégante ?
(Désolé de ne pas utiliser le Wall, mais il n'est pas très adapté à mon problème ;))
Merci !
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Juste rapidement : c'est sobre et beau. Ce qui serait bien, c'est que le menu reste déployé lorsqu'on est dans une rubrique.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
(Superleseb) Comem tu l'as souligné, en PHP il est débutant. Et comme il l'a précisé, il n'est pas forcément débutant en programmation pure.
(cduf76) Une petite base pour commencer, à insérer dans au sein de ton HTML :
<form>
<select name="un_nom>
<?php
$result = mysql_query('select * from table_a_afficher') ;
while($tuple = mysql_fetch_array($result))
echo "<option id='${tuple[0]}'>${tuple[1]}</option>" ;
?>
</select>
</form>
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Quel est ton niveau en programmation ?
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
(Bzh) Ce n'est pas mal foutu, c'est une autre façon de penser. D'ailleurs, j'ai toujours trouvé stupide de mettre les fichier de configuration à la racine du répertoire racine. Ça pollue mon répertoire maison...
Bref, chez moi, de toute façon, les maisons utilisateurs sont dans /home/$group/$user :p
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Le problème est que les informations seront perdues lors du rafraichissement.
Tu devrais utilisé un timer piloté depuis la page définissant les frames.
Reste que ça reste moche.
Pourquoi pas des sessions qui expirent ?
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Je voulais dore, quelle version a été utilisée pour créer la table dans un premier temps ? Il se peut que MySQL 3 ou 4 étaient plus laxistes.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Elle ne sais pas du tout ce qu'est un cahier des charges, donc on va faire plus simple :
La liste des fonctionnalités souhaitées.
Les croquis des écrans web.
La description des événement (story board).
Une fois que tu sais ce que tu veux, tu peux tout faire !
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Modifie le script comme ceci :
$pourcentage = $data["nbVote"] * 100 / $total;
echo "t<tr><td>".$rep[$i]." : </td><td>".round($pourcentage)." %</td><td><img src="barre.gif" width="'.round($pourcentage).'"></td></td></tr>n";
}
echo "</table>n";
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.