[PHP] Probleme pour dynamiser ma page avec des liens automatique

yaboc

Nouveau membre
salut a tous !

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 ?? :pt1cable: )

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 :fou: 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 :

[cpp]<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();
?>[/cpp]

voila et je vous file la structure de ma table pour que vous voyier un peu de ce que je parle :
Vous devez être connecté pour voir les images.


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 :D

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"
 

KangOl

Grand Maître
faudrait peut etre penser a apprendre comment fonctionne une base de donnée...
et accessoirement aussi l'algorithmique ...
 

yaboc

Nouveau membre
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 )
 

KangOl

Grand Maître
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...
 

boub popsyteam

Grand Maître
Et puis le latin1_swedish machin ça me parrait louche pour un site en Français :o
 

yaboc

Nouveau membre
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 :

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 ...

:non:

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
 

yaboc

Nouveau membre
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 :D
 

boub popsyteam

Grand Maître
Oui c'est sur enfin c pas au webmaster à voir ça vu que vu ce que tu fais c'est toi là :ange:

C'est a l'admin BDD :o

(et sinon l'idée de kangol d'ajouter un ORDER BY était bonne AMHA même si indépendnte du problème de base)
 

yaboc

Nouveau membre
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 :D j'ai connu pire
 

KangOl

Grand Maître
je m'excuse mais j'avais mal lu ton code...


c'est encore pire que ce je ne pensait [:pingouino]
elle sert a quoi la seconde requete ?

 

yaboc

Nouveau membre
hum
si tu repond sur ce post juste pour rien dire je pense que tu peut te dispenser de repondre ;)

et pour ma requete ... je pense que tu peut savoir a quoi elle sert si tu est si bon en programmation
 

marsien

Grand Maître
hum
si tu repond sur ce post juste pour rien dire je pense que tu peut te dispenser de repondre ;)

et pour ma requete ... je pense que tu peut savoir a quoi elle sert si tu est si bon en programmation
[:marsien]
 

zeb

Modérateur
Pas de bataille rangée, s'il vous plaît, ni de prise de position.

yaboc> si tu as une solution, publie-la stp, au risque de la voir se faire critiquer. (Mais ce sera pour son bien)

KangOl> Oufti! Ce que tu es cinglant sur ce coup là.
 

batchy

Grand Maître
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)
 

KangOl

Grand Maître

qu'il commence par ca, je pense qu'il verra mieux d'ou viennent ses erreurs ...



 

KangOl

Grand Maître
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...
 

yaboc

Nouveau membre
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é ;) )

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 :

[cpp]<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 '"><a href="javascript: switchInfoPersos();">';
echo htmlentities($donnees['titre']);
echo '</a></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.'');

?>
<script type="text/javascript">
<!-- fonction pour faire disparaitre le texte
function switchInfoPersos()
{
divInfo = document.getElementById('divacachers');

if (divInfo.style.display == 'none')
divInfo.style.display = 'block';
else
divInfo.style.display = 'none';

}
-->
</script>
<div id="divacachers" style="display: none;background-color:#EEF2F7;border:1px solid #000000;padding:5px;">
<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>
</div>

<?php
unset($id);
}
}
mysql_close();
?>[/cpp]

( 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 :fou:

pour les autre question je vais vous repondre :

- 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 ^^

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 ;)
 

marsien

Grand Maître
Je ne sais pas si je dois en rire ou en pleurer finalement. C'est affligeant de voir des choses pareilles :/
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 128
Messages
6 717 845
Membres
1 586 373
Dernier membre
https://forum.tomshardwar
Partager cette page
Haut