Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/09/2007, 16h32   #1
Invité de passage
 
Inscription : septembre 2007
Messages : 4
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 4
Points : 1
Points : 1
Par défaut [SQL] Module de recherche et erreur undefined variable

Voila j'ai télécharger un script de recherche et il y a une variable qui n'est pas définie, c'est la variable "$page"(dans la ligne 66 j'ai mis un commentaire), et je ne sais pas la définir...voila le script :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
<html>
<head>
<title>Résultat de la recherche</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body text="#FFFFFF" bgcolor="#000000" link="#9999FF" vlink="#6699FF" alink="#FFFF00">
 
<font face="Verdana" size=2>
 
<form action="recherche.php3" method="post">
Saisissez un ou plusieurs mots :
<input type="text" name="mot" size="20">
<input type="submit" value="Rechercher">
</form>
 
<?
/******************************************************************
*	VARIABLES A MODIFIER
******************************************************************/
 
// NOMBRE DE RESULTATS PAR PAGE
$limit=2;
 
// NOM DE CE SCRIPT
$script_name="recherche.php3";
 
// SERVEUR SQL
$sql_serveur="localhost";
 
// LOGIN SQL
$sql_user="root";
 
// MOT DE PASSE SQL
$sql_passwd="";
 
// BASE DE DONNEE
$sql_bdd="formulaire";
 
// RECHERCHE AVEC TOUS LES MOTS : METTEZ "and"
// RECHERCHER LES PAGES QUI CONTIENNENT AU MOINS UN MOT : METTEZ "or"
$et_ou="or";
 
 
/******************************************************************
*	PROGRAMME PRINCIPAL
******************************************************************/
 
$db_link = mysql_connect("$sql_serveur","$sql_user","$sql_passwd");
$mot=$_POST['mot'];
$mot=strtolower($mot);
$mots=split(" ",$mot);
$nombre_mots=count($mots);
 
$z=1;
$texte="Pages contenant <b>"$mots[0]"</b>";
$phrase="'%$mots[0]%'";
while($z<$nombre_mots)
	{
	$phrase.=" ".$et_ou." mots like '%$mots[$z]%'";
	$texte.=" ";
	if($et_ou=="and"){$texte.="et";}else{$texte.="ou";}
	$texte.=" <b>"$mots[$z]"</b>";
	$z++;
	}
 
$debut=$page*$limit; //*-*-*-*-*-*"C'EST CETTE VARIABLE"*-*-*-*-*-*-*
if($debut==""){$debut=0;}
 
// NOMBRE TOTAL D'ENREGISTREMENTS REPONDANT A LA REQUETE
$requete=mysql_db_query("$sql_bdd","select count(*) from recherche where mots like $phrase order by id",$db_link);
$nb_total=mysql_result($requete,0,"count(*)");
 
$requete=mysql_db_query("$sql_bdd","select * from recherche where mots like $phrase limit $debut,$limit",$db_link);
$num=mysql_num_rows($requete);
 
// DEFINITION DU MESSAGE A AFFICHER
if ($num==0) {echo "Désolé, aucune page de ce site ne contient <b>$mot</b>...";}
else if ($mot=="") 	{echo "Veuillez saisir un ou plusieurs mot-clés avant de cliquer sur 'OK' !";}
else if (strlen($mot)<2) {echo "Veuillez saisir au moins 2 caractères.";}
 
// AFFICHAGE DES RESULTATS
else {
 
echo "<b>$nb_total</b> r&eacute;ponse";
if ($nb_total>1) {echo "s";}
echo "<br>$texte";
 
$i=0;
while($i<$num)
	{
	$url=mysql_result($requete,$i,"url");
	$description=mysql_result($requete,$i,"description");
	$titre=mysql_result($requete,$i,"titre");
	echo "<br><br><a href=\"$url\"><b>$titre</b></a><br>$description<br><font size=1>$url</font>\n";
	$i++;
	}
 
echo "<br><br>";
 
// AFFICHAGE DU LIEN PRECEDENT SI BESOIN EST
// (LA PREMIERE PAGES EST 0)
if ($page>0)
	{
	$precedent=$page-1;
	print  "<a href=\"$script_name?page=$precedent&mot=$mot\">PRECEDENT</a>&nbsp;\n";
	}
 
 
// AFFICHAGE DES NUMEROS DE PAGE
$i=0;$j=1;
if($nb_total>$limit)
	{
	while($i<($nb_total/$limit))
		{
		if($i!=$page){echo "(<a href=\"$script_name?page=$i&mot=$mot\">$j</a>)&nbsp;";}
		else {echo "<b>($j)</b>&nbsp;";}
		$i++;$j++;
		}
	}
 
 
// AFFICHAGE DU LIEN SUIVANT SI BESOIN EST
if($debut+$limit<$nb_total)
	{
	$suivant=$page+1;
	echo "<a href=\"$script_name?page=$suivant&mot=$mot\">SUIVANT</a>";
	}
}
 
 
// DECONNEXION DE LA BASE DE DONNEE
mysql_close($db_link);
?>
 
</font>
</body>
</html>
Merci d'avance
gryder213 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2007, 16h37   #2
Membre éclairé
 
Avatar de Huntress
 
Inscription : août 2004
Messages : 454
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 454
Points : 339
Points : 339
Bonjour et bienvenue sur developpez.net

Personne ne pourra t'aider si tu ne respectes pas les règles du forum... entoure tes codes des balises code (icone dièse, le plus à droite) c'est pas très lisible sinon.

Pour en revenir à ton problème, le script t'indique-t'il une erreur ? Si je te demande çà c'est à cause de cette ligne :

Code :
if($debut==""){$debut=0;}
Elle est censée lui donner une valeur si jamais elle n'en a pas...
__________________

Règle n°1 du forum francophone : Parler le français...
Pas de question technique par MP, le forum est fait pour çà, merci.
Huntress est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2007, 16h40   #3
Invité de passage
 
Inscription : septembre 2007
Messages : 4
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 4
Points : 1
Points : 1
désolé comme tu as pu le remarqué chui nouveau ...
ben oui et voila le problème en question :
Citation:
Notice: Undefined variable: page in c:\documents and settings\administrateur\bureau\travail\formulaire\recherche.php3 on line 66
Notice: Undefined variable: page in c:\documents and settings\administrateur\bureau\travail\formulaire\recherche.php3 on line 102
Merci
gryder213 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2007, 16h52   #4
Membre éclairé
 
Avatar de Huntress
 
Inscription : août 2004
Messages : 454
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 454
Points : 339
Points : 339
argh j'ai confondu $page et $debut

bon je sais pas trop comment ce script fonctionne mais dans ces cas là au lieu de me lancer dans une grande étude théorique je lui donne ce qu'il veut... il n'a pas de $page, alors t'as qu'à lui en donner un : $page = 1.
Ensuite tu regardes si il n'y a plus d'erreur, et seulement après tu regardes si le comportement du script est normal, si il l'est pas alors faut trafiquoter...
__________________

Règle n°1 du forum francophone : Parler le français...
Pas de question technique par MP, le forum est fait pour çà, merci.
Huntress est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2007, 16h57   #5
Invité de passage
 
Inscription : septembre 2007
Messages : 4
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 4
Points : 1
Points : 1
ouais ya plus ce problème mais maintenant le moteur de recherche ne marche plus... alors c'est quoi la saluce?
gryder213 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2007, 17h07   #6
Membre éclairé
 
Avatar de Huntress
 
Inscription : août 2004
Messages : 454
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 454
Points : 339
Points : 339
Je suis pas magicienne. Mais si tu veux t'améliorer en PHP il va falloir apprendre à faire un truc tout con, (je te rassure personne n'y pense au départ) c'est de faire des echo un peu partout, par exemple de tes variables $debut, $page, $limit et aussi de tes requêtes SQL. Ainsi tu pourras remonter jusqu'à ce qui ne va pas... en l'occurence c'est ta variable $page (mais peut être pas seulement) à toi de voir...

Voilà pour la méthode, je pars du principe que pour apprendre il faut en chier un peu tout seul dans son coin (méthode éprouvée, je sais de quoi je parle)

Pour en revenir à nos moutons... essaye de remplacer $page par $_GET['page'], il se pourrait que le script ait été écrit pas qq un qui avait sa directive register_global à on
__________________

Règle n°1 du forum francophone : Parler le français...
Pas de question technique par MP, le forum est fait pour çà, merci.
Huntress est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2007, 17h15   #7
Invité de passage
 
Inscription : septembre 2007
Messages : 4
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 4
Points : 1
Points : 1
Merci bcp pour ton aide, j'ai fini par le rendre opérationnel, j'ai juste mis $page=""; et voila ça marche merci encore pour tes conseils
gryder213 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h15.


 
 
 
 
Partenaires

Hébergement Web