par
sam01 » 09 mai 2016, 20:36
Bonjour,
j'ai le message suivant :
Code : Tout sélectionner
[09-May-2016 02:08:03 UTC] PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '-10, 10' at line 6' in /home/swapnfly/public_html/liste.php:1627
Stack trace:
#0 /home/swapnfly/public_html/liste.php(1627): PDOStatement->execute(Array)
#1 {main}
thrown in /home/swapnfly/public_html/liste.php on line 1627
sur cette ligne
voici une plus grande partie du code
Code : Tout sélectionner
/* Récupération du numéro de la page courante depuis l'URL avec la méthode GET */
if(!isset($_GET['p']) || !is_numeric($_GET['p']) ) // si $_GET['p'] n'existe pas OU $_GET['p'] n'est pas un nombre (petite sécurité supplémentaire)
$current = 1; // la page courante devient 1
else
{
$page = intval($_GET['p']); // stockage de la valeur entière uniquement
if ($page < 1) $current=1; // cas où le numéro de page est inférieure 1 : on affecte 1 à la page courante
elseif ($page > $countp) $current=$countp; //cas où le numéro de page est supérieur au nombre total de pages : on affecte le numéro de la dernière page à la page courante
else $current=$page; // sinon la page courante est bien celle indiquée dans l'URL
}
/* $start est la valeur de départ du LIMIT dans notre requête SQL (est fonction de la page courante) */
$start = ($current * $epp - $epp);
$qry = "SELECT p_title FROM posts LIMIT $start, $epp";
// on sélectionne tous les champs nécessaire à l'affichage
$sqla = $db->prepare("SELECT A.id_adh, A.id_vil, B.id_vil, B.id_pay, B.ville_fr, C.id_pay, C.id_con, C.pays_".$lang.", D.cont_".$lang."
FROM flatforswap_adherent A
INNER JOIN flatforswap_ville B ON A.id_vil = B.id_vil
INNER JOIN flatforswap_pays C ON B.id_pay = C.id_pay
INNER JOIN flatforswap_continent D ON D.id_con = C.id_con
WHERE D.cont_".$lang."=? and C.pays_".$lang."=? AND A.valide =? ORDER BY A.id_adh ASC limit $start, $epp");
$sqla->execute(array($continent, $ad_pays, $valeur_valide));
}
Merci d'avance pour votre aide.
Bonjour,
j'ai le message suivant :
[code]
[09-May-2016 02:08:03 UTC] PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '-10, 10' at line 6' in /home/swapnfly/public_html/liste.php:1627
Stack trace:
#0 /home/swapnfly/public_html/liste.php(1627): PDOStatement->execute(Array)
#1 {main}
thrown in /home/swapnfly/public_html/liste.php on line 1627
[/code]
sur cette ligne
[code]
$sqla->execute(array($continent, $ad_pays, $valeur_valide));
[/code]
voici une plus grande partie du code
[code]
/* Récupération du numéro de la page courante depuis l'URL avec la méthode GET */
if(!isset($_GET['p']) || !is_numeric($_GET['p']) ) // si $_GET['p'] n'existe pas OU $_GET['p'] n'est pas un nombre (petite sécurité supplémentaire)
$current = 1; // la page courante devient 1
else
{
$page = intval($_GET['p']); // stockage de la valeur entière uniquement
if ($page < 1) $current=1; // cas où le numéro de page est inférieure 1 : on affecte 1 à la page courante
elseif ($page > $countp) $current=$countp; //cas où le numéro de page est supérieur au nombre total de pages : on affecte le numéro de la dernière page à la page courante
else $current=$page; // sinon la page courante est bien celle indiquée dans l'URL
}
/* $start est la valeur de départ du LIMIT dans notre requête SQL (est fonction de la page courante) */
$start = ($current * $epp - $epp);
$qry = "SELECT p_title FROM posts LIMIT $start, $epp";
// on sélectionne tous les champs nécessaire à l'affichage
$sqla = $db->prepare("SELECT A.id_adh, A.id_vil, B.id_vil, B.id_pay, B.ville_fr, C.id_pay, C.id_con, C.pays_".$lang.", D.cont_".$lang."
FROM flatforswap_adherent A
INNER JOIN flatforswap_ville B ON A.id_vil = B.id_vil
INNER JOIN flatforswap_pays C ON B.id_pay = C.id_pay
INNER JOIN flatforswap_continent D ON D.id_con = C.id_con
WHERE D.cont_".$lang."=? and C.pays_".$lang."=? AND A.valide =? ORDER BY A.id_adh ASC limit $start, $epp");
$sqla->execute(array($continent, $ad_pays, $valeur_valide));
}
[/code]
Merci d'avance pour votre aide.