Page 1 sur 1

Automatiser un script

Posté : 27 janv. 2007, 20:36
par pollux007
Bonjour,
j'ai réaliser cette requête pour récupérer le nombre de réponses dans forum
<?php

//connexion

$connexion=mysql_connect('localhost','root','') or die ('erreur de connexion');

$ok=mysql_select_db("sessions",$connexion);

//requête

$sql = 'SELECT topic_replies FROM phpbb_topics WHERE topic_id=3 LIMIT 0, 30';

//exécution de la requête

$req=mysql_query($sql);

//recuperation de la valeur

while($data = mysql_fetch_assoc($req))

    {

    // on affiche les informations de l'enregistrement en cours

echo $data['topic_replies'];

    }

?>
Et je voudrais savoir s'il est possible d'automatiser ce scipt pour éviter de dupliquer ce fichier dans mon serveur pour récupérer les nombre de réponses pour les différents sujets.

Merci

Posté : 27 janv. 2007, 20:41
par HD
je ne sais pas si j ai bien compris ta question mais tu peux mettre
$sql = 'SELECT topic_replies FROM phpbb_topics WHERE topic_id=$topicid LIMIT 0, 30';
et mettre ce code dans un fichier "compter-reponses.php" par exemple
puis dans chaque forum on met
$topicid = xx ;
include ("compter-reponses.php");
:?:

Posté : 27 janv. 2007, 21:07
par pollux007
Merci de ta réponse aussi rapide.
Oui en fait je voudrais recuperer le nombres de réponses dans un topic de mon forum pour l'afficher dans ma page html.
Du genre :
Laisser un commentaire(16 réponses)

Donc dans mon code html j'écris:

Code : Tout sélectionner

Laisser un commentaire sur l'article.</a> ( <?php include("comentaires_morales.php")?> commentaires )
Ce qui m'oblige a dupliquer et renommer mon fichier commentaires.
Donc je voudrais automatiser tout ca en ayant q'un seul fichier.

Donc si j'ai bien compris ta réponse il faut attribuer un registre à topic_id et le déclarer dans ma page html?

Posté : 27 janv. 2007, 21:11
par HD
donc tu declare une variable par exemple $topicid dans le fichier parent (qui change à chaque fois) puis le fichier que tu vas inclure va utiliser cette variable pour générer un resultat "personnalisé"

Posté : 27 janv. 2007, 21:32
par pollux007
Donc voici mon code php:
<?php

//connexion

$connexion=mysql_connect('localhost','root','') or die ('erreur de connexion');

$ok=mysql_select_db("sessions",$connexion);

//requête

$sql = 'SELECT topic_replies FROM phpbb_topics WHERE topic_id=$topicid LIMIT 0, 30';

//exécution de la requête

$req=mysql_query($sql);

//recuperation de la valeur

while($data = mysql_fetch_assoc($req))

    {

    // on affiche les informations de l'enregistrement en cours

echo $data['topic_replies'];

    }

?>
Et mon code html

Code : Tout sélectionner

Laisser un commentaire sur l'article. ( <?php $topicid=34; include("comentaires.php"); ?> commentaires )
Et j'ai ce message d'erreur:

Laisser un commentaire sur l'article. (
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /var/www/vhost/sessions.fr/home/html/comentaires.php on line 23
commentaires )

Posté : 27 janv. 2007, 21:35
par HD
$sql = "SELECT topic_replies FROM phpbb_topics WHERE topic_id='$topicid' LIMIT 0, 30";

Posté : 27 janv. 2007, 21:36
par HD
stp edite ton message précédent et met xxx à la place de tes parametres de connexion (login et mot de passe) :
$connexion=mysql_connect

Posté : 27 janv. 2007, 21:51
par pollux007
C'est bizare j'ai cette suite a l'ajout des guillemets dans ma requete
j'ai encore cette erreur:

Code : Tout sélectionner

Parse error: parse error, unexpected T_VARIABLE in /var/www/vhost/sessions.fr/home/html/comentaires.php on line 15
Pourtant j'ai bien attribue une valeur a ma variable topicid.

Posté : 27 janv. 2007, 22:00
par HD
montre nous ton nouveau code stp en precisant à quoi correspond la ligne 15

Posté : 27 janv. 2007, 22:03
par pollux007
Voici mon nouveau code:
//requête

$sql = 'SELECT topic_replies FROM phpbb_topics WHERE topic_id='$topicid' LIMIT 0, 30';

//exécution de la requête

$req=mysql_query($sql);

//recuperation de la valeur

while($data = mysql_fetch_assoc($req))

    {

    // on affiche les informations de l'enregistrement en cours

echo $data['topic_replies'];

    }

?>
J'ai bien rajouté les guillemets pour la varaible topicid et c'est tout

Posté : 27 janv. 2007, 22:07
par HD
avant SELECT et après 30 il faut mettre des double guillemets "
sinon les variables ne sont pas interprétées

Posté : 27 janv. 2007, 22:16
par Ajoloca
Bonjour,

Pour éviter ce genre de PB il est fortement conseillé de bien séparer les variables PHP du reste de la requête en se servant de concaténations.
$sql = "SELECT topic_replies FROM phpbb_topics WHERE topic_id='" . $topicid. "' LIMIT 0, 30"; 

Posté : 27 janv. 2007, 22:18
par pollux007
C'est bon ca marche!

En tout cas merci de votre aide.