Recherche des valeurs dans une base de données

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 : Recherche des valeurs dans une base de données

re: problèmes

par sabine » 07 mai 2009, 17:04

Merci encore de ta réponse,

Ma base de données est stockée sur Easyphp donc en local pour le moment, j'ai essayé le code suivant mais cela malheureusement ne fonctionne toujours pas ....

Voici mon code que j'ai fait dans notepad.

<?php
$mysqli = new mysqli('localhost', 'root', '', 'recherches');

$line = array();

$sql = "SELECT entreprise, promotion, departement, codepostal, ville, nom, prenom, activite FROM clients WHERE entreprise LIKE '%eiffage%'";

/* Requête "Select" retourne un jeu de résultats */
if ($result = $mysqli->query($sql)) {

while($obj = $result->fetch_object()){

$line[ ] = array(
"entreprise"=>$obj->entreprise,
"promotion"=>$obj->promotion,
"departement"=>$obj->departement,
"codepostal"=>$obj->codepostal,
"ville"=>$obj->ville,
"nom"=>$obj->nom,
"prenom"=>$obj->prenom,
"activite"=>$obj->activite);
}

/* Libération du jeu de résultats */
$result->close();
unset($obj);
}

$mysqli->close();

//pour voir les resultats en brut

var_dump($line);



?>

Quand je lance il m'affiche le message suivant :
query($sql)) { while($obj = $result->fetch_object()){ $line[ ] = array( "entreprise"=>$obj->entreprise, "promotion"=>$obj->promotion, "departement"=>$obj->departement, "codepostal"=>$obj->codepostal, "ville"=>$obj->ville, "nom"=>$obj->nom, "prenom"=>$obj->prenom, "activite"=>$obj->activite); } /* Libération du jeu de résultats */ $result->close(); unset($obj); } $mysqli->close(); //pour voir les resultats en brut var_dump($line); ?>

par stopher » 07 mai 2009, 16:36

L'utilisation de mysqli est un souhait ou , c'est par hasard ...

Car là tu jongles entre mysqli et mysql , je t'invite à rester d'un coté ou de l'autre , mais eviter de mélanger ...

Si on reste du coté de mysqli , je te propose un code de ce style :
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');

/*
 * Utilisez cette syntaxe de $connect_error si vous devez assurer
 * la compatibilité avec les versions de PHP avant 5.2.9 et 5.3.0.
 */
if (mysqli_connect_error()) {
    die('Erreur de connexion (' . mysqli_connect_errno() . ') '
            . mysqli_connect_error());
}


$line	=	array();

$sql = "SELECT Entreprise, Promotion, Departement, Codepostal, Ville, Nom, Prenom, Activite FROM clients WHERE Entreprise LIKE '%eiffage%'";

/* Requête "Select" retourne un jeu de résultats */
if ($result = $mysqli->query($sql)) {

	while($obj = $result->fetch_object()){
		
            $line[]	=	array(
            	"entreprise"=>$obj->Entreprise,
            	"Promotion"=>$obj->Promotion,
            	"Departement"=>$obj->Departement
            	//ect ...
            	);
       }

    /* Libération du jeu de résultats */
    $result->close();
    unset($obj);
}

$mysqli->close();

//pour voir les resultats en brut 

var_dump($line);
Avant de t'embêter avec un formulaire , est-ce que celà fonctionne ?

Ch .

Merci

par sabine » 07 mai 2009, 16:09

Merci pour vos réponses.

C'est vrai que je n'ai pas été trés claire dans mes explications.

J'ai crée une base de données qui contient une table avec 8 champs.

je souhaite créer un formulaire de recherche où l'utilisateur peut taper le nom de l'entreprise recherchée et faire afficher sous forme de tableau le résultat de la requête.

J'ai essayé avec vos explications, mais cela ne fonctionne toujours pas, quand je lance j'ai le message suivant qui s'affiche :
'.$sql.'
'.mysql_error()); while($data = mysql_fetch_array($req)) { echo ''.$data['entreprise'].' '.$data['promotion']. ''. $data['departement']; } // on ferme la connexion à mysql mysql_close(); ?>


Voici mon code modifié en tenant compte de vos modif.

<?php
// on se connecte à MySQL
$db=mysqli_connect("localhost","root","");
mysqli_select_db($db,"recherches");


$sql = "SELECT entreprise, promotion, departement FROM clients WHERE entreprise LIKE '%eiffage%'";

// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

while($data = mysql_fetch_array($req))
{
echo '</b>'.$data['entreprise'].' '.$data['promotion']. '</b>'. $data['departement'];
}

// on ferme la connexion à mysql
mysql_close();
?>


Merci d'avance pour votre aide.

sabine

par GiorgioLino » 07 mai 2009, 12:16

Bonjour Sabine,

2 remarques qui peuvent t'aider à résoudre ton problème :

1) Précise ton problème : Qu'est-ce qui ne fonctionne pas ? Comment as-tu testé ? Quel est le message d'erreur ?
Voici mon code php mais cela ne fonctionne pas ....
ne veut tout simplement rien dire. Et à la rigueur on l'aurait deviné car si le forum existe c'est un peu
pour aider à régler ce genre de problème.

2) Syntaxe de ton code :
$db=@mysqli_connect
Le caractère '@' n'est pas nécessaire pour déclarer ta variable $db, une erreur sans doute de ta part.
echo '"b>".$data['Entreprise'].' '.$data['Promotion'].'</b> ('.$data['Departement'].')';
Il manque un '<' pour la première balise </b>. Et si tu remplaçais ce bout de code par le suivant...
echo '</b>'.$data['Entreprise'].' '.$data['Promotion']. '</b>'. $data['Departement'];

Teste déja ça pour voir.

Bon code.

par stopher » 07 mai 2009, 12:14

Slt ,

Je ne comprends pas bien ta situation , tu souhaites remplacer "eiffage" par ce que l'utilisateur rempli dans ton formulaire ?

Si c'est le cas , il te suffit de construire ta requête au niveau de ton code qui traite le resultat de ton formulaire .
...

 $sql = '
     SELECT
          Entreprise,
          Promotion,
          Departement,
          Codepostal,
          Ville,
          Nom,
          Prenom,
          Activite
     FROM
          clients
     WHERE 
          Entreprise LIKE \'%'.mysql_real_escape_string($_POST['mot_clef']).'%\' ' ;

...

En espérant t'avoir aiguillé ..

Ch.

Recherche des valeurs dans une base de données

par sabine » 07 mai 2009, 11:48

Bonjour,

Je vous explique mon problème j'ai une base de données mysql et je souhaiterai via un formulaire pouvoir rechercher et afficher les valeurs d'une table.

Voici mon code php mais cela ne fonctionne pas ....
<?php
// on se connecte à MySQL
 $db=@mysqli_connect("localhost","root",""); //permet de se connecter au serveur le nom de la variable peut etre se que l'on veut
   	   mysqli_select_db($db,"recherches"); //permet de se connecter à notre fichier de base de données recherches


  // $result =mysqli_query ($db,SELECT * FROM `clients` WHERE `Entreprise`like '%eiffage%'); //création de la requête    
   $sql = "SELECT Entreprise, Promotion, Departement, Codepostal, Ville, Nom, Prenom, Activite FROM clients WHERE Entreprise LIKE '%eiffage%'"; 
   
   // on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 

while($data = mysql_fetch_array($req)) 
    {
    // on affiche les informations de l'enregistrement en cours
    echo '"b>".$data['Entreprise'].' '.$data['Promotion'].'</b> ('.$data['Departement'].')'; 
    }  
    
 
// on ferme la connexion à mysql
mysql_close();
?> 
Je souhaiterai ensuite récupérer la valeur saisie dans un formulaire mais je vois pas comment faire.

Merci de votre aide


sabine