donc voila
je fait un petit system de news mais pour afficher les news j'ai decidez de compliqué un peu la chose ...
j'ai en faite 2 partie dans mon system de news
partie "titre" qui est en faite une liste de tous les titre des news
partie "detail" qui est en faite le reste des news ... le contenu en clair
ces deux partie sont relié avec des liens automatique qui se trouve au niveau de la partie "titre" sur les titre de news
( ça va vous suivez encore ?? )
le probleme c'est que quand je lance ma page tous le contenu est deja affiché et pour toute les news ... alors que je voudrais que le contenu s'affiche que quand on clique sur le lien automatique et que si par exemple :
on clique sur le lien A ça affiche le contenu A
et dès qu'on clique sur le lien C ça enleve le contenu A pour le remplacer par le contenu C
voila j'espère avoir bien detailler pour que vous comprennez bien ...
je vous file maintenant le code :
Code :
<h2>Les dernieres news</h2>
<?php
mysql_connect("***", "***", "***" );
mysql_select_db("***" );
$donnees_bdd = mysql_query("SELECT * FROM B_news" );
while ($donnees = mysql_fetch_array($donnees_bdd) )
{
?>
<div class="titre">
<?php
echo '<h4><a href="news.php?id=';
echo $donnees['id'];
echo '">';
echo htmlentities($donnees['titre']);
echo '</a><br/></h4>';
?>
<h5><em>Le
<?php echo date('d/m/Y à H\hi', $donnees['timestamp']); ?>
par <?php echo $donnees['pseudo']; ?>.</em><br/></h5>
</div>
<div class="detail">
<?php
if(isset($_GET['id']))
$id = $_GET['id'];
else
$id = 1;
if(isset($id))
{
mysql_query('SELECT * FROM B_news WHERE id='.$id.' LIMIT 1');
?>
<h1><?php echo $donnees['titre']; ?></h1>
<p><span id="categorie"><em>catégorie: <?php echo
$donnees['categ']; ?></em></span><br/>
<?php echo date('d/m/Y à H\hi', $donnees['timestamp']); ?>
par <?php echo $donnees['pseudo']; ?>.<br/><br/>
<?php echo $donnees['contenu']; ?><br/><br/>
<em><?php echo$donnees['source']; ?></em>
</div>
<?php
unset($id);
}
}
mysql_close();
?>
voila et je vous file la structure de ma table pour que vous voyier un peu de ce que je parle :
voili voilou
donc j'ai pensé a du Javascript mais comme je le connais pas du tout j'ai abondonné ...
peut etre aussi a enregistrer le contenu dans une nouveau champ dans ma table et la resortir avec un LIMIT 1 mais je suis aps sur que ça fonctionnera ...
donc voila j'espère que vous avez quelque idée pour me faire décoincer
PS: si je clique quand meme sur les lien automatique ça m'enleve tous sur la page pour me laissez que un "titre" et une notice me disant que la ligne 33 a un probleme "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT 1' at line 1"
euh je sais comment fonctionne une BDD ... mais ça ce n'est pas du resort de la BDD si tu arrive a regler mon probleme avec la BDD dit le moi au plus vite
c'est plutot du resort du JS ou PHP ( encore que je suis pas sur pour le PHP )
aucun rapport avec le php, et encore moins avec le js
le problème viens de ta logique.
ta page actuelle fait exactement ce que tu lui demandes : lister tous le contenu de tes news, en prendre le titre et l'id puis refaire une requete pour tout reprendre ...
ps : et au vues de tes select * laisse moi douter de tes connaissances en sql...
hum hum tu essaye de me rabaissez en disant publiquement que mes connaissance en SQl sont nul ...
peut etre que mes connaissance en SQl sont limiter comparer a toi ( et encore j'en doute ) mais moi au moins je sais lire car ce que le script fait ... ba c'est exactement ce que j'ai envie qu'il fasse ( je l'ai dit plus haut en plus ce que je veut faire )
moi je demandais comment on peut faire apparaitre/disparaitre du texte via un lien automatique ...
et toi tu repond completement hors sujet :
Citation :
aucun rapport avec le php, et encore moins avec le js
le problème viens de ta logique.
ta page actuelle fait exactement ce que tu lui demandes : lister tous le contenu de tes news, en prendre le titre et l'id puis refaire une requete pour tout reprendre ...
et pour info c'est bien du JS qu'il falait et j'ai reussit a faire ce que je voulais ( apparaitre/disparaitre du texte )
et pour en revenir a tes connaissance en SQl tu ferais mieux de les revoir toi aussi car normal que je mette select * puisque j'ai besoin de toute les info de ma table ...
allez pour que tu comprenne le SQL je vais te faire un petit tuto improviser :
SELECT veut dire en language SQl "prendre"
* en SQl veut dire "tous les champs"
en clair :
SELECT * veut dire : Prend moi tous les champs
donc la prochaine fois que tu a envie de rabaissez quelqu'un ... fait un peu plus attention a la personne en face de toi
boubpopsyt eam ==> oui je sais mais je programme pour un site et le webmaster n'est pas là ... et il ne veut pas qu'on modifie les table pendant sont absence donc je m'integre comme je peut
lol le ORDER BY c'est pas mon probleme principal pour le moment ^^
en faite pour la BDD je doit pas y toucher car ça risque de faire buger l'administration ...
donc j'attend mais c'est pas non plus très génant d'avoir ça j'ai connu pire
au hasard :
- le code n'est pas indenté
- la valeur de retour de la seconde requette est ignorée, donc l'appel du coup ne sert à rien
- ton code est surement vulnerable à des injections SQL
- y a des vieux <br /> dans ton code.
- y a plein d'echos qui peuvent être factorisés (tu gache au moins 3 octet par echo en trop si y a pas un accelerateur avec ton php)
et pour ma requete ... je pense que tu peut savoir a quoi elle sert si tu est si bon en programmation
je sais ce qu'elle fait ce que je te dit juste c'est qu'elle sert a rien dans ton code puisque tu n'en récupère pas le résultat...
de plus cette requete est inutile puisque tu as déja les infos avec ta première requete...
oui je suis d'accord que je n'indente jamais mes code et c'est une grave erreur mais je code depuis longtemps et les mauvaise habitude sont malheuresement dur a changer
pour les <br/> et les injection SQl ... ba on va dire que ce n'est pas non plus mon probleme pour le moment car en faite je cherche d'abord a avoir un script qui fonctionne bien et après l'améliorer ( notament sur la securité )
Citation :
KangOl Batchy a écrit :
- le code n'est pas indenté
qu'il commence par ca, je pense qu'il verra mieux d'ou viennent ses erreurs ...
n'essaye pas repeter betement ce que les autre ont dit inteligement stp
pour de ce qui est mon probleme de faire dynamiser ma page j'ai trouver voici mon code :
Code :
<h2>Les dernieres news</h2>
<?php
mysql_connect("***", "***", "***" );
mysql_select_db("***" );
$donnees_bdd = mysql_query("SELECT * FROM B_news" );
while ($donnees = mysql_fetch_array($donnees_bdd) )
<?php echo date('d/m/Y à H\hi', $donnees['timestamp']); ?>
par <?php echo $donnees['pseudo']; ?>.<br/><br/>
<?php echo $donnees['contenu']; ?><br/><br/>
<em><?php echo$donnees['source']; ?></em>
</div>
</div>
<?php
unset($id);
}
}
mysql_close();
?>
( et comme on peut le vois le JS est bien necessaire pour ce probleme )
ce script est encore basique et comporte pas mal de default mais la structure est là ...
juste encore un bug qu'il faut regler qui est assez embettant car en faite c'est toujour le meme detail qui apparait ... c'est bloquer dessus et j'arrive pas a le rendre different en fonction des lien automatique
pour les autre question je vais vous repondre :
Citation :
- y a plein d'echos qui peuvent être factorisés (tu gache au moins 3 octet par echo en trop si y a pas un accelerateur avec ton php)
si tu a bien regarder mon script ces petite erreur sont vite compensé grace a la vitesse incroyable que ce script se réalise pour ce system de news car en faite tous se tien sur une page donc pas d'autre page a charger ce qui n'est pas négligeable
mais je suis d'accord avec toi qu'un bon coup de menage une fois le probleme regler sera pas de refus ^^
Citation :
KangOl yaboc a écrit :
et pour ma requete ... je pense que tu peut savoir a quoi elle sert si tu est si bon en programmation
je sais ce qu'elle fait
ce que je te dit juste c'est qu'elle sert a rien dans ton code puisque tu n'en récupère pas le résultat...
de plus cette requete est inutile puisque tu as déja les infos avec ta première requete...
oui ça je suis d'accord que j'aurais du vous expliquer et d'ailleur sur beaucoup de forum on me fait cette remarque ...
la raison est simple ... cette requete est dans mon script car elle permet de supprimer une notice assez génante ... c'est la seule façon que j'ai trouver pour l'enlever mais ça vous n'auriez pas pu le savoir