PDA

Voir la version complète : Besoin d'aide


DiDzI
13/04/2007, 19h12
Bonjour,

J'essaye de crée un ptit module pour vBulletin qui va chercher des informations dans un autre script en php.

Sur une page en dehors de vBulletin cela marche a merveille

Voici le script en question :


echo "<table>"
<?php
$link = mysql_connect('localhost', '', '');
if (!$link) {
die('Impossible de se connecter : ' . mysql_error());
}

$db_selected = mysql_select_db('phpraid', $link);
if (!$db_selected) {
die ('Impossible de sélectionner la base de données : ' . mysql_error());
}


$query = "SELECT * FROM phpraider_raid";
$result = mysql_query($query) or die("Erreur");
while ($ligne = mysql_fetch_row($result))

{
$heure = $ligne[4] - 7200;
echo "<tr><td>" . $ligne[0] . " heure: " . date('H,i,d,m,y',$heure) . "</td></tr>";
}


?>
echo "</table>"
Maintenant, je voudrais crée un module avec ce script quand, je crée le module que je colle mon code et que je lui dis qu'il doit être lance dans forumhome_start il m'affiche le résultat tout en haut de la page.

Hors moi, je souhaiterais qu'il affiche cela en dessous de la navbar.

Et c'est la que mon problème ce trouve, je ne vois pas comment faire cela :s

Si des gens save m'aide ce serait sympas ^^

MtoR
13/04/2007, 19h50
Il faut que tu fasses un hook sur forumhome et mettre comme code plutôt :


$contenu = "<table>";

$link = mysql_connect('localhost', '', '');
if (!$link) {
die('Impossible de se connecter : ' . mysql_error());
}

$db_selected = mysql_select_db('phpraid', $link);
if (!$db_selected) {
die ('Impossible de sélectionner la base de données : ' . mysql_error());
}


$query = "SELECT * FROM phpraider_raid";
$result = mysql_query($query) or die("Erreur");
while ($ligne = mysql_fetch_row($result))

{
$heure = $ligne[4] - 7200;
$contenu. = "<tr><td>" . $ligne[0] . " heure: " . date('H,i,d,m,y',$heure) . "</td></tr>";
}

$contenu .= "</table>"

$navbar .= $contenu


Ceci devrait fonctionner et faire l'affaire

Par contre là tu n'utilises pas du tout les fonctions d'accès base de données et de génération de date vbulletin. Est-ce voulu ? (ce n'est pas forcément tip top mais bon ...)

DiDzI
13/04/2007, 19h57
Merci mtor

Oui, pour le moment c'est voulu,

Sinon quand je test ton code j'ai une erreur type :


Parse error: parse error, unexpected '=' in /home/murmures/public_html/forum.php(63) : eval()'d code on line 72

DiDzI
13/04/2007, 21h22
J'ai résolu l'erreur, encore merci Mtor

Seulement, il me reste encore un problème, il n'affiche que 1 record hors, j'en ai 2 pour le moment. Tu vois pas une solution ?

MtoR
13/04/2007, 22h09
Essayes en utilisant mysql_fetch_array au lieu de mysql_fetch_row

Fred
13/04/2007, 23h58
il faut while ton result pour afficher plusieur resultat
je suis pas trop en etat de te faire ca apré ma soiré un peu trop arosé mais si personne a repondu d'ici demain je te ferai ca ;)

MtoR
14/04/2007, 00h11
Hum Fred, je pense que tu n'as pas les yeux en face des trous ;)

J'ai combien de doigts ? llol

Il a un while déjà sur son résultat. Essayes de lancer ta requète dans phpmyadmin par exemple pour voir ce qu'il te renvoit comme résultats (1 ou 2).

P.S: pour l'histoire du remplacement mysql_fetch_row <> mysql_fetch_array c'est une erreur de ma part

DiDzI
14/04/2007, 00h59
Je viens de test dans phpmyadmin, il m'affiche bien tout mes résultats :s

DiDzI
14/04/2007, 01h04
Pour résumé donc, j'ai prit ton code


$link = mysql_connect('localhost', 'root', 'sql280983');
if (!$link) {
die('Impossible de se connecter : ' . mysql_error());
}

$db_selected = mysql_select_db('phpraid', $link);
if (!$db_selected) {
die ('Impossible de sélectionner la base de données : ' . mysql_error());
}


$query = "SELECT * FROM phpraider_raid order by raid_id ASC limit 0,5";
$result = mysql_query($query) or die("Erreur");
while ($ligne = mysql_fetch_array($result))

{
$heure = $ligne[4] - 7200;
$contenu = "<br>" . $ligne[2] . " heure: " . date('H,i,d,m,y',$heure) . "<br><br>";
}


Que j'ai mis entre Hook au niveau du forumhome

Puis dans le template forumhome en dessous de $navbar, j'ai mis $contenu

La il m'affiche bien le record mais que 1 seul :s hors j'en ai 3

MtoR
14/04/2007, 08h48
ah bah non la tu n'as pas pris tout mon code vu ce que tu as mis dans le message précédent.

Si le code que tu as posté dans ton dernier message est celui que tu as mis dans le hook c'est normal que çà ne marche pas !!

Regarde bien mon message, dans le code, j'utilise des
$contenu .=Donc à chaque passage dans la boucle il vient rajouter dans le résultat du contenu en plus (alors que ton code l'écrase). En plus j'avais tout fait pour que tu n'ais même pas de modification de templates à faire avec la ligne de la fin:
$navbar .= $contenu;Donc reprends le code que j'ai noté et çà va marcher !!

DiDzI
14/04/2007, 10h17
Mtor quand, je reprend ton code comme ça


$link = mysql_connect('localhost', 'root', 'sql280983');
if (!$link) {
die('Impossible de se connecter : ' . mysql_error());
}

$db_selected = mysql_select_db('phpraid', $link);
if (!$db_selected) {
die ('Impossible de sélectionner la base de données : ' . mysql_error());
}


$query = "SELECT * FROM phpraider_raid order by raid_id ASC limit 0,5";
$result = mysql_query($query) or die("Erreur");
while($ligne = mysql_fetch_array($result))
{
$heure = $ligne[4] - 7200;
$contenu. = "<br>" . $ligne[2] . " Départ à " . date('H:i - d/m/y',$heure) . "<br><br>";
}

$navbar .= $contenu


J'ai une erreur :


Parse error: parse error, unexpected '=' in /home/murmures/public_html/forum.php(63) : eval()'d code on line 69

MtoR
14/04/2007, 10h40
Est-ce que tu l'as bien mis en hook "forumhome" et pas "forumhome_start" ?

Tiens d'ailleurs dans mon code, remet ton mysqll_fetch_row sinon ca ne marchera pas avec la syntaxe $ligne[indice] et essayes de voir si ca vient pas de là :)

DiDzI
14/04/2007, 11h24
ok, je test ^^

DiDzI
14/04/2007, 11h28
Dans les hook, je ne vois pas "forumhome" seul

MtoR
14/04/2007, 11h53
Oui pardon c'est forumhome_complete