Forum-webmaster
Technique - programmation => PHP / MySQL => Message commencé par: kurtspirit le le 09-05-2012 a 10:00:17

Titre: Aide pour variable Get avec multiples choix
Posté par: kurtspirit le le 09-05-2012 a 10:00:17

Bonjour,
je suis à la recherche d'aide sur un script qu'un ami m'a entamé.
Le but étant de trouver des correspondances sur une référence , étant dans le milieu de la pile et batterie.
En fait pour faire simple, si je tape par exemple "sr43" il faudrait que ça me réponde "corres1,corres2...." et à l'inverse, si je tape une correspondance au hasard, il faudrait que ça me donne aussi les résultats.

Là est mon problème... Le script actuel est divisé en 2 champs de recherche, ref-->correspondance et inverse.. Le problème est que ce système est pas simple pour les employés...

Voici le script actuel :


Code:
<?php
//variable base de donnée
define("HOST","127.0.0.1");
define("USER","root");
define("PASSWORD","");
define("BDD","test");

//si envoi de formulaire
if(isset($_GET['subnom']) OR isset($_GET['subref']))
{
   //connexion base de donnée
   if(! $mysqlserveurid = @mysql_connect (HOST,USER,PASSWORD)) echo "connexion à la base de donnée impossible";
   elseif(! @mysql_select_db(BDD)) echo "base de donnée inconnue";

   $outtablg=array();
   //requete si on donne un nom
   if(isset($_GET['subnom']))
      $requete = "SELECT * FROM pile WHERE reference = (SELECT reference FROM pile WHERE nom = '".$_GET["nom"]."')";
   //requete si on donne une reference
   elseif(isset($_GET['subref']))
      $requete = "SELECT * FROM pile WHERE reference = '".$_GET["ref"]."'";

   $resultat = mysql_query($requete);
   if (@mysql_num_rows($resultat)>0)
   {
   while($tablg = @mysql_fetch_row($resultat))
      $outtablg[] = $tablg;
   }
   @mysql_close($sqlid);

   //affichage du resultat
   echo "<table border=1 style='width:400px;margin:40px auto;'>";
   echo "<tr><td COLSPAN=2><b>RESULTAT</b></td></tr>";
   if(sizeof($outtablg)>0)
   {
   foreach($outtablg as $value)
      echo "<tr><td>".$value[1]."</td><td>".$value[2]."</td></tr>";
   }
   else
      echo "<tr><td COLSPAN=2>aucun resultat</td></tr>";
   echo "</table>";
}

//formulaire
echo "<table style='width:400px;margin:0 auto;font-family: Verdana, Geneva, sans-serif; font-style: italic;'>";
echo "<tr><td COLSPAN=2><b>Nom -> Reference</b></td></tr>";
echo "<form method='GET' action=''><tr><td>Entrer le nom : </td><td><input type='text' name='nom'><input type='submit' name='subnom' value='OK'/></td></tr></form>";
echo "<tr height='30px'><td COLSPAN=2></td></tr>";
echo "<tr><td COLSPAN=2><b>Reference -> Nom</b></td></tr>";
echo "<form mthod='POST' action=''><tr><td>Entrer la référence : </td><td><input type='text' name='ref'><input type='submit' name='subref' value='OK'/></td></tr></form>";
echo "</table>";
?>


et la table :


Code:
-- phpMyAdmin SQL Dump
-- version 3.1.1
-- http://www.phpmyadmin.net
--
-- Serveur: localhost
-- Généré le : Jeu 03 Mai 2012 à 21:19
-- Version du serveur: 5.1.30
-- Version de PHP: 5.2.8

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- Base de données: `reference`
--

-- --------------------------------------------------------

--
-- Structure de la table `pile`
--

CREATE TABLE IF NOT EXISTS `pile` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`reference` varchar(255) NOT NULL,
`nom` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=9 ;

--
-- Contenu de la table `pile`
--

INSERT INTO `pile` (`id`, `reference`, `nom`) VALUES
(1, 'pileA', 'A323PO'),
(2, 'pileA', 'KA78PO'),
(3, 'pileB', 'KRO45'),
(4, 'pileB', 'LG300'),
(5, 'pileB', 'JB007'),
(6, 'pileC', '9999'),
(7, 'pileC', '8888'),
(8, 'pileC', '7777');


Donc le but final est d'avoir un seul champ de recherche et que si l'on tape n'importe quelle ref , ça nous donne les correspondances. Je pense qu'il faut créer d'autres tables afin d'éclaircir tout ça mais je nage un peu là j'avoue...

Si quelqu'un à une idée, je suis preneur :)

Merci par avance!

Bonne journée.


Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.