You have an error in your SQL syntax

Petit nouveau ! | 6 Messages

11 janv. 2008, 17:27

Bonjour,
J'installe un script de moteurs de recherche interne...
Il fonctionne parfaitement.
Le souci:
Mon site fonctionne en include pour les pages de contenu et je voudrais que les résultats de la recherches s'affichent également en includes dans ma page...
Au départ j'ai cette url pour renvoyer à la page de résultats de la recherche:
$PageResultats = "http://www.mondomaine.com/mpi/resultats.php";
donc, je le change en :
$PageResultats = "http://www.mondomaine.com/accueil.php?page=mpi/resultats.php";
Mais là il m'affiche dans le include :

Code : Tout sélectionner

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 '-10,10' at line 1
Pourriez vous m'expliquer comment résoudre mon souci?
Merci beaucoup d'avance :)

Mac

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

ViPHP
ViPHP | 4039 Messages

11 janv. 2008, 17:30

c'est à dire que, sans la requête, ça va être dur..
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Petit nouveau ! | 6 Messages

11 janv. 2008, 17:42

Je ne suis pas très fort en php.

J'imagine que la requête don tu parles, elle est dans la page du formulaire à remplir pour lancer la recherche?
Si c'est bien ça, voili voilou:
<?php require("mpi/parametres.php"); ?>
<form method="post"  action='<?php echo "$PageResultats" ?>'>
<center>
 <input type="text" maxLength="50" size="10" name="recherche" value="Recherche">
 <input type="submit" name="value" value="Go!">
 </form>
JE precise donc que quand j'utilise le script tel quel, ça fonctionne nickel, mais je n'arrive pas à faure apparaitre la page de résultat en include dans mon site.

Merci à toi
Mac

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

ViPHP
ViPHP | 4039 Messages

11 janv. 2008, 17:53

Dans ce cas, ça va être plus dur...

Ce que je peux dire c'est que changer l'adresse comme ceci:

Code : Tout sélectionner

$PageResultats = "http://www.mondomaine.com/accueil.php?page=mpi/resultats.php";
C'est impossible. Tu ne peux pas intégrer une page comme ça dans ta page.

Le plus simple, si tu t'y connais un peu en html, c'est de mettre le lien vers la page resultats.php dans un iframe la ou tu le souhaites.

Quand je parlais de requête, il s'agit de requêtes SQL créer par ton script de recherche, pour parcourir ta base de données.

Pour avoir une meilleure idée de ton cas, tu peux me décrire ton site ? si c'est toi qui l'a fait, ce que tu utilises, tout ça.. on verra tout de suite mieux comment on pourra t'orienter.
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Petit nouveau ! | 6 Messages

11 janv. 2008, 18:05

En fait mon site est en php avec des includes, notament pour appeler les contenus...
Je mets le lien, mais si vous considérez que c'est de la pub, dites le moi, je le retirerais...

http://www.frequenceplusfm.com

En fait j'utilise php assez basiquement, avec des scripts, notament pour le forum et les blogs.

Et maintenant ce script pour le moteur de recherche interne:
http://moteur.pcinfo.fr/

Désolé, les requêtes sql, je ne sais pas où les chercher, ni à quoi ça ressemble...
Je ne t'aide pas beaucoup, désolé

Concernant les iframe, c'est effectivement une idée, mais j'aimerais autant faire quelques chose de propre de bout en bout...
Merci pour ton aide

Mac

EDIT:

Je crois que j'ai trouvé ce que tu me demande:



require('inc/parametres.php');
require('inc/perso_affichage.php');
$page = isset($_GET['page']) ? intval($_GET['page']) : 1;
$debut = $NbMax * ($page - 1);
mysql_connect($Host, $Login, $Pass) or  die("<br><br><p><center><table width=\"70%\" bgcolor=\"#990000\" border=\"0\" cellspacing=\"0\" cellpadding=\"1\"><tr><td><center><h1>Connexion au serveur <big><u>\"$Host\"</u></big> impossible<br>Veuillez contactez le webmaster pour lui signaler le problème</h1>
											</td></tr></table><p></p><p>&nbsp;</p></center></td></tr>");										
mysql_select_db($Database);
if (isset($_POST['recherche'])) {
    $Q = strtolower($_POST['recherche']);
    $tab = preg_split('~[\s[:punct:]]~', preg_replace('~\b\S{1,3}\b~', ' ', $Q), -1, PREG_SPLIT_NO_EMPTY);
    $nb = count($tab);
    if (!$nb) {
        echo "<br><br><br><br><br><br><br><span style=\"font-size:18pt;\"><font color=\"#FF0000\">Les mots clés utilisés ne sont pas adaptés.<br><br><br>
        Il faut renouveler votre recherche en changeant les mots clés.<br><br><br>
        </u></b></font></span><br><p>";
        echo
        "<center>
            <p>&nbsp;</p>
          <img src=%22mpi/images/mpi2.gif/%22 width=\"45\" height=\"35\" border=\"0\"><form method=\"post\" action='$PageResultats'>
          <input type=\"text\" maxLength=\"50\" size=\"40\" name=\"recherche\" value=\"Essayez avec d'autres mots clés\">
        <input type=\"submit\" name=\"value\" value=\"go !\" size="20">
        </form>
        </center>";
    } 	
	else {
        $sql = "SELECT SQL_CALC_FOUND_ROWS $Champs FROM $Table WHERE " . (!strcasecmp($EtOu, 'AND') ? '1=1' : '1<>1');
        foreach ($tab as $v) {
            $sql .= " $EtOu $Cles LIKE '%%" . mysql_real_escape_string($v) . "%%' ";
        }
        $sql .= "ORDER BY $Ordre ASC LIMIT %d,%d";
        $_SESSION['sql'] = $sql;
        $_SESSION['nb'] = $nb;
        $_SESSION['Q'] = $Q;
    }
} elseif (isset($_SESSION['sql']) && isset($_SESSION['nb']) && isset($_SESSION['Q'])) {
    $sql = $_SESSION['sql'];
    $nb = $_SESSION['nb'];
    $Q = $_SESSION['Q'];
}
if (!empty($sql)) {
    if ($nb == 1) {
        echo "<br><br><br><span style=\"font-size:16pt;\"><font color=\"#009999\">Résultat de votre requète concernant le mot <b><u>\"$Q\"</u></b></font></span><br><p>";
    }
	else {
        echo "<br><br><br><span style=\"font-size:16pt;\"><font color=\"#009999\">Résultat de votre requète concernant les mots <b><u>\"$Q\"</u></b></font></span><br><p>";
    }
 
    $Res = mysql_query(sprintf($sql, $debut, $NbMax)) or die(mysql_error());
    $NbRes = mysql_query('SELECT FOUND_ROWS()');
    $Resultat = mysql_result($NbRes, 0, 0);
    if ($Resultat == 0) {
        echo "<p><br><br><br><span style=\"font-size:16pt;\"><font color=\"#FF0000\">Aucun résultats pour <b>\"".$_POST['recherche']."\"</font></span></p>";
    } 
	else {
        if ($Resultat == 1) {
            echo "<br><br><span style=\"font-size:16pt;\"><font color=\"#009999\">Résultat: Une réponse</u></b></font></span><p>";
        } 
		else {
            echo "<br><br><span style=\"font-size:16pt;\"><font color=\"#009999\">Résultats: $Resultat réponses</u></b></font></span><p>";
        }
    }
    echo
    "<center>
      <p>&nbsp;</p>
      <img src=%22mpi/images/mpi2.gif/%22 width=\"45\" height=\"35\" border=\"0\"><form method=\"post\" action='$PageResultats'>
        <input type=\"text\" maxLength=\"50\" size=\"40\" name=\"recherche\" value=\"Essayez avec d'autres mots clés\">
        <input type=\"submit\" name=\"value\" value=\"go !\" size="20">
      </form>
    </center>";
    $Result = $debut + 1;
    while($data = mysql_fetch_array($Res)) {
?>
    <p>&nbsp;</p>
    <table width="70%" border="0" cellpadding="0" cellspacing="0">
    <tr>
<?php
            echo '<td width="70%"><img src="mpi/images/mpi2.gif" width="45" height="35" border="0">
            <font face='.$PoliceChiffre.' size='.$TailleChiffre.' color='.$ClChiffre.'>'.$PresChiffre.'    '.$Result.'.    </b></i></u></font>
            <a href="'.htmlentities($data["$Entree3"]).'" target="'.$Target.'"><font face='.$PoliceLien.' size='.$TailleLien.' color='.$ClLien.'>'.$PresLien.''.htmlentities($data["$Entree1"]).'</b></i></u></font></a></td>';
?>
        </tr>
        <tr>
 
<?php
        echo '<td><font face='.$PoliceDesc.' color='.$ClDesc.' size='.$TailleDesc.'>'.$PresDesc.''.htmlentities($data["$Entree2"]).'</b></i></u></font></td>';
?>
 
        </tr> 
    </table>
	 
<?php
        $Result++;
    }
         echo '<br><br>';
    mysql_close();
    $derniere_page = ceil($Resultat / $NbMax);
    if ($page > 1) {
        echo '<font size="4"><a href="' . $UrlRacine . '' . $PageResultats . '?page=' . ($page - 1) . '"><<<<</a></font> ';
    }

define('MAX_NB_PAGES', 6);
for ($i = max(1, min(max($page - MAX_NB_PAGES / 2, 1), $derniere_page - MAX_NB_PAGES)), $j = 0; $j <= MAX_NB_PAGES && $i <= $derniere_page; $i++, $j++) {
	
 if ($i == $page) {
		if ($page > 1) {echo '<b><font color="#00CC99"><span style="font-size:20pt;">-</span></font></b>'; }
            echo ' <font size="5"><b>' . $i . '</b></font> ';
        } else {
            echo '<b><font color="#00CC99"><span style="font-size:20pt;">-</span></font></b> <font size="4"><a href="' . $UrlRacine . '' . $PageResultats . '?page=' . $i . '">' . $i . '</a></font> ';
        }
    }
    if ($page < $derniere_page) {
        echo '<b><font color="#00CC99"><span style="font-size:20pt;">-</span></font></b> <font size="4"><a href="' . $UrlRacine . '' . $PageResultats . '?page=' . ($page + 1) . '">>>>></a></font>';
    }
} elseif (!isset($nb)) {
    echo "<br><br><br><br><br><br><br><span style=\"font-size:18pt;\"><font color=\"#FF0000\">Les mots clés utilisés ne sont pas adaptés.<br><br><br>
    Il faut renouveler votre recherche en changeant les mots clés.<br><br><br>
    </u></b></font></span><br><p>";
    echo
    "<center>
        <p>&nbsp;</p>
      <img src=%22mpi/images/mpi2.gif/%22 width=\"45\" height=\"35\" border=\"0\"><form method=\"post\" action='$PageResultats'>
      <input type=\"text\" maxLength=\"50\" size=\"40\" name=\"recherche\" value=\"Essayez avec d'autres mots clés\">
    <input type=\"submit\" name=\"value\" value=\"go !\" size="20">
    </form>
    </center>";
}

?>
C'est le contenu du fichier qui va, je pense chercher les résultats et les afficher