PB de lien avec le resultat sur base

PB de lien avec le resultat sur base - PHP - Programmation

Marsh Posté le 08-04-2008 à 12:08:14    

Bonjour a tous,
 
J'ai un ptit souci que je n'arrive pas a resoudre. Mis en situation,  ;) .
j'ai un site en php avec les pseudo-frames. Donc j'utilise include. Mes liens s'affichent donc dans le pseudo frame (centre.php) de ma page index.
J'ai un moteur de recherche interne qui va chercher les mots clés sur une base de donnée et qui affiche bien le resultat (titre, description et lien) dans mon centre. Mon souci est que lorsque je clique sur le lien de mon resultat afficher, il m'ouvre pas la page correspondante dans le centre mais a la place de la page totale (mon index.php). Je n'ai donc plus l'entete en haut et la partie menu a gauche de mon site.
Comment faire pour que ce lien s'affiche dans mon centre et remplace le resultat de la recherche ?
voici le plan du site:
1 - mon formulaire de recherche est dans ma page index.php et pointe sur la partie centre de celle ci
2 - la partie centre de mon index.php a un 'include "resutat.php" ou il y a mon code du moteur de recherche.
 
Voici mon code du moteur de recherche .( en rouge la partie qui me pose probleme)
<?php  
 
.......
 
// Si aucun enregistrement n'est retourné,
// on affiche un message adéquat
if ($Nombre == "0" ) {
 echo " 0 page trouvé pour : $mot </br > </br >
                                  Veuillez saisi un autre mot de recherche ";
                    }
 
// Sinon, on affiche le nombre d'enregistrements correspondant
// et les résultats eux-mêmes
else {
 $query = "SELECT distinct lien,titre,description FROM recherche WHERE mots LIKE \"%$mot%\" ";
 $result = mysql_query($query);
 
 // Si un seul enregistrement est trouvé, on affiche un message au singulier
 if ($Nombre == "1" ) {
 echo " 1 page trouvé pour : $mot ";
      }
       
 // Dans le cas contraire le message est au pluriel...
 else  {
 echo " $Nombre pages trouvés pour le mot: $mot </br> </br>" ;
      }
   
 while ($row = mysql_fetch_row($result))  
   {
   
    echo " $row[1] </br>  //affiche le nom de la page
              $row[2] </br></br> // affiche la description de la page
     <a href='$row[0]'> $row[0]</a></br></br> // affiche le lien de la page
     
     ";
      }
   

Reply

Marsh Posté le 08-04-2008 à 12:08:14   

Reply

Marsh Posté le 09-04-2008 à 02:10:24    

Les portes se ferment en sortant, on écrit donc <br/> et non </br>, voire <br /> (un vieux réflex pour NS4).
 
Pour ton "vrai" problème, je ne pense pas que ça vienne de cette page. Si ton lien renvoie bien vers une autre page, c'est l'autre page qu'il faut regarder. Sépare-toi du concept de frame, fût-elle pseudo.

Reply

Marsh Posté le 09-04-2008 à 10:20:48    

ok Merci pour les portes. Je l'ai modifié dans mon code.
Mais pour le reste, il doit bien y avoir une solution car si je met a la place de ce qui est en rouge :
<a href='index.php?rubrique='$row[0]''> $lien</a></br></br>  
ou
<a href='index.php?rubrique= quelque soit le truc que je met la'> $lien</a></br></br>
 
il m'affiche bien ma page index mais dans la partie centre ou il y a mon include, il m'affiche tjs la page par default de mon include au lieu de m'afficher la page que ma variable a trouvé. il tient pas compte de ma variable $row[0].
 
 :( aidez moi. Y a plus que ca j arrive pas a faire. :pfff:

Reply

Marsh Posté le 09-04-2008 à 11:06:11    

si ton lien est de la forme:
<a href='index.php?rubrique='$row[0]''> $lien</a>
 
dans ton include du centre, il faut que tu regarde la valeur de $_GET[rubrique] pour inclure en conséquence...
 
Tu pourrais poster le bout de code qui gère cette include dans ton index.php (à cause de la pluie, ma boule de cristal est pleine de buée...), c'est ça qui est intéressant pour comprendre et solutionner ton problème ;)


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 09-04-2008 à 14:20:15    

Alors puisqu'il y a de la buée, je vais essayer de ventiler un max.  ;)  
 
ma page index.php contient le code :
<? include "menu.php" ?> // sur la partie gauche pour afficher mes menus et la pas de soucis.
 
<? include "centre.php" ?> // sur la partie centrale ou s'affiche mes pages lorsque je clique sur un lien.  
 
mon centre.php contient le code :
<?php  
// On récupère la rubrique passée en paramètre
if(isset($_GET["rubrique"])) $rubrique = $_GET["rubrique"];
else $rubrique = "";  
// On affiche la page associée à la rubrique
switch ($rubrique)  
{
case 'centre1':
include('centre1.php');
break;
....
...
default:
include('accueil.php');
break;
}
?>
 
Voila. Et apres y a le code du post precedent avec mon moteur de recherche sur  page resultat.php dans lequel la variable $row[0] correspond lien indiquer ds ma base. Et quand je met <a href='index.php?rubrique='$row[0]''> $lien</a> en lien, il m'affiche tjs le default de mon include au lieu de la page trouvé en recherche.
ma variable $row[0] n'est pas du tout reconnu par mon include dans la page centre.php
 
j'espere que ca t'aideras a comprendre mon souci.


Message édité par marsuz750 le 09-04-2008 à 14:21:43
Reply

Marsh Posté le 09-04-2008 à 16:01:54    

ton lien est vraiment de la forme
<a href='index.php?rubrique='$row[0]''> ???
 
déjà là ya des simples quotes incluses dans d'autres simples quotes, sans caractère d'échappement, ça c'est trop pas cool
 
ensuite, c'est pas $row[0] qu'il faut faire passer, mais sa valeur, donc à mon avis, plutôt:

Code :
  1. <a href='index.php?rubrique=<?php echo $row[0] ?>'> ???


pour obtenir une fois en HTML, un lien du genre:
<a href='index.php?rubrique=centre1'>
 
Voilou, regarde de ce côté là, je pense vraiment que c'est ton lien qui est mal construit, donc valeur d'arrivée incorrecte, donc switch sur le cas "default" ;)


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 10-04-2008 à 09:47:07    

Merci d'avoir répondu XAV_, mais le je commence a desesperer.
J'ai bien compri ce que tu m'as dit et essayer ton code mais ca marche pas. Qd je clique sur lien affiché dans le resultat de ma recherche, il affiche tjs la page default de mon include. Comprends vraiment pas la. Est ce que c est pas parce que ma page centre.php ou il y a mon code des include, ne connais pas ma variable $row[0] ?
la je seche vraiment.
 
 :(

Reply

Marsh Posté le 10-04-2008 à 10:32:18    

:bounce:  :)  :bounce:  :)  :bounce:  :)  :)  
J'ai trouvé !!!!! ouaisssss !!!
Merci xav_ tu m'as fais réfléchir dans le bon sens.
Alors en fait, c'est bien ma page centre.php qui interprété pas ma variable comme il faut et donc m'afficher la page default.
Ma variable $row[0] allait chercher les infos dans le champs lien de ma table. Et dans celle ci les infos etait du style page_1.php alors que la correspondance dans mon centre.php etait mapage1. Alors j'ai adapter les donnees du champs lien dans ma table comme dans mon centre.php cad en mapage1, mapage2, etc.. et du coup ca marche.
 
ce qui donne en code:
 
<a href='index.php?rubrique=$row[0]'>$row[0]</a>
 
merci encore pour avoir repondu rapidement.
a bientot


Message édité par marsuz750 le 10-04-2008 à 10:34:52
Reply

Marsh Posté le 10-04-2008 à 10:36:45    

oui, c'est ce que j'ai essayé de te dire.
- La page d'arrivée ne connais pas $row[0]
- La seule variable connue de ta page d'arrivée est $_GET['rubrique']
- c'est pour ça qu'il faut que $_GET['rubrique'] soit égale à la valeur de $row[0]
 
Quand tu survole les liens (dans "resultat.php" ) de la recherche (ou si tu regarde la source HTML de la page dans le navigateur), ça te donne quoi exactement ???
1/ <a href='index.php?rubrique=row[0]'>lien</a>
ou
2/ <a href='index.php?rubrique=centre1'>lien</a>
 
--> Si c'est la forme 1 c'est qu'il y un problème dans la construction de ton lien (donc correction à faire dans resultat.php)
--> Si c'est la forme 2, alors le lien est bon, mais la valeur de rubrique n'est pas gérée par ton switch/case, et du coup, il sort toujours sur le cas "default" (donc correction à faire dans centre.php)
--> Si c'est ni forme 1, ni forme 2, ben alors on est pas dans la mouise  :sol:
 
EDIT: bon ben c'est cool, c'est réglé


Message édité par Xav_ le 10-04-2008 à 10:37:48

---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed