Recherche dans base mysql

Résolu
karlito911
Messages postés
67
Date d'inscription
lundi 17 mai 2010
Statut
Membre
Dernière intervention
20 octobre 2010
- 8 sept. 2010 à 15:56
 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
A voir également:

119 réponses

bencoandco
Messages postés
165
Date d'inscription
samedi 8 mai 2010
Statut
Membre
Dernière intervention
3 janvier 2015

9 sept. 2010 à 14:34
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

;-)
3
bencoandco
Messages postés
165
Date d'inscription
samedi 8 mai 2010
Statut
Membre
Dernière intervention
3 janvier 2015

9 sept. 2010 à 14:29
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
;-)
0
karlito911
Messages postés
67
Date d'inscription
lundi 17 mai 2010
Statut
Membre
Dernière intervention
20 octobre 2010

9 sept. 2010 à 14:45
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
0
bencoandco
Messages postés
165
Date d'inscription
samedi 8 mai 2010
Statut
Membre
Dernière intervention
3 janvier 2015

10 sept. 2010 à 09:03
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...

;-)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
karlito911
Messages postés
67
Date d'inscription
lundi 17 mai 2010
Statut
Membre
Dernière intervention
20 octobre 2010

10 sept. 2010 à 09:47
ok merci pour ton aide je vais essayer de resoudre ce probleme
0
karlito911
Messages postés
67
Date d'inscription
lundi 17 mai 2010
Statut
Membre
Dernière intervention
20 octobre 2010

10 sept. 2010 à 10:16
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
0
bencoandco
Messages postés
165
Date d'inscription
samedi 8 mai 2010
Statut
Membre
Dernière intervention
3 janvier 2015

10 sept. 2010 à 11:00
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
0
karlito911
Messages postés
67
Date d'inscription
lundi 17 mai 2010
Statut
Membre
Dernière intervention
20 octobre 2010

10 sept. 2010 à 11:28
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
0
bencoandco
Messages postés
165
Date d'inscription
samedi 8 mai 2010
Statut
Membre
Dernière intervention
3 janvier 2015

10 sept. 2010 à 12:40
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...
0
karlito911
Messages postés
67
Date d'inscription
lundi 17 mai 2010
Statut
Membre
Dernière intervention
20 octobre 2010

10 sept. 2010 à 15:24
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
0
bencoandco
Messages postés
165
Date d'inscription
samedi 8 mai 2010
Statut
Membre
Dernière intervention
3 janvier 2015

10 sept. 2010 à 15:32
Dans cet exemple ils utilisent mysql_db_query() et toi tu utilise mysql_query... mets y un peu du tien kan mem
0
bencoandco
Messages postés
165
Date d'inscription
samedi 8 mai 2010
Statut
Membre
Dernière intervention
3 janvier 2015

10 sept. 2010 à 15:35
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
0
karlito911
Messages postés
67
Date d'inscription
lundi 17 mai 2010
Statut
Membre
Dernière intervention
20 octobre 2010

10 sept. 2010 à 15:40
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 ."%'" ;
0
bencoandco
Messages postés
165
Date d'inscription
samedi 8 mai 2010
Statut
Membre
Dernière intervention
3 janvier 2015

10 sept. 2010 à 15:50
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...
0
karlito911
Messages postés
67
Date d'inscription
lundi 17 mai 2010
Statut
Membre
Dernière intervention
20 octobre 2010

10 sept. 2010 à 15:56
mysql_error me retourne Ressource id #5
0
karlito911
Messages postés
67
Date d'inscription
lundi 17 mai 2010
Statut
Membre
Dernière intervention
20 octobre 2010

10 sept. 2010 à 15:58
Pardon j'avais oublié le Array

mysql_error me retourne Array Ressource id #5
0
bencoandco
Messages postés
165
Date d'inscription
samedi 8 mai 2010
Statut
Membre
Dernière intervention
3 janvier 2015

10 sept. 2010 à 16:10
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.....
0
karlito911
Messages postés
67
Date d'inscription
lundi 17 mai 2010
Statut
Membre
Dernière intervention
20 octobre 2010

10 sept. 2010 à 16:55
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
0
bencoandco
Messages postés
165
Date d'inscription
samedi 8 mai 2010
Statut
Membre
Dernière intervention
3 janvier 2015

13 sept. 2010 à 08:48
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...
0
karlito911
Messages postés
67
Date d'inscription
lundi 17 mai 2010
Statut
Membre
Dernière intervention
20 octobre 2010

13 sept. 2010 à 11:04
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 ^^
0