erreur aléatoire sql

WRInaute discret
Bonjour,
J'ai aléatoirement une erreur qui apparait sur un site alors qu'en local cela fonctionne parfaitement.
voici l'erreur:( exemple sur la page 10)
"Erreur SQL !
LIMIT 135, 150
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 'LIMIT 135, 150' at line 1"
J'affiche un tableau de résultats que je limite à 15 résultats par page.
$MAX_RESULTS = 15;
les pages suivantes sont proposées avec une numérotation.
A l'aide
Code:
"$i++;

  if ($i==$MAX_RESULTS){break;}

  } // while row

  if ($_SESSION['N'] > $MAX_RESULTS){

    echo "\n<tr>

            <td colspan=\"6\" style=\"text-align: center;\">

              <center>

                <table>

                  <tr>

                    <td>

                      <small>La suite: &nbsp;</small>

                    </td>\n";

    $target = $_SERVER['PHP_SELF'];

    for ($j=1; $j<1+($_SESSION['N'])/$MAX_RESULTS; $j++){

      if (

            (isset($_GET['page']) && ($j==$_GET['page']))

         || (

              ($j==1)

              && (!isset($_GET['page']))

              )

          )

       {

        echo "                         <td><small>$j</small></td>\n";

      }else{

        echo "                         <td><a class=\"tableausuite\" href=\"$target?page=$j#resultats\"> $j </a></td>\n";

      }

    }

    echo "        </tr>

                </table>

              </center>

            </td>

          </tr>";

  }// end if N < MaxResults

merci pour votre aide
 
WRInaute accro
Tu as une erreur SQL et tu nous montres pas le code qui génère cette requête, comment veux-tu qu'on t'aide ?
(Au passage ton code PHP et HTML est vraiment pas terrible)
 
WRInaute passionné
Je ne vois pas comment on peut t'aider avec le code que tu nous donnes... c'est ta requête et les variables récupérées qui sont intéressantes.
 
WRInaute discret
oops désolé
est-ce cela?
Code:
$requete = $requeteGenerale."LIMIT $MAX_RESULTS";

    //$requete = "SELECT id, nom, adresse, ville, arrondissement, codePostal, laitViande, typeOffre FROM ".$TABLE." WHERE $condition ORDER BY nom LIMIT $MAX_RESULTS";

    //echo "<br>REQUETE: ".$requete; /*************/

    $extrait = mysql_query($requete) or die('Erreur SQL !<br>'.$requete.'<br>'.mysql_error());

    $extraitGeneral = mysql_query($requeteGenerale) or die('Erreur SQL !<br>'.$requeteGenerale.'<br>'.mysql_error());

    $N = mysql_num_rows($extraitGeneral);

    $_SESSION['requeteGenerale']=serialize($requeteGenerale);

    $_SESSION['N'] = $N;

    mysql_close();

  }// end if isset passtwo

  if (isset($_GET['page'])){

    $page = $_GET['page'];

    $N = $_SESSION['N'];

    $debut = ($page-1) * $MAX_RESULTS;

    $fin = $debut + $MAX_RESULTS;

    $requeteGenerale = unserialize($_SESSION['requeteGenerale']);

    $db = mysql_connect($HOST,$LOGIN, $PASSWORD);

    mysql_select_db($BD);

    $requete = $requeteGenerale."LIMIT $debut, $fin";

    //echo "<br>REQUETE: ".$requete."<br>";

    $extrait = mysql_query($requete) or die('Erreur SQL !<br>'.$requete.'<br>'.mysql_error());

    mysql_close();

    $_SESSION['requeteGenerale']=serialize($requeteGenerale);
 
WRInaute passionné
C'est très simple, $requeteGenerale est complètement vide... vérifie ta session et l'initialisation de ta variable, sans aucun doute là le soucis.
 
WRInaute discret
Robinson a dit:
C'est très simple, $requeteGenerale est complètement vide... vérifie ta session et l'initialisation de ta variable, sans aucun doute là le soucis.
Merci
Qu'entends tu par "$requeteGenerale est complètement vide"
Pourquoi cette différence de comportement en local / ligne
Pourquoi aléatoirement?
Pour finir cette erreur est apparue depuis ce matin, elle n'est jamais apparue avant.
Serait-il possible que ce soit suite a un dépassement de connexion simultanées?

Merci beaucoup
 
WRInaute passionné
C'est certainement quand certaines conditions sont réunies, à toi de trouver lesquelles pour identifier la "faille".

Sinon si c'est vraiment aléatoire dans les mêmes conditions (en réactualisant la page, ça marche par exemple), vérifie la gestion des sessions, peut-être que le serveur a un soucis à ce niveau.
 
WRInaute discret
Robinson a dit:
C'est certainement quand certaines conditions sont réunies, à toi de trouver lesquelles pour identifier la "faille".

Sinon si c'est vraiment aléatoire dans les mêmes conditions (en réactualisant la page, ça marche par exemple), vérifie la gestion des sessions, peut-être que le serveur a un soucis à ce niveau.
oui en effet en réactualisant la page (f5) ça fonctionne
Serait-il possible que ce soit suite a un dépassement de connexion simultanées? sachant que je suis en mutualisé sur un petit hébergement
 
WRInaute accro
De façon générale, la méthode employée (sauvegarder la requête dans la session pour utilisation ultérieure) me semble être quelque chose à éviter: ça veut dire que si l'utilisateur a deux fenêtres ouverte sur ton site, sur la même page mais avec des paramètres différents, ça va s'emmêler les pinceaux. Il est nettement préférable à mon avis de passer tous les arguments via des URLs ou un POST. Sans parler du fait que les moteurs pourront suivre la pagination, alors que c'est impossible avec ta méthode...

Jacques.
 
WRInaute discret
jcaron a dit:
De façon générale, la méthode employée (sauvegarder la requête dans la session pour utilisation ultérieure) me semble être quelque chose à éviter: ça veut dire que si l'utilisateur a deux fenêtres ouverte sur ton site, sur la même page mais avec des paramètres différents, ça va s'emmêler les pinceaux. Il est nettement préférable à mon avis de passer tous les arguments via des URLs ou un POST. Sans parler du fait que les moteurs pourront suivre la pagination, alors que c'est impossible avec ta méthode...

Jacques.
Le problème des moteurs de recherche a été contourné avec une page qui contient tous les resultats
 
Discussions similaires
Haut