[php][sql]recherche multiple dans une base de donnée sql

jeff83fr Messages postés 1 Date d'inscription mardi 18 août 2009 Statut Membre Dernière intervention 13 octobre 2009 - 13 oct. 2009 à 17:48
titoulaka Messages postés 6 Date d'inscription lundi 1 mars 2010 Statut Membre Dernière intervention 13 mai 2010 - 13 mai 2010 à 20:45
Bonjour,

j'ai un problème de récupération a ma base de donné, je m explique je souhaiterai faire un annuaire je souhaiterai donc faire une page un peu comme les pages jaunes avec un champs qui/quoi et un champs ou.

Je vous laisse mon programme en php, si vous pourriez me donnez la solution je vous en serrez tres reconnaissant, en vous remerciant par avance.
voici mon programme :




<form action= "traitement.php" method="post">

Recherche rapide :</h1>
<form method="post" action="traitement.php">

<label for="qui" style="FONT-SIZE: 25pt;" >Qui?Quoi?ex:Artisan,Restaurant,Commerce...</label>


<label for="ou" style="FONT-SIZE: 25pt;" >Ou'ex:ville,code postal,adresse.</label>




</form>




<?php

// Maintenant on doit récupérer les 10 dernières entrées de la table
// On se connecte d'abord à MySQL :
mysql_connect("*****", "*****","******"); // Connexion à MySQL
mysql_select_db("********"); // Sélection de la base varpro

$qui = htmlspecialchars ($_POST['qui']);
$ou = htmlspecialchars ($_POST['ou']);

$reponse = mysql_query("SELECT CONCAT(Société,Activité) FROM varpro WHERE Activité Like '%$qui%'");
UNION
$reponse2 = mysql_query("SELECT CONCAT(Adresse,Code.Postal) FROM varpro WHERE Code.Postal Like '%$ou%'");



while ($donnees = mysql_fetch_array($reponse)
while ($donnees2 = mysql_fetch_array ($reponse2) )
{
?>

requete : <?php echo $donnees['Société']; ?>

Société : <?php echo $donnees2['Code.Postal']; ?>

Email :<?php echo $donnees['Email']; ?>

Site Internet:<?php echo $donnees['Site Internet']; ?>

Activite:<?php echo $donnees['Activité']; ?>

Adresse :<?php echo $donnees['Adresse']; ?>

Code.Postal:<?php echo $donnees['Code.Postal']; ?>

Ville : <?php echo $donnees['Ville']; ?>

Tel.n°1 <?php echo $donnees['Tel.n°1']; ?>

Tel.n°2<?php echo $donnees['Tel.n°2']; ?>

Fax :<?php echo $donnees['Fax']; ?>

Mobile :<?php echo $donnees['Mobile']; ?>




<?php
}
mysql_close();

?>

<?php echo $donnees['societe']; ?> :
Je vous laisse la structure de ma base de donnée pour vous aidez
CREATE TABLE IF NOT EXISTS `*******` (
`Société` text NOT NULL,
`Email` text NOT NULL,
`Site Internet` text NOT NULL,
`Activité` text NOT NULL,
`Adresse` text NOT NULL,
`Code.Postal` text NOT NULL,
`Ville` text NOT NULL,
`Tel.n°1` text NOT NULL,
`Tel.n°2` text NOT NULL,
`Fax` text NOT NULL,
`Mobile` text NOT NULL
) ENGINE =MyISAM DEFAULT CHARSET=latin1;

Vous l'aurez compris mon problème vient du fait que je doit faire une requête multiple puisque le programme doit avec une seul champs de requête effectué plusieurs contrôle dans différente catégorie de ma table
en fait j essaie de faire exactement ce que fait www.pagesjaunes.fr mais juste dans mon groupe.


Donc pour etre clair le probleme c'est que rien en marche lol

En vous remerciant par avance
Jeff83fr

1 réponse

titoulaka Messages postés 6 Date d'inscription lundi 1 mars 2010 Statut Membre Dernière intervention 13 mai 2010 1
13 mai 2010 à 20:45
salut,

Il te faut :
- le and de sql .
- la clause LIMIT ?
$reponse = mysql_query("SELECT CONCAT(Société,Activité)as txt1, CONCAT(Adresse,Code.Postal) as txt 2 FROM varpro, c WHERE Activité Like '%$qui%' and Code.Postal Like '%$ou%' LIMIT 0,10");


Petite question : le champ s'appel Code.postal ? où tu a une table Code ?

l'exemple te permet une pagination en gérant le premier paramètre du limit

tout sur la syntaxe sql de select => http://dev.mysql.com/doc/refman/5.1/en/select.html

@+
1
Rejoignez-nous