Recherche dans base mysql [Résolu]

Messages postés
67
Date d'inscription
lundi 17 mai 2010
Dernière intervention
20 octobre 2010
- - Dernière réponse :  kohntark - 15 oct. 2010 à 23:50
bonjour a tous,

voila j'aurais besoin de votre aide car je me suis lancé dans un petit projet je suis en train de developper un site web local pour mon entreprise et niveau php mysql je suis pas au top j'ai des bases mais c'est tous.Le but étant que le personnel de la société est acces en temps réel a l'état du stock de la societé tout est référencé dans une base de donnée mysql.
j'utilise easyphp pour pouvoir mettre tous ca en place.
voici mon code:



<html>


Votre recherche :
<form method="post" action="stock.php">


</form>

<?php

$serveur = mysql_connect("127.0.0.1","****","****");

if ( ! $connexion )

die ("connexion impossible");

mysql_select_db('basededonne',$serveur);

$button = $_POST["submit"];
$recherche = $_POST["search"];

$sql = 'SELECT * FROM `stock` WHERE text LIKE "%$recherche%"' ;

$resultat = mysql_query($sql);


while ($data = mysql_fetch_array($resultat))
{
echo "
<center>
";
echo $data['Item'];
echo ",
";
echo $data['Description'];
echo ",

----

";
echo $data['Quantity'];
echo ",
";
echo $data['Price'];
echo ",

----

";
echo $data['Currency'];
echo "

</center>
";
};

mysql_close ();

?>


</html>

en fait j'ai mon formulaire sur la page stock.php et lorsque que je rentre une ref dans le champs texte je voudrais
afficher le résultat en dessous.
mais je comprend pas pourquoi ca ne marche pas pourtant j'ai regardé sur plein de site et mon code a l'air cohérent.
comment etre sur que lorsque l'on appui sur le bouton ca exécute la requete ?

Merci d'avance pour votre aide
Afficher la suite 

Votre réponse

20/119 réponses

Meilleure réponse
Messages postés
165
Date d'inscription
samedi 8 mai 2010
Dernière intervention
3 janvier 2015
3
Merci
autre chose pour cette partie :

$button = $_POST["submit"];
$recherche = $_POST["search"]



c'est l'attribut name et non type que tu dois mettre dans $_POST

Jette un coup d'oeil un un tuto ça peut t'aider

;-)

Merci bencoandco 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de bencoandco
Messages postés
165
Date d'inscription
samedi 8 mai 2010
Dernière intervention
3 janvier 2015
0
Merci
Salut !


cette partie de ton code n'a pas trop de sens pour moi :


if ( ! $connexion )

die ("connexion impossible");


$connexion n'est definie nulle part de plus je ne suis pas sur que la foncion die() soit bien utilisée il est possible qu'elle soit source de bug renseigne toi sur php manual sur @.


Et aussi utilise les balises de code pour colorer ton script c'est très important
;-)
Commenter la réponse de bencoandco
Messages postés
67
Date d'inscription
lundi 17 mai 2010
Dernière intervention
20 octobre 2010
0
Merci
Voila le code en plus lisible

Mais par contre j'ai toujours des erreurs



Votre recherche :
<form method="post" action="stock.php">


</form>

<?php

$serveur = mysql_connect("127.0.0.1","****","****");

mysql_select_db('societé', $serveur);

if ( ! $serveur )

die ("connexion impossible");

if (isset($_POST["submit"]) && isset($_POST["search"]))
{
$button = $_POST["submit"];
$recherche = $_POST["search"];
}

$sql = "SELECT 'Item' FROM `stock` WHERE text LIKE '%". $recherche ."%'" ;

$resultat = mysql_query($sql);


while ($data = mysql_fetch_array($resultat));
{
echo "
<center>
";
echo $data['Item'];
echo ",
";
echo $data['Description'];
echo ",

----

";
echo $data['Quantity'];
echo ",
";
echo $data['Price'];
echo ",

----

";
echo $data['Currency'];
echo "

</center>
";
};

mysql_close ();

?>



</html>


Notice: Undefined variable: recherche in C:\Program Files\EasyPHP-5.3.3\www\stock.php on line 50
et cette ligne 50 est :
$sql = "SELECT 'Item' FROM `stock` WHERE text LIKE '%". $recherche ."%'" ;

hors $recherche est bien défini au debut

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\Program Files\EasyPHP-5.3.3\www\stock.php on line 55
et cette ligne 55 est :
while ($data = mysql_fetch_array($resultat));


si quelqu'un peut m'aider car la je suis sur le point de perdre mes cheveux
Commenter la réponse de karlito911
Messages postés
165
Date d'inscription
samedi 8 mai 2010
Dernière intervention
3 janvier 2015
0
Merci
Salut !


il est possible que le bouton "submit" bug. Evites de lui mettre submit, ou un mot clé d'html ou php, comme nom essayes un truc simple du style name="bouton".

Du coup si ton bouton bug le prog ne passe pas la condition if et ne définit pas de valeur à $recherche.


du coup ce bug engendre un dysfonctionnement de ta requête sql et tu as la deuxième erreur...

;-)
Commenter la réponse de bencoandco
Messages postés
67
Date d'inscription
lundi 17 mai 2010
Dernière intervention
20 octobre 2010
0
Merci
ok merci pour ton aide je vais essayer de resoudre ce probleme
Commenter la réponse de karlito911
Messages postés
67
Date d'inscription
lundi 17 mai 2010
Dernière intervention
20 octobre 2010
0
Merci
Notice: Undefined variable: recherche in C:\Program Files\EasyPHP-5.3.3\www\stock.php on line 51

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\Program Files\EasyPHP-5.3.3\www\stock.php on line 56

J'ai testé ce que tu ma dit mais les erreurs persistes

le je ne vois pas comment faire
Commenter la réponse de karlito911
Messages postés
165
Date d'inscription
samedi 8 mai 2010
Dernière intervention
3 janvier 2015
0
Merci
Ta requete sql ne doit pas être bonne...

peux tu me renvoyer le code avec les modifs ?

Penses à étudier le tuto suivant http://www.siteduzero.com/tutoriel-3-14668-concevez-votre-site-web-avec-php-et-mysql.html pour mieux comprendre le fontionnement de $_POST
Commenter la réponse de bencoandco
Messages postés
67
Date d'inscription
lundi 17 mai 2010
Dernière intervention
20 octobre 2010
0
Merci
ba pourtant le site du zero je l'es lu de long en large mais mon cas précis n'est pas trop expliqué donc je met bout a bout chaque chose

voici mon code

Votre recherche :
<form method="post" action="stock.php">


</form>

<?php

$serveur = mysql_connect("127.0.0.1","root","admin");

mysql_select_db('fonex', $serveur);

if ( ! $serveur )

die ("connexion impossible");

if (isset($_POST["bouton"]) && isset($_POST["search"]))
{
$button = $_POST["bouton"];
$recherche = $_POST["search"];
};

$sql = "SELECT * FROM `stock` WHERE text LIKE '%". $recherche ."%'" ;

$result = mysql_query("fonex", $sql);

echo "<table>";

while ($voir = mysql_fetch_array($result))
{
echo "<tr>
<td>Nom : ".$voir[Item]."</td>
<td>Prenom : ".$voir[Description]."</td>
<td>Prenom : ".$voir[Quantity]."</td>
<td>Prenom : ".$voir[Price]."</td>
<td>Prenom : ".$voir[Currency]."</td>
</tr>";
}
?>



</html>


faut-il déclarer le tableau de résultat avant de l'afficher
Commenter la réponse de karlito911
Messages postés
165
Date d'inscription
samedi 8 mai 2010
Dernière intervention
3 janvier 2015
0
Merci
1/ dans cette partie là tu ne mets que la requete sql... en jetant un oeil sur php manual tu l'aurais vu..

$result = mysql_query("fonex", $sql);



2/ Si tu veux savoir d'où vient ton problème utilise le code de debug de php et mysql :

$valeur=mysql_query($requete);
$erreur1=mysql_error();
echo $erreur1;
echo $valeur;

lance ceci à chaque requete que tu fais ça t'informera de l'erreur que tu as faite...
Commenter la réponse de bencoandco
Messages postés
67
Date d'inscription
lundi 17 mai 2010
Dernière intervention
20 octobre 2010
0
Merci
be euh pourtant dans l'exemple manuel php regarde ce qu'il fond

http://www.manuelphp.com/cours/cours.php?id=36

Voila ce qu'il me met
[b]Notice: Undefined variable: recherche in C:\Program Files\EasyPHP-5.3.3\www\stock.php on line 53
ArrayResource id #5/b
Commenter la réponse de karlito911
Messages postés
165
Date d'inscription
samedi 8 mai 2010
Dernière intervention
3 janvier 2015
0
Merci
Dans cet exemple ils utilisent mysql_db_query() et toi tu utilise mysql_query... mets y un peu du tien kan mem
Commenter la réponse de bencoandco
Messages postés
165
Date d'inscription
samedi 8 mai 2010
Dernière intervention
3 janvier 2015
0
Merci
Autre question pourquoi y a t il une erreur à la ligne 53 alors que le script que tu m'envois ne fait que 45 lignes
Commenter la réponse de bencoandco
Messages postés
67
Date d'inscription
lundi 17 mai 2010
Dernière intervention
20 octobre 2010
0
Merci
ah oui mince j'avais pas vu de db

car je suis en train de testé des morceaux de code pour voir si j'arrive a trouvé l'erreur

mais l'erreur est toujours sur la lgine de la requete qui est:

$sql = "SELECT * FROM `stock` WHERE 'text' LIKE '%". $recherche ."%'" ;
Commenter la réponse de karlito911
Messages postés
165
Date d'inscription
samedi 8 mai 2010
Dernière intervention
3 janvier 2015
0
Merci
Bon ben debug a l'aide de mysql_error comme je te l'ai dit dans un post precedent.

et dit moi ce que ça te donne avec mysql_query à la place de mysql_db...
Commenter la réponse de bencoandco
Messages postés
67
Date d'inscription
lundi 17 mai 2010
Dernière intervention
20 octobre 2010
0
Merci
mysql_error me retourne Ressource id #5
Commenter la réponse de karlito911
Messages postés
67
Date d'inscription
lundi 17 mai 2010
Dernière intervention
20 octobre 2010
0
Merci
Pardon j'avais oublié le Array

mysql_error me retourne Array Ressource id #5
Commenter la réponse de karlito911
Messages postés
165
Date d'inscription
samedi 8 mai 2010
Dernière intervention
3 janvier 2015
0
Merci
As tu testé cette requête directement dans phpmyadmin dans la partie sql en remplaçant $recherche par une chaine ?

Y a t il vraiment un champ 'text' dans la table de la base de donnée ?



stock est il bien une table ?


D'où sort tu cette requête ?

Essaye d'enlever les guillemets de stock.....
Commenter la réponse de bencoandco
Messages postés
67
Date d'inscription
lundi 17 mai 2010
Dernière intervention
20 octobre 2010
0
Merci
la requete je l'es crée moi même en regardant sur le siteduzero

si je remplace $recherche par example par %LG% dans phpmyadmin ba sa marche il me trouve des références de produits qui contient LG

stock est bien une table dans ma base de donnée

tout est bon la je pige pas
Commenter la réponse de karlito911
Messages postés
165
Date d'inscription
samedi 8 mai 2010
Dernière intervention
3 janvier 2015
0
Merci
Il ya deux erreurs que j'ai vu dans ton code :


if (isset($_POST["bouton"]) && isset($_POST["search"]))
{
$button = $_POST["bouton"];
$recherche = $_POST["search"];
};


un point virgule après le if qui est en trop...

<td>Nom : ".$voir[Item]."</td>
<td>Prenom : ".$voir[Description]."</td>
<td>Prenom : ".$voir[Quantity]."</td>
<td>Prenom : ".$voir[Price]."</td>
<td>Prenom : ".$voir[Currency]."</td>
</tr>";


pour appeler les elements du tableau tu dois mettre une chaîne

au lieu de $voir[Item] ---> $voir['Item']


En attendant scrute bien ton code...
Commenter la réponse de bencoandco
Messages postés
67
Date d'inscription
lundi 17 mai 2010
Dernière intervention
20 octobre 2010
0
Merci
Voila le code aujourd'hui :)


Vot
re recherche :
<form method="post" action="stock.php">


</form>

<?php

$serveur = mysql_connect("127.0.0.1","root","****");

mysql_select_db('société', $serveur);

if ( ! $serveur )

die ("connexion impossible");

if (isset($_POST['bouton']) && isset($_POST['search']))
{
$button = $_POST['bouton'];
$recherche = $_POST['search'];
}

$sql = "SELECT * FROM `stock` WHERE 'Item' LIKE '%". $recherche ."%'" ;

$resultat = mysql_query($sql);

while ($data = mysql_fetch_array($resultat))
{
echo "
<center>

";

echo $data['Item'];
echo ",

";

echo $data['Description'];
echo ",

----

";

echo $data['Quantity'];
echo ",

";

echo $data['Price'];
echo ",

----

";

echo $data['Currency'];
echo "

</center>
";
}

?>



</html>


mon probleme c'est que lorsque que je lance la page stock il m'affiche tout de suite toute la table sql alors que moi je voudrait qu'il m'affiche le résultat de la recherche avec le mot qui y a dans le champs texte du formulaire :euh:
j'ai toujours cette notice qui s'affiche Notice: Undefined variable: recherche in C:\Program Files\EasyPHP-5.3.3\www\stock.php on line 52

Je pesne qu'il manque pu grand chose donc si quelqu'un aurait une idée ^^
Commenter la réponse de karlito911

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.