Erreur PHP
Résolu/Fermé
A voir également:
- Erreur PHP
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur 1001 outlook - Accueil - Bureautique
- Erreur 3005 france tv - Forum TV & Vidéo
- Erreur 5000 france tv - Forum iPhone
18 réponses
Bonjour
$rech=$_POST[''];
Cette ligne ne veut rien dire, tu devrais avoir un nom de champ de formulaire entre les ''.
$sql= "SELECT * FROM news WHERE nom OR Remarque OR prenom or societe or ville or couriel or activite or web LIKE '%$rech%'";
le OR en mysql est un ou logique, c'est à dire qu'il doit être entre deux booleens. Or tes champs ne sont sûrement pas tous de booleens, donc nom OR Remarque OR prenom etc... n'est pas correct
Par contre nom LIKE LIKE '%$rech%' est un booleen (c'est vrai ou faux, prenom LIKE '%$rech%' est aussi un booleen etc...
Donc la syntaxe correcte est
$sql= "SELECT * FROM news WHERE nom LIKE '%$rech%' OR Remarque LIKE '%$rech%' OR prenom LIKE '%$rech%' or societe LIKE '%$rech%' or ville LIKE '%$rech%' or couriel LIKE '%$rech%' or activite LIKE '%$rech%' or web LIKE '%$rech%'";
$rech=$_POST[''];
Cette ligne ne veut rien dire, tu devrais avoir un nom de champ de formulaire entre les ''.
$sql= "SELECT * FROM news WHERE nom OR Remarque OR prenom or societe or ville or couriel or activite or web LIKE '%$rech%'";
le OR en mysql est un ou logique, c'est à dire qu'il doit être entre deux booleens. Or tes champs ne sont sûrement pas tous de booleens, donc nom OR Remarque OR prenom etc... n'est pas correct
Par contre nom LIKE LIKE '%$rech%' est un booleen (c'est vrai ou faux, prenom LIKE '%$rech%' est aussi un booleen etc...
Donc la syntaxe correcte est
$sql= "SELECT * FROM news WHERE nom LIKE '%$rech%' OR Remarque LIKE '%$rech%' OR prenom LIKE '%$rech%' or societe LIKE '%$rech%' or ville LIKE '%$rech%' or couriel LIKE '%$rech%' or activite LIKE '%$rech%' or web LIKE '%$rech%'";
Je te remercie de ta réponse, j'ai suivis tes conseils mais en vain :(. Il me marque toujours les memes erreurs.
Je ne comprends pas ce que tu veux dire par un nom de champ de formulaire ( désolé je suis débutant )
Je ne comprends pas ce que tu veux dire par un nom de champ de formulaire ( désolé je suis débutant )
Utilisateur anonyme
1 juin 2009 à 10:31
1 juin 2009 à 10:31
Bonjour,
Je vais peut etre dire une connerie mais je l'aurais plutot fait comme ça :
<?php
$clause = '';
if (isset($_REQUEST['motclef'])) {
$clause .= " WHERE INSTR(nom,'".$_REQUEST['motclef']."')";
$clause .= "OR INSTR(remarque,'".$_REQUEST['motclef']."')";
etc sur tes valeur à fouiller
}
$sql = "SELECT * FROM nom_de_table ".$clause;
$resultat = mysql_query ($sql);
while ($data = mysql_fetch_array ($resultat))
{
bla bla bla
}
Je vais peut etre dire une connerie mais je l'aurais plutot fait comme ça :
<?php
$clause = '';
if (isset($_REQUEST['motclef'])) {
$clause .= " WHERE INSTR(nom,'".$_REQUEST['motclef']."')";
$clause .= "OR INSTR(remarque,'".$_REQUEST['motclef']."')";
etc sur tes valeur à fouiller
}
$sql = "SELECT * FROM nom_de_table ".$clause;
$resultat = mysql_query ($sql);
while ($data = mysql_fetch_array ($resultat))
{
bla bla bla
}
Ça n'est pas une connerie (sauf qu'il manque un espace avant le OR) mais pourquoi bouleverser la requête de Romain44 ? Le but n'est pas de proposer toutes les variantes possibles, mais de faire marcher sa requête, dans la mesure où elle n'est pas trop loin de la vérité. Et elle n'en est pas trop loin.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je ne comprends pas ce que tu veux dire par un nom de champ de formulaire
Je n'avais pas compris ce que voulait dire cette remarque, je viens de comprendre. Ça concerne le $rech=$_POST[''];
Ce que je disais c'est que $_POST[''] ne veut rien dire, ça doit être $_POST['nom'] si le nom du champ de formulaire est 'nom', $_POST['toto'] si le champ de formulaire s'appelle 'toto', etc...
Le nom du champ de formulaire, c'est la valeur de l'attribut name dans la balise input du formulaire :
<input type="text" name="toto" />
Je n'avais pas compris ce que voulait dire cette remarque, je viens de comprendre. Ça concerne le $rech=$_POST[''];
Ce que je disais c'est que $_POST[''] ne veut rien dire, ça doit être $_POST['nom'] si le nom du champ de formulaire est 'nom', $_POST['toto'] si le champ de formulaire s'appelle 'toto', etc...
Le nom du champ de formulaire, c'est la valeur de l'attribut name dans la balise input du formulaire :
<input type="text" name="toto" />
Utilisateur anonyme
1 juin 2009 à 10:55
1 juin 2009 à 10:55
Simplement pcq le PHP et moi.... mais comme je l'avais fait tel quel pour le taf (et dsl pour l'espace), je lui ai juste suggéré une solution fonctionnelle ...
Merci de vos réponses, cela est très gentil de votre part mais j'ai toujours un problème cette fois ligne 20 ( Parse error: parse error in C:\wamp\www\test\rechercher.php on line 20 ). Je ne comprends pas la source de l'erreur.
Je vous remets le code que j'ai un peu modifié. J'ai abandonné l'idée de faire une recherche sur tout les champs, je me suis consacré seulement au champ "activité".
<body>
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("test");
$rech=$_POST['activite'];
$sql= "SELECT * FROM news WHERE activite LIKE '%$rech%';
$req = mysql_query($sql) ;
?>
<table width="96%" align="center"> ligne 20
<tr>
<td>Societe</td>
<td >nom</td>
<td >prenom</td>
<td>Telephone</td>
<td>Adresse</td>
<td>Couriel</td>
<td>Ville</td>
<td>remarque</td>
</tr>
<?php
while ($data = mysql_fetch_array($req))
{?>
<tr>
<td><?php echo $data['societe']; ?></td>
<td><?php echo $data['activite']; ?></td>
<td><?php echo $data['nom']; ?></td>
<td><?php echo $data['prenom']; ?></td>
<td><?php echo $data['telephone']; ?></td>
<td><?php echo $data['adresse']; ?></td>
<td><?php echo $data['couriel']; ?></td>
<td><?php echo $data['ville']; ?></td>
<td><?php echo $data['remarque']; ?></td>
</tr>
<?php }
?>
</table>
</body>
</html>
Merci si vous voulez encore une fois m'aider. :)
Je vous remets le code que j'ai un peu modifié. J'ai abandonné l'idée de faire une recherche sur tout les champs, je me suis consacré seulement au champ "activité".
<body>
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("test");
$rech=$_POST['activite'];
$sql= "SELECT * FROM news WHERE activite LIKE '%$rech%';
$req = mysql_query($sql) ;
?>
<table width="96%" align="center"> ligne 20
<tr>
<td>Societe</td>
<td >nom</td>
<td >prenom</td>
<td>Telephone</td>
<td>Adresse</td>
<td>Couriel</td>
<td>Ville</td>
<td>remarque</td>
</tr>
<?php
while ($data = mysql_fetch_array($req))
{?>
<tr>
<td><?php echo $data['societe']; ?></td>
<td><?php echo $data['activite']; ?></td>
<td><?php echo $data['nom']; ?></td>
<td><?php echo $data['prenom']; ?></td>
<td><?php echo $data['telephone']; ?></td>
<td><?php echo $data['adresse']; ?></td>
<td><?php echo $data['couriel']; ?></td>
<td><?php echo $data['ville']; ?></td>
<td><?php echo $data['remarque']; ?></td>
</tr>
<?php }
?>
</table>
</body>
</html>
Merci si vous voulez encore une fois m'aider. :)
Utilisateur anonyme
1 juin 2009 à 19:03
1 juin 2009 à 19:03
$sql= "SELECT * FROM news WHERE activite LIKE '%$rech%';
plutot
$sql= "SELECT * FROM news WHERE activite LIKE '%$rech%'"; non ?
plutot
$sql= "SELECT * FROM news WHERE activite LIKE '%$rech%'"; non ?
Utilisateur anonyme
1 juin 2009 à 19:05
1 juin 2009 à 19:05
Mais je trouve dommage que tu ais abandonné ta fonction de recherche....
oui moi aussi mais j'ai beau essayer, je ne trouves pas la solution.
J'ai essayé ce que tu m'a dis cela rajouté deux erreurs :s :
Notice: Undefined index: activite in C:\wamp\www\test\rechercher.php on line 12
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\test\rechercher.php on line 35
J'ai essayé ce que tu m'a dis cela rajouté deux erreurs :s :
Notice: Undefined index: activite in C:\wamp\www\test\rechercher.php on line 12
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\test\rechercher.php on line 35
Utilisateur anonyme
1 juin 2009 à 20:45
1 juin 2009 à 20:45
Quand j'ai ton erreur de mysql_fetch_array : c'est que je me suis planté de nom de table :)
Utilisateur anonyme
1 juin 2009 à 20:58
1 juin 2009 à 20:58
J'avoue sécher dsl .... Si le père passe par là.. il devrait pouvoir t'aider
Notice: Undefined index: activite in C:\wamp\www\test\rechercher.php on line 12
Si tu as cette erreur, c'est qu'il n'y a pas de champ activite dans ton formulaire. Peux-tu montrer le code du formulaire ?
Si tu as cette erreur, c'est qu'il n'y a pas de champ activite dans ton formulaire. Peux-tu montrer le code du formulaire ?
Le code est :
<div id ="choix"> Entrez ici votre recherche :<br />
<form method="post" action="rechercher.php">
<input type="text name="recherche" />
<input type="submit" value="rechercher" />
</form>
</div></td>
Voila il n'y a que ça, c'est un bout de code dans l'index.
Desolé si je n'ai pas le langage technique, je viens de commencer le html et php.
<div id ="choix"> Entrez ici votre recherche :<br />
<form method="post" action="rechercher.php">
<input type="text name="recherche" />
<input type="submit" value="rechercher" />
</form>
</div></td>
Voila il n'y a que ça, c'est un bout de code dans l'index.
Desolé si je n'ai pas le langage technique, je viens de commencer le html et php.
1 -
<input type="text name="recherche" />
il te manque un "
<input type="text" name="recherche" />
2 - Si le champ qui sert à la recherche s'appelle "recherche", la variable correspondante dans le script PHP est $_POST['recherche'], pas $_POST['activite']. Je croyais l'avoir expliqué dans le message 6. Pourquoi elle s'appellerait $_POST['activite'] plutôt que $_POST['tartampion'] ?
<input type="text name="recherche" />
il te manque un "
<input type="text" name="recherche" />
2 - Si le champ qui sert à la recherche s'appelle "recherche", la variable correspondante dans le script PHP est $_POST['recherche'], pas $_POST['activite']. Je croyais l'avoir expliqué dans le message 6. Pourquoi elle s'appellerait $_POST['activite'] plutôt que $_POST['tartampion'] ?
de nouveau un problème lol
Quel problème ? (avec message d'erreur s'il y en a un )
Quel problème ? (avec message d'erreur s'il y en a un )
lol je t'ai fais un imprim ecran cela parlera mieux
https://imageshack.com/
J'ai donc tapé dans la zone de texte de recherche >>> habitat. Il m'affiche comme tu peux le voir tout les activités habitat mais la colonne habitat n'y est pas, il le met dans nom et apres il y a les messages d'erreur. On approche du but :D.
https://imageshack.com/
J'ai donc tapé dans la zone de texte de recherche >>> habitat. Il m'affiche comme tu peux le voir tout les activités habitat mais la colonne habitat n'y est pas, il le met dans nom et apres il y a les messages d'erreur. On approche du but :D.
D'après les messages, tu n'as pas de champs adresse, couriel, ville et remarque dans ta table.
Si tu crois qu'ils existent, vérifie bien l'orthographe des noms de champs : adresse ou Adresse ? etc...
Si tu crois qu'ils existent, vérifie bien l'orthographe des noms de champs : adresse ou Adresse ? etc...
Mais si il t'affiche la colonne activité. Ce qu'il n'affiche pas, c'est le TITRE activité, normal, tu ne l'as pas mis. Tu n'as qu'à le rajouter
Bonne nuit
Bonne nuit
Ca fonctionne enfin :D :D, le père, je te remercie de ta patience, gentillesse et de ton savoir.
MERCI
MERCI