Script de pagination
le 23/06/2010 à 13:39
abkm
Bonjour, ou rebonjour.
Voila, un souci sur un script de pagination qui fontionne bien en locale et quand J'ai uploder sur mon serveur on m'affiche l'erreur suivant
Erreur : 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 'FROM news ORDER BY id ASC limit 0,2' at line 1 J'ai passé pas mal de temps dessus, mais je pique sur cette erreur.
S'il vous plai pourriez-vous m'aider. Merci d'avance!
Ben ta requête SQL à une erreur de syntaxe.
Montre nous le code qui la génére.
le 23/06/2010 à 16:06
abkm
OK OK merci d'avance voila le code
<?php
//=========================================
// includes du fichier fonctions
//=========================================
require 'fonctions.php';
//=========================================
// information pour la connection à le DB
//=========================================
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'basedn';
//=========================================
// initialisation des variables
//=========================================
// on va afficher 2 résultats par page.
$nombre = 2;
// si limite n'existe pas on l'initialise à zéro
if (!$limite) $limite = 0;
// on cherche le nom de la page.
$path_parts = pathinfo($_SERVER['PHP_SELF']);
$page = $path_parts["basename"];
//=========================================
// connection à la DB
//=========================================
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());
//=========================================
// requête SQL qui compte le nombre total
// d'enregistrements dans la table.
//=========================================
$select = 'SELECT * FROM news';
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
$row = mysql_fetch_row($result);
$total = $row[0];
//=========================================
// vérifier la validité de notre variable
// $limite;
//=========================================
$verifLimite= verifLimite($limite,$total,$nombre);
// si la limite passée n'est pas valide on la remet à zéro
if(!$verifLimite) {
$limite = 0;
}
//=========================================
// requête SQL qui ne prend que le nombre
// d'enregistrement necessaire à l'affichage.
//=========================================
$select = 'select titre,contenu FROM
news ORDER BY id ASC limit '.$limite.','.$nombre;
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
//=========================================
// si on a récupéré un resultat on l'affiche.
//=========================================
if($total) {
// début du tableau
echo '<table class="tabcentre" align="center"'."\n";
// première ligne on affiche les titres de colonnes
echo '<tr>';
echo '<td align="center" bgcolor="#D6E1FA"><b>titre</b></td>';
echo '<td align="center" bgcolor="#D6E1FA"><b>contenu</b></td>';
echo '</tr>'."\n";
// lecture et affichage des résultats sur 2 colonnes
while($row = mysql_fetch_array($result)) {
echo '<tr>';
echo '<td class="winxpv" bgcolor="#e1ebf4">'.$row['titre'].'</td>';
echo '<td class="winxpv" bgcolor="#e1ebf4">'.$row['contenu'].'</td>';
echo '</tr>'."\n";
}
echo '</table>'."\n";
}
else echo 'Pas d\'enregistrements dans cette table...';
mysql_free_result($result);
//=========================================
// si le nombre d'enregistrement à afficher
// est plus grand que $nombre
//=========================================
if($total > $nombre) {
// affichage des liens vers les pages
affichePages($nombre,$page,$total);
// affichage des boutons
displayNextPreviousButtons($limite,$total,$nombre,$page);
}
?>
Tu veux ordonner tes résultats par l'identifiant mais tu ne le selectionne pas donc ta requête plante
Pour moi, ce n'est pas la raison.
abkm, es tu sur de nous montrer le code qui plante ?
Au début, je pensais que ca chiait à cause du retour chariot, mais j'ai testé ton code (surtout la partie du select sql) :
<?php
define ('SQL_HOST', '***');
define ('SQL_USER', '***');
define ('SQL_PWD', '***');
define ('SQL_DATA', '***');
$link = mysql_connect (SQL_HOST,SQL_USER,SQL_PWD) or die ('Erreur : '.mysql_error() );
mysql_select_db(SQL_DATA) or die ('Erreur :'.mysql_error());
$limite = 0;
$nombre = 2;
$select = 'select titre,contenu
FROM news ORDER BY id ASC limit '.$limite.','.$nombre;
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error());
?>
Mais je n'ai aucune erreur sur ce code.
le 24/06/2010 à 11:53
abkm
Merci d'avance comme je l'est bien signifier le code marche correctement en local , mais ne marche pas une foi que j'envoie sur mon serveur et l'erreur c'est ceci
Erreur : 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 'FROM news ORDER BY id ASC limit 0,2' at line 1
Es tu sur de bien d'executer ce code la sur ton serveur ?
Quelles sont tes versions de php / mysql sur ton serveur ?
Ecrire un message
Votre message vient d'être créé avec succès.
BB-Code
Pour insérer une URL clickable
Pour insérer une adresse E-mail
Pour annoter
Pour écrire du code
Pour faire un lien vers une fonction PHP
Pour écrire du texte préformaté
Pour écrire du texte en gras
Pour écrire du texte en italique
Pour écrire du texte souligné
Pour écrire du texte barré
Pour écrire un titre principal
Pour écrire un titre secondaire
Pour écrire une liste
Smiley
:bond:
:boxe:
:bsmile:
:bump:
:clap:
:coeur:
:cool:
:cry:
:eek:
:evil:
:fleur:
:fou2:
:fou:
:grin:
:grrr:
:hammer:
:hippy:
:hum:
:idee2:
:idee:
:kdo:
:king:
:ko:
:lol:
:love2:
:love:
:mad:
:maitre:
:noel:
:oops:
:raa:
:razz:
:roll:
:sad:
:skull:
:smile:
:timide:
:trink:
:vice:
:vomi:
:wink:
:zzz: