rechercher sur une table

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : rechercher sur une table

Re: rechercher sur une table

par sambael » 13 août 2014, 20:51

maintenant j'aimerai faire un moteur de reherche et afficher le resultat de la reherche sur un tableau(ce qui me pose probléme) et voilà mes codes function.php et rechercher.php avec ma base de données.



--
phpMyAdmin SQL Dump
-- version 3.2.0.1
-- http://www.phpmyadmin.net
--
-- Serveur: localhost
-- Généré le : Dim 03 Août 2014 à 17:45
-- Version du serveur: 5.1.36
-- Version de PHP: 5.3.0

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- Base de données: `stage`
--
CREATE DATABASE `stage` DEFAULT CHARACTER SET latin1 COLLATE
latin1_swedish_ci;
USE `stage`;

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

--
-- Structure de la table `administrateur`
--

CREATE TABLE IF NOT EXISTS `administrateur` (
`id_administrateur` bigint(11) NOT NULL AUTO_INCREMENT,
`identifiant` varchar(25) NOT NULL,
`user` varchar(25) NOT NULL,
`passeword` varchar(25) NOT NULL,
`level` varchar(25) NOT NULL,
PRIMARY KEY (`id_administrateur`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;

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

--
-- Structure de la table `arrivee`
--

CREATE TABLE IF NOT EXISTS `arrivee` (
`Id_Arrivee` bigint(11) NOT NULL AUTO_INCREMENT,
`Date_arrivee` varchar(25) NOT NULL,
`num_correspondance` varchar(25) NOT NULL,
`expediteur` varchar(25) NOT NULL,
`objet` varchar(25) NOT NULL,
`num_reponse` varchar(25) NOT NULL,
`designation` varchar(25) NOT NULL,
`observation` varchar(25) NOT NULL,
`id_depart` bigint(11) NOT NULL,
`id_dossier` bigint(11) NOT NULL,
`id_fournisseur` bigint(11) NOT NULL,
PRIMARY KEY (`Id_Arrivee`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=13 ;

--

--
-- Structure de la table `depart`
--

CREATE TABLE IF NOT EXISTS `depart` (
`Id_depart` bigint(11) NOT NULL AUTO_INCREMENT,
`num_ordre` varchar(25) NOT NULL,
`date_correspondance` varchar(25) NOT NULL,
`destinataire` varchar(25) NOT NULL,
`objet` varchar(25) NOT NULL,
`num_reponse` varchar(25) NOT NULL,
`observations` varchar(25) NOT NULL,
`id_destinataire` bigint(11) NOT NULL,
`id_dossier` bigint(11) NOT NULL,
`id_fournisseur` bigint(11) NOT NULL,
PRIMARY KEY (`Id_depart`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=24 ;


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

--
-- Structure de la table `destinataire`
--

CREATE TABLE IF NOT EXISTS `destinataire` (
`Id_Destination` bigint(11) NOT NULL AUTO_INCREMENT,
`Nom_Destination` varchar(25) NOT NULL,
PRIMARY KEY (`Id_Destination`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

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

--
-- Structure de la table `dossier`
--

CREATE TABLE IF NOT EXISTS `dossier` (
`id_dossier` bigint(11) NOT NULL AUTO_INCREMENT,
`num_dossier` varchar(25) NOT NULL,
`objet` varchar(25) NOT NULL,
`type` varchar(25) NOT NULL,
PRIMARY KEY (`id_dossier`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=12 ;

-

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

--
-- Structure de la table `fournisseur`
--

CREATE TABLE IF NOT EXISTS `fournisseur` (
`Id_fournisseur` bigint(11) NOT NULL AUTO_INCREMENT,
`Nom_fournisseur` varchar(25) NOT NULL,
`adresse_fournisseur` varchar(25) NOT NULL,
`email_fournisseur` varchar(25) NOT NULL,
`tel_fournisseur` varchar(25) NOT NULL,
`num_responsable` varchar(25) NOT NULL,
`destinataire` varchar(25) NOT NULL,
`ninea` varchar(25) NOT NULL,
`domaine_dactivite` varchar(25) NOT NULL,
PRIMARY KEY (`Id_fournisseur`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=18 ;
-------------------------------------------------------------------------------------------

rechercher.php
<?php require_once('Connections/connexion.php');
include('function.php');
?>

<form action="rechercher.php" method="POST">
<strong> Votre Recherche</strong><br/>
<input type="text" name="search"><br/><br/>
<input type="submit" value=" chercher" name="submit">
</form>

<?php
if(isset($_POST['submit']))
{
$search=mysql_real_escape_string(htmlentities(trim($_POST['search'])));
if(empty($search))
{
$error[]="Veuillez saisir une recherche";
}else if(strlen($search)<2)
{
$error[] ="Veuillez saisir une recherche qui depasse les 2 caracteres";
}
if(empty($error))
{
resultat_recherche($search);
}else{

foreach($error as $errors) {echo $errors."<br/>}";}
}
}


?>
-----------------------------------------


function.php


<?php require_once('Connections/connexion.php');
function resultat_recherche($search)
{
$ou="";
$search=preg_split('/[\s]+/',$search);
$total_resultat=count($search);
foreach($search as $key=>$searches)
{
$ou.="num_dossier LIKE '%$searches%'";
if($key !=($total_resultat-1))
{
$ou.="AND";
}
}
$query=mysql_query("SELECT * FROM dossier WHERE $ou");
$rows=mysql_num_rows($query);
if($rows)
{
while($row=mysql_fetch_assoc($query))
{
echo $row['num_dossier']."<br/><strong></strong><br/>";
}
}else echo"Pas de resultats pour votre recherche ".$searches;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans titre</title>
</head>

<body>
</body>
</html>

Re: rechercher sur une table

par sambael » 13 août 2014, 19:29

merci beaucoup ça marche!

Re: rechercher sur une table

par xTG » 13 août 2014, 19:15

Le message d'erreur indique qu'au lieu d'une ressource MySQL (qui est le résultat d'une requête) tu lui passes un booléen.
C'est donc que la requête a échouée, mysql_query renvoyant un booléen à false dans ce cas.

Pour debugguer tu peux utiliser cette syntaxe qui te permettra d'avoir un peu plus d'informations :
$execute = mysql_query($req) or die(mysql_error());
A noter que le driver Mysql n'est plus mis à jour, il est donc vivement recommandé d'utiliser Mysqli à la place ou bien l'interface d'abstraction PDO.

rechercher sur une table

par sambael » 13 août 2014, 18:49

bonjour j'aimerai qu'on m'aide sur ce code! je suis debutant en codage.
une erreur s'affiche:
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in .........
que dois-je faire svp merci





<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans titre</title>
</head>
<body>
<form action="recherche.php"method="post">
<input type="text" name="rech">
<input type="submit" value="rechercher" name="ok">
</form>
<?php
if (isset($_POST['ok'])){
include("Mysql_Connect.php");
extract($_POST);
$req = "select * FROM dossier where id_dossier like '%$rech%' or num_dossier like '%$rech%' " ;
$execute = mysql_query($req);
echo"<table border=3 >
<tr>
<td>id_dossier</td>
<td>num_dossier</td>
<td>objet</td>
<td>type</td>
</tr>";
while($ligne=mysql_fetch_array($execute)){
echo"<tr>
<td>".$ligne['id_dossier']."</td>
<td>".$ligne['num_dossier']."</td>
<td>".$ligne['objet']."</td>
<td>".$ligne['type']."</td>
</tr>";
}
echo"</table>";
}
?>
</body>
</html>