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

119 réponses

Lyle56 Messages postés 240 Date d'inscription jeudi 1 mai 2008 Statut Membre Dernière intervention 19 juillet 2012 2
17 sept. 2010 à 11:13
Bug de doigts :

la ligne

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

peut être mise en commentaire ( // en début de ligne )
0
karlito911 Messages postés 67 Date d'inscription lundi 17 mai 2010 Statut Membre Dernière intervention 20 octobre 2010
17 sept. 2010 à 11:13
nan le ; est bien la c'est juste que j'ai oublier de le mettre
0
karlito911 Messages postés 67 Date d'inscription lundi 17 mai 2010 Statut Membre Dernière intervention 20 octobre 2010
17 sept. 2010 à 11:15
oui c'est deja fait
0
karlito911 Messages postés 67 Date d'inscription lundi 17 mai 2010 Statut Membre Dernière intervention 20 octobre 2010
17 sept. 2010 à 11:29
je pense qu'il faire une initialisation avant nan
0

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

Posez votre question
Lyle56 Messages postés 240 Date d'inscription jeudi 1 mai 2008 Statut Membre Dernière intervention 19 juillet 2012 2
17 sept. 2010 à 11:38
$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 = '';
}
0
karlito911 Messages postés 67 Date d'inscription lundi 17 mai 2010 Statut Membre Dernière intervention 20 octobre 2010
17 sept. 2010 à 11:59
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');
  }
}
0
karlito911 Messages postés 67 Date d'inscription lundi 17 mai 2010 Statut Membre Dernière intervention 20 octobre 2010
17 sept. 2010 à 11:59
est ce bon ???
0
karlito911 Messages postés 67 Date d'inscription lundi 17 mai 2010 Statut Membre Dernière intervention 20 octobre 2010
17 sept. 2010 à 12:10
Merci pour ton aide ca marche
0
Lyle56 Messages postés 240 Date d'inscription jeudi 1 mai 2008 Statut Membre Dernière intervention 19 juillet 2012 2
17 sept. 2010 à 12:53
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 ...
0
karlito911 Messages postés 67 Date d'inscription lundi 17 mai 2010 Statut Membre Dernière intervention 20 octobre 2010
20 sept. 2010 à 14:49
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
0
Lyle56 Messages postés 240 Date d'inscription jeudi 1 mai 2008 Statut Membre Dernière intervention 19 juillet 2012 2
20 sept. 2010 à 19:18
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>';

}
0
karlito911 Messages postés 67 Date d'inscription lundi 17 mai 2010 Statut Membre Dernière intervention 20 octobre 2010
21 sept. 2010 à 10:06
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
0
karlito911 Messages postés 67 Date d'inscription lundi 17 mai 2010 Statut Membre Dernière intervention 20 octobre 2010
21 sept. 2010 à 10:46
ou sinon a chaque fois devant la référence Item: ......la ref.....
0
Lyle56 Messages postés 240 Date d'inscription jeudi 1 mai 2008 Statut Membre Dernière intervention 19 juillet 2012 2
21 sept. 2010 à 11:05
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>
0
karlito911 Messages postés 67 Date d'inscription lundi 17 mai 2010 Statut Membre Dernière intervention 20 octobre 2010
21 sept. 2010 à 11:42
ah merci je connaissais pas les balises TH en effet c'est super
0
karlito911 Messages postés 67 Date d'inscription lundi 17 mai 2010 Statut Membre Dernière intervention 20 octobre 2010
6 oct. 2010 à 09:17
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 ?
0
Lyle56 Messages postés 240 Date d'inscription jeudi 1 mai 2008 Statut Membre Dernière intervention 19 juillet 2012 2
6 oct. 2010 à 11:20
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.
0
karlito911 Messages postés 67 Date d'inscription lundi 17 mai 2010 Statut Membre Dernière intervention 20 octobre 2010
7 oct. 2010 à 16:47
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 :








0
karlito911 Messages postés 67 Date d'inscription lundi 17 mai 2010 Statut Membre Dernière intervention 20 octobre 2010
8 oct. 2010 à 16:39
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>
0
karlito911 Messages postés 67 Date d'inscription lundi 17 mai 2010 Statut Membre Dernière intervention 20 octobre 2010
11 oct. 2010 à 17:06
quelqu'un aurait une idée a mon problème
0
Rejoignez-nous