Recherche dans base mysql [Résolu]

Messages postés
67
Date d'inscription
lundi 17 mai 2010
Statut
Membre
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 

20/119 réponses

Messages postés
240
Date d'inscription
jeudi 1 mai 2008
Statut
Membre
Dernière intervention
19 juillet 2012
2
0
Merci
Bug de doigts :

la ligne

$recherche = 'LG'; a utiliser juste pour tes tests.

peut être mise en commentaire ( // en début de ligne )
Commenter la réponse de Lyle56
Messages postés
67
Date d'inscription
lundi 17 mai 2010
Statut
Membre
Dernière intervention
20 octobre 2010
0
Merci
nan le ; est bien la c'est juste que j'ai oublier de le mettre
Commenter la réponse de karlito911
Messages postés
67
Date d'inscription
lundi 17 mai 2010
Statut
Membre
Dernière intervention
20 octobre 2010
0
Merci
oui c'est deja fait
Commenter la réponse de karlito911
Messages postés
67
Date d'inscription
lundi 17 mai 2010
Statut
Membre
Dernière intervention
20 octobre 2010
0
Merci
je pense qu'il faire une initialisation avant nan
Commenter la réponse de karlito911
Messages postés
240
Date d'inscription
jeudi 1 mai 2008
Statut
Membre
Dernière intervention
19 juillet 2012
2
0
Merci
$recherche = 'LG'; a utiliser juste pour tes tests.
$temp = $_POST['search']


Oh la, j'ai oublié une chose ici ...

$recherche = 'LG'; a utiliser juste pour tes tests.
if(isset($_POST['search'])) {
   $temp = $_POST['search'];
} else {
 $temp = '';
}
Commenter la réponse de Lyle56
Messages postés
67
Date d'inscription
lundi 17 mai 2010
Statut
Membre
Dernière intervention
20 octobre 2010
0
Merci
donc pour pas faire de bétises

if(!$serveur) {
   echo('Connexion refusée.');  
} else if(!mysql_select_db('societe', $serveur)) {
   echo('Base non trouvée.');  
} 
$recherche = 'LG'; a utiliser juste pour tes tests.

if(isset($_POST['search'])) {
   $temp = $_POST['search'];
} else {
 $temp = '';
}
  if(!empty($temp) && $temp != '' ) 
  {
    $recherche = $temp;
    $recherche = strip_tags($recherche);
    search_for($recherche);
  } else {
     echo('merci de saisir un article à rechercher');
  }
}
Commenter la réponse de karlito911
Messages postés
67
Date d'inscription
lundi 17 mai 2010
Statut
Membre
Dernière intervention
20 octobre 2010
0
Merci
est ce bon ???
Commenter la réponse de karlito911
Messages postés
67
Date d'inscription
lundi 17 mai 2010
Statut
Membre
Dernière intervention
20 octobre 2010
0
Merci
Merci pour ton aide ca marche
Commenter la réponse de karlito911
Messages postés
240
Date d'inscription
jeudi 1 mai 2008
Statut
Membre
Dernière intervention
19 juillet 2012
2
0
Merci
Pas de problèmes;

Si tu veut faire "plus propre" hésite pas à ouvrir un autre sujet.

Le code pourrais encore être amélioré, pour pouvoir être utilisable sur d'autre table ou recherche ...
Commenter la réponse de Lyle56
Messages postés
67
Date d'inscription
lundi 17 mai 2010
Statut
Membre
Dernière intervention
20 octobre 2010
0
Merci
je reviens vers vous pour une petite question car en fait j'aimerais améliorer l'affichage des résultat voici mon probleme en gros:
tous est attaché la quantité est collé au prix unitaire donc en fait j'aurais voulu plutot un tableau classique avec des espaces histoire que ca soit plus clair
vaudrait-il mieux faire un fetch_row
Commenter la réponse de karlito911
Messages postés
240
Date d'inscription
jeudi 1 mai 2008
Statut
Membre
Dernière intervention
19 juillet 2012
2
0
Merci
Non non tu peut garder le while.
Mais le code à l'interieur devrais plutôt être :

while ($data = mysql_fetch_array($resultat))
{
echo"<tr> <td>";

echo ($data['Item'].'</td><td>';
echo $data['Description'].'</td><td>';
echo $data['Quantity'].'</td><td>';
echo $data['Price'].'</td><td>';
echo $data['Currency'].'</td><tr>';

}
Commenter la réponse de Lyle56
Messages postés
67
Date d'inscription
lundi 17 mai 2010
Statut
Membre
Dernière intervention
20 octobre 2010
0
Merci
ok merci en effet c'est déja plus lisible

j'aurais une autres question avec ce code comme il est la est-il possible de mettre des noms aux colonnes ??? en gros mettre Item en gras aux dessus de Item
Commenter la réponse de karlito911
Messages postés
67
Date d'inscription
lundi 17 mai 2010
Statut
Membre
Dernière intervention
20 octobre 2010
0
Merci
ou sinon a chaque fois devant la référence Item: ......la ref.....
Commenter la réponse de karlito911
Messages postés
240
Date d'inscription
jeudi 1 mai 2008
Statut
Membre
Dernière intervention
19 juillet 2012
2
0
Merci
Oui il suffit d'utiliser la balise TH

a mettre avant ta boucle.

echo "<table>";
echo "<caption> Tu peut même avoir un titre de tableau si tu veut. </caption>"
echo ('<tr><th>Item</th><th>Description</th><th>Quantité</th><th>Prix</th><th>En Stock</th> </tr>');

while ($data = mysql_fetch_array($resultat))


En gros pour chaque info tu ajoute un "titre de colone" <th>
Commenter la réponse de Lyle56
Messages postés
67
Date d'inscription
lundi 17 mai 2010
Statut
Membre
Dernière intervention
20 octobre 2010
0
Merci
ah merci je connaissais pas les balises TH en effet c'est super
Commenter la réponse de karlito911
Messages postés
67
Date d'inscription
lundi 17 mai 2010
Statut
Membre
Dernière intervention
20 octobre 2010
0
Merci
Je viens vers vous encore une fois car j'aurais une petite question:

j'aimerais bien faire un bouton par exemple sur ma page d'acceuil pour que l'utilisateur lorsque qu'il se connecte il clique sur le bouton mise a jour et que ca importe le nouveau fichier sour sql et mets a jour la table automatiquement.

Est ce que cela est possible?

et est ce que dans un champs de texte on peut lui dire de chercher dans différentes colonnes d'une table ?
Commenter la réponse de karlito911
Messages postés
240
Date d'inscription
jeudi 1 mai 2008
Statut
Membre
Dernière intervention
19 juillet 2012
2
0
Merci
Bonjour;

Alors, oui tu peut importer des données d'un fichier vers une base de données, pour la méthode tout dépend de ce que tu veut exactement ( type de fichier en entrée, insertion de tout ou partie des infos etc )

Pour ta deuxième question :
Tu peut rechercher comme tu veut dans ta base

ex :
SELECT * FROM table WHERE champ1 LIKE %TaRecherche% OR champ2 LIKE %TaRecherche% ORDER BY champTri ASC

Ici tu recherche la présence de "TaRecherche" dans le champ1 ou le champ 2 ou les deux.
La aussi pour t'aider il faudrait un peut plus de détails.


Sans maitrise, la puissance n'est rien
Il ne faut pas vendre la peau de l'ours, non il ne faut pas.
Commenter la réponse de Lyle56
Messages postés
67
Date d'inscription
lundi 17 mai 2010
Statut
Membre
Dernière intervention
20 octobre 2010
0
Merci
je reivens encore vers vous pour m'aider car en fait j'ai crée une autre page pour cette fois ci avoir des détails sur des factures et dans mon formulaire j'ai 3 champs: 1 client, 1 produit et le dernier numéro de commande et je voudrais renseinger un ou plusieurs champs et je fais recherché et qu'il me sorte le resultat sous forme de tableau donc en fait c'est pour affiner le résultat.
J'ai essayer plusieurs choses

donc voici mon code si vous pouvez me donner la voix car je pense qu'il faut que je définisse au debut les autres champs texte deans les if mais ca marche pas :





client

Produit :

Numéro de commande :








Commenter la réponse de karlito911
Messages postés
67
Date d'inscription
lundi 17 mai 2010
Statut
Membre
Dernière intervention
20 octobre 2010
0
Merci
voici mon nouveau code le petit soucis c'est que lorsque que je rentre nimporte koi dans un champs et que je fais rechercher ba il m'affiche toute la table entiere si vous pouviez me dire ou est mon erreur ca serrait cool

<form name= "form1" method="post" action="">
client

Produit :

Numéro de commande :

 


</form>

<?php

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

if(!mysql_select_db('societe', $serveur));

if(isset($_POST['texte']) OR isset($_POST['texte2']) OR isset($_POST['texte3'])) {
   $temp = $_POST['texte'];
    $temp2 = $_POST['texte2'];
     $temp3 = $_POST['texte3'];
} else {
 $temp = '';
 $temp2 = '';
 $temp3 = '';
}
  if((!empty($temp) && $temp != '') OR (!empty($temp2) && $temp2 != '') OR (!empty($temp3) && $temp3 != ''))
  {
    $recherche = $temp;
    $recherche2 = $temp2;
    $recherche3 = $temp3;
    $recherche = strip_tags($recherche);
    $recherche2 = strip_tags($recherche2);
    $recherche3 = strip_tags($recherche3);
    search_for($recherche, $recherche2, $recherche3);
  } else {
     echo('merci de rentrer un critère');
  }

function search_for($recherche, $recherche2, $recherche3) {

$sql = 'SELECT * FROM `facture` WHERE `Customer Name` LIKE \'%'. $recherche .'%\' OR Item LIKE \'%'. $recherche2 .'%\' OR `Customer Number` LIKE \'%'. $recherche3 .'%\'' ;
$resultat = mysql_query($sql) or die(' Req :' .$sql .''. mysql_error());

echo "
";
echo "\";
echo ('----
 customer Name  |</td>Invoice Number |, Item |, Quantity |, Item Description |, , Sales Order Number |, Fonctional Amount |, Currency |');

while ($data  = mysql_fetch_array($resultat))
{
echo"----, \";

echo $data['Customer Name'].'</td>'.', ';
echo $data['Invoice Number'].', '.', ';
echo $data['Item'].', '.', ';
echo $data['Quantity Invoiced'].', '.', ';
echo $data['Item Description'].', '.', '.', ';
echo $data['Sales Order Number'].', '.', ';
echo $data['Functional Amount'].', '.', ';
echo $data['Currency'];

echo ", \";
}
{
  echo "

";
 }
}
?>

accueil 




</html>
Commenter la réponse de karlito911
Messages postés
67
Date d'inscription
lundi 17 mai 2010
Statut
Membre
Dernière intervention
20 octobre 2010
0
Merci
quelqu'un aurait une idée a mon problème
Commenter la réponse de karlito911