PHP Fatal error

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : PHP Fatal error

Re: PHP Fatal error

par sam01 » 13 mai 2016, 14:12

Ok, je vais essayer de mettre des traces.

Re: PHP Fatal error

par Spols » 13 mai 2016, 08:50

alors cherche pourquoi $start est égal à -10, sans connaitre tes input je sais pas t'aider mais le problème me semble venir de là.
si $start est ègale à -10 => $current = 0 => soit $total = 0 soit $_GET['p'] = 0 (me semble impossible)

Ajoute des echo aprés assignation de tes variables afin d'en vérifier les valeurs

Re: PHP Fatal error

par sam01 » 12 mai 2016, 20:12

Bonjour,

pourtant elle est bien définie :

Code : Tout sélectionner

$total = $row[0]; /* Déclaration des variables */ $epp = 10; // nombre d'entrées à afficher par page (entries per page) $countp = ceil($total/$epp); // calcul du nombre de pages $countp (on arrondit à l'entier supérieur avec la fonction ceil() ) /* 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);

Re: PHP Fatal error

par Spols » 10 mai 2016, 16:55

à mon avis $countp n'est pas défini

Re: PHP Fatal error

par sam01 » 10 mai 2016, 16:37

Salut, merci pour ton aide.
Mais je ne parviens à savoir d'où ça vient exactement...

Re: PHP Fatal error

par or 1 » 09 mai 2016, 21:06

near '-10, 10'
j'imagine que c'est le limit, et que commencer par -10, mariadb n'aime pas trop.

PHP Fatal error

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

Code : Tout sélectionner

$sqla->execute(array($continent, $ad_pays, $valeur_valide));
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.