Probleme de news

Eléphanteau du PHP | 13 Messages

10 nov. 2010, 00:05

Bonjour, m'étant mis a apprendre php et Mysqli il n'y a fort peu de temps, et que j'ai décidé de m'améliorer rapidement, je recontre (forcement) quelques probleme/
Ce soir, c'est donc un probleme de news.
Sur ma page d'acceuil, mes news se chargaient tres bien jusqu'au moment ou j'ai décidé d'ajouter un bouton page suivante/précédente.
La ou je suis "fiere" c'est que les boutons marchent (il y en a un que je doit dire copier/coller d'un code Javascript.) mais par contre, les news ne s'affichent plus, pouvez vous m'aider s'il vous plait .
Le code :
<!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" xml:lang="fr" >
	<head>
<meta name="google-site-verification" content="RIwpVAT50FUDu7xOtfVKyNrXHOSjQ4nd6xr2W0T3130" />
    <title>Tuto du Web</title>
	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="css
/template.css" />
		
	</head>
	<body>
	<?php
$serveur = "localhost";
$user = "root";
$password = "";
$bdd = "site";
//création du message d'erreur.
function my_error($errno, $error)
{
$message = "Erreur Mysql $errno<br />$error";
trigger_error($message, E_USER_ERROR);
}

$sql = new mysqli($serveur, $user, $password, $bdd) or my_error(mysqli_connect_errno(),mysqli_connect_error());
$req_limit = $sql->prepare('SELECT ID FROM news');
$req_limit->store_result();
$nbr_message = ($req_limit->num_rows);
$limit_page ='10';
$nombre_pages = $nbr_messages/$limit_page;
$nbr_total = ceil($nombres_pages);
$nbr_total -= 1;
if(isset($_GET['nombre_pages']) or $_GET['nombre_pages'] !='0')
{
$limit_mysql = $limit_page * $_GET['nombre_pages'];
}
else
{
$limit_mysql = '0';
}
?>
		<div id="en_tete">
		</div>
		<div id="menu_sup">
		<div class="element_menuSup">
		<?php include("menusup.php");?>
		</div>
		</div>
		<div id="menu">
		<div class="element_menu">
		<?php include("menu.php");?>
		</div>
		</div>

		<div id="corps">
<?php


if($nbr_total !='0' and empty($_GET['numero_page']))
{
echo '<a href="index.php?numero_page=1">Page Suivante</a>';
}
elseif($nbr_total !='0' and isset($_GET['numero_page']) and $_GET['numero_page'] < $nbr_total)
{
$suivant = $_GET['numero_page'] + 1;
echo '<a href="index.php?numero_page='.$suivant.'">Page Suivante</a>';
print '&nbsp;&nbsp;<a href="javascript: history.back();">Page précédente</a>';
}
elseif($nbr_total != '0' and isset($_GET['numero_page']) and $_GET['numero_page'] >= $nbr_total)
{
echo '<a href="javascript: history.back();">Page Precedente</a>';
}
$stmt = $sql->prepare("SELECT ID, Titre, Contenu, Auteur, DATE_FORMAT(Date, \'%d/%m/%Y\') AS date_fr FROM news ORDER BY Date DESC LIMIT $limit_mysql, $limit_page");
$stmt->bind_result($ID, $Titre, $Contenu, $Auteur, $date_fr);
$stmt->execute() or my_error($stmt->errno,$stmt->error);

while($stmt->fetch())
{
echo '<p class="paragraphe">' . $Titre . "<br />\tLe : ". $date . '<br />' . nl2br($Contenu) . '<br /><span class="Rouge">' . $Auteur . '</span></p>';
}

?>
		</div>

		<div id="footer">
		<?php include("footer.php");?>
		</div>
	</body>
</html>
Merci
le message d'erreur est le suivant :
Fatal error: Call to a member function bind_result() on a non-object in C:\wamp\www\TutoSite\Savesitephp\index.php on line 74

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

10 nov. 2010, 01:06

salut,

c'est parce que la ligne précédente doit retourner false
<?php
$stmt = $sql->prepare("SELECT ID, Titre, Contenu, Auteur, DATE_FORMAT(Date, \'%d/%m/%Y\') AS date_fr FROM news ORDER BY Date DESC LIMIT $limit_mysql, $limit_page");
?>
pour être sur fait un var_dump($stmt); après le prépare.
si c'est le cas tu devrais avoir un message d'erreur avec $mysqli->error
par exemple
<?php
$stmt = $sql->prepare("SELECT ID, Titre, Contenu, Auteur, DATE_FORMAT(Date, \'%d/%m/%Y\') AS date_fr FROM news ORDER BY Date DESC LIMIT $limit_mysql, $limit_page");
if ($stmt === false) {
echo $mysqli->error;
}
?>
@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 13 Messages

10 nov. 2010, 01:25

Ok,je vais essayer mais je n'ai pas mon pc pour le moment.
Si il y a bien un erreur.
Comment cela ce fait t'il??
Je ne vois pas comment resoudre ce probleme... Je ne peux que le "detecter" pour le moment...

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

10 nov. 2010, 01:28

Tu peut mettre la requête dans une variable et l'afficher pour être certain de la requête voir la tester avec phpmyadmin ou une console mysql

@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 13 Messages

10 nov. 2010, 17:19

Escusez-moi, j'ai trouver d'ou venait les erreurs :
Betes erreur de concentration (un "s" a une variable qui n'en a pas ect...)

Merci
Par contre je n'ai pas résolu le problème de la date... ce qui est très étrange.