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 20/07/2007, 14h16   #1
Membre du Club
 
Avatar de Sba3Net
 
Étudiant
Inscription : mai 2007
Messages : 128
Détails du profil
Informations personnelles :
Âge : 23
Localisation : Maroc

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2007
Messages : 128
Points : 61
Points : 61
Envoyer un message via MSN à Sba3Net Envoyer un message via Yahoo à Sba3Net
Par défaut [SQL] Page de recherches

Bonjour et merci pour votre attention.

Je suis entrain de créer un petit site web, et j'aimerais y mettre une page de recherche qui scan la base de données MySQL afin de trouver le mot cherché, le probleme c'est que j'ai ce message là :

Citation:
Notice: Undefined variable: exp in c:\program files\easyphp1-8\www\logossc\recherches.php3 on line 10
Veuillez entrer un mot clé s'il vous plaît!

Notice: Undefined variable: query in c:\program files\easyphp1-8\www\logossc\recherches.php3 on line 16

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-8\www\logossc\recherches.php3 on line 18


et voici le code source de la page (Je suis novice dans PHP)

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
<link href="style.css" rel="stylesheet" type="text/css" />
<?
$table = "ebooks";
$base = "logos_sc";
$link = mysql_connect("localhost","root","")
or die ("Impossible de se connecter");
mysql_select_db ("$base")
or die ("Impossible d'accéder à la base de données");
 
if (($exp=="") || ($exp==" ")) {
echo "Veuillez entrer un mot clé s'il vous plaît!<p>";
} 
else {
$query= "SELECT * FORM $table WHERE titre LIKE \"%$exp%\" or description  LIKE \"%$exp%\" or categorie  LIKE \"%$exp%\" or posteur LIKE \"%$exp%\" or auteur LIKE \"$exp\" or date LIKE \"%$exp%\" or id  LIKE \"%$exp%\"
";}
$resultat = mysql_query($query);
echo "<table>";
while ($row = mysql_fetch_row ($resultat))
{
$id=$row[0];
$titre=$row[1];
$auteur=$row[2];
$date=$row[3];
$cate=$row[4];
echo "<tr>
<td width=10%>$id</td>
<td width=30%>$titre</td>
<td width=30%>$auteur</td>
<td width=30%>$date</td>
<td width=30%>$cate</td>
</tr>";
}
echo "</table>";
mysql_close();
?>

Je ne comprend pas pour quoi ça donne une variable vide alors que j'ai remplis le formulaire de recherche, un simple mot que la page recherches.php doit trouver dans n'importes quel champs du table!

Si vous avez des suggestions alors mille merci, et si vous avez une amélioration du code, alors merci infiniment!
Sba3Net est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2007, 14h25   #2
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 686
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 686
Points : 5 451
Points : 5 451
Bonjour

Deux choses l'une : soit tu n'as donnée qu'une partie du code, soit il te manque des choses dedans.

Entre autres, il n'y a pas d'affectation pour la variable $exp. D'où est-elle censée provenir ?
Le problème sur la variable $query provient du fait qu'elle n'est affectée que dans une branche d'un if/else, mais qu'elle est utilisée après ce bloc, quelque soit la branche empruntée. Donc si le script passe dans la mauvaise branche, $query n'est intialisée.

Et un conseil : pense à utliser le renvoi d'erreur SQL :
Code :
mysql_query($query) or die ('Erreur SQL sur '.$query.' : '.mysql_error());
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2007, 14h38   #3
Membre du Club
 
Avatar de Sba3Net
 
Étudiant
Inscription : mai 2007
Messages : 128
Détails du profil
Informations personnelles :
Âge : 23
Localisation : Maroc

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2007
Messages : 128
Points : 61
Points : 61
Envoyer un message via MSN à Sba3Net Envoyer un message via Yahoo à Sba3Net
wé, j'ai dans la page d'aacueil, une barre de recherche avec une zone de text nommé exp (pour expression) alors quand je click sur chercher, j'ai la page d'erreur cité en haut! alors je ne sais pas quoi faire là!
Sba3Net est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2007, 14h46   #4
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 686
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 686
Points : 5 451
Points : 5 451
Quel est le code de la dite zone de texte (et éventuellement celui du formulaire complet) ? et celui par lequel tu récupères la valeur de la variable envoyée ?
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2007, 15h06   #5
Membre du Club
 
Avatar de Sba3Net
 
Étudiant
Inscription : mai 2007
Messages : 128
Détails du profil
Informations personnelles :
Âge : 23
Localisation : Maroc

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2007
Messages : 128
Points : 61
Points : 61
Envoyer un message via MSN à Sba3Net Envoyer un message via Yahoo à Sba3Net
ça resemble à ça :

d'apres ce que j'ai lu, quand le formulaire envoie ces champs à la page de script déclaré dans action=page_de_script.php alors ces champs deviennent $exp dans mon cas, alors je crois que j'ai bien fait, mais le prob c'est est ce que je dois faire un include ou un require dans la page du script ou dans la page index! (répance blooen pour tout! lol )
Sba3Net est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2007, 15h11   #6
Membre éclairé
 
Avatar de nicocsgamer
 
Inscription : mars 2005
Messages : 324
Détails du profil
Informations personnelles :
Âge : 27
Localisation : Luxembourg

Informations forums :
Inscription : mars 2005
Messages : 324
Points : 365
Points : 365
Envoyer un message via MSN à nicocsgamer
Alors ce que tu dis fonctionne lorsque la directive register_global = on dans le fichier php.ini.

La tienne doit etre à off, et doit rester sur off ! Question de sécurité oblige.

Alors pour récupérer ta variable envoyé par formulaire.

Il faut que tu spécifié l'attribut method : method = "post" ou method = "get" dans la balise <form> de ta page html.

Ensuite dans ta page php tu fais :

$exp = $_POST['exp'];

ou

$exp = $_GET['exp'];

suivant la méthode spécifiée dans la balise form.
nicocsgamer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2007, 15h13   #7
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 686
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 686
Points : 5 451
Points : 5 451
Citation:
Envoyé par Sba3Net
d'apres ce que j'ai lu, quand le formulaire envoie ces champs à la page de script déclaré dans action=page_de_script.php alors ces champs deviennent $exp dans mon cas, alors je crois que j'ai bien fait, mais le prob c'est est ce que je dois faire un include ou un require dans la page du script ou dans la page index! (répance blooen pour tout! lol )
on n'a pas du lire les mêmes tutoriaux...
En règle générale, si ta methode est post, les variables se récupèrent par $_POST['nom_champ']
Donc toi, il faudarit sans doute que tu utilises $_POST['exp'].

Quelques liens : Les formulaires et php5 et Développement Web : "Zone Grand Débutant" (pour le cas où et parce que c'est plein de liens vers d'autres tutoriaux)
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2007, 15h15   #8
Membre du Club
 
Avatar de Sba3Net
 
Étudiant
Inscription : mai 2007
Messages : 128
Détails du profil
Informations personnelles :
Âge : 23
Localisation : Maroc

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2007
Messages : 128
Points : 61
Points : 61
Envoyer un message via MSN à Sba3Net Envoyer un message via Yahoo à Sba3Net
Merci, j'ai bien tester les deux cas de post et get, mais pas reprendre la valeur de la variable de cette manière, merci pour votre aide nicosgamer et je vais tester ça et je vous repand, mais pas tout de suite, je dois manger moi! lol merci encore les amis et à trés bien t^^ot
Sba3Net est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2007, 15h16   #9
Membre éclairé
 
Avatar de nicocsgamer
 
Inscription : mars 2005
Messages : 324
Détails du profil
Informations personnelles :
Âge : 27
Localisation : Luxembourg

Informations forums :
Inscription : mars 2005
Messages : 324
Points : 365
Points : 365
Envoyer un message via MSN à nicocsgamer
Tu peux te détendre sur l'écriture

Prends 5 min pour bien écrire.
nicocsgamer est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h52.


 
 
 
 
Partenaires

Hébergement Web