Recherche dans un db toutes les rows corespondant

Résolu
MVTNV Messages postés 19 Date d'inscription samedi 15 janvier 2005 Statut Membre Dernière intervention 20 janvier 2008 - 11 févr. 2005 à 22:33
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 - 13 févr. 2005 à 10:14
Bonjour,
Je suis nouveau en php et mysql.
je veut faire un list box qui descend avec les resultats du recherche
example
$nom = "Blazer"
select nom from list where nom = "$nom"
mais il faut savoire que "Blazer" fait qu'une partie des noms
nom est par example "Chevrolet Blazer Pickup", "Citroen C5", "Chevrolet <gras>Blazer Limited"
Maintenant il doit me sortir toutes les nom ou ce trouve le lettres"Blazer" et en order alphabetique
<select option>
---------------------------------
| nom |
---------------------------------
| Chevrolet Blazer Limited |
| Chevrolet Blazer Pickup |
| Chevrolet Blazer S10 |
---------------------------------

Merci d'avance
Marc

13 réponses

cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
13 févr. 2005 à 10:14
Tu peux cliquer sur "réponse acceptée" stp ?



merci

Vulgarisation informatique : Entraide, dépannage et vulgarisation informatique

Forum d'entraide informatique (14 catégories)
3
tucsoufle Messages postés 1250 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 30 septembre 2007 1
11 févr. 2005 à 22:49
salut,

la requete a faire c'est ceci :

$sql = "SELECT nom FROM list WHERE nom LIKE '%".$nom."%'";



avec cette ligne ca devrait marcher

@+

Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.
Mon site Internet
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
11 févr. 2005 à 23:05
Salut,



tu as combien d'enregistrements dans ta table ?



a +

Vulgarisation informatique : Entraide, dépannage et vulgarisation informatique

Forum d'entraide informatique (14 catégories)
0
MVTNV Messages postés 19 Date d'inscription samedi 15 janvier 2005 Statut Membre Dernière intervention 20 janvier 2008
12 févr. 2005 à 08:33
Salut,

Merci a tucsoufle pour le reponse je vais l'essaye de suite.

Pour repondre a la question de Anthomicro Il y a ± 26500 d'enregistrements dans le plus grand des db. Trop grand?

A +

Marc
0

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

Posez votre question
MVTNV Messages postés 19 Date d'inscription samedi 15 janvier 2005 Statut Membre Dernière intervention 20 janvier 2008
12 févr. 2005 à 09:14
Salut,

J'ai essaye la code mais peut-être il y un erreure dans le reste de ma code parce que la seule chose que je vois c'est la suite
--------------------------------------------------------------------------------------------
'); echo('<SELECT handelsafk="">'); /* een uitklaplijstmaken met de soorten waarin de inhoud van soortnaam overeenkomt*/ while($option=mysql_fetch_array($query_result)) { echo('<OPTION value="'.$option['srtnm'].'" selected>'.$option['srtnm']</OPTION>; 1 23 4 4 32 1 } echo('</SELECT>'); ?>
--------------------------------------------------------------------------------------------
<?php

$db
= mysql_connect
("localhost","","");
//connection vers mysql
mysql_select_db
("plant",$db
)
or die
("Database non disponible");

if
(isset
($_post
["dossier"])
&& isset
($_post
["soortnaam"])
&&
$_post
["soortnaam"]!="")
{

$dossier
=
$_post
["dossier"];

$soortnaam
=
$_post
["soortnaam"];
switch
($dossier
)

{

// Verifier dans quelle
database que la variété doits être rechecher

case
"1":

$dbse
=
"artikelsb";
break
;

case
"2":

$dbse
=
"artikelplant";
break
;

case
"3":

$dbse
=
"artikelboom";
break
;

}

$srtnm
=
"select handelsafk,groepsomsc from".$dbse
."where handelsafk like '%"
.strstoupper
($_post
[$soortnaam
])."%' or groepsomsc like '%"
.ucfirst
(strtolower
($_post
[$soortnaam
]))."%' order by handelsafk";
// zoek de soortnaam

$query_result
=mysql_query
($srtnm
,$db
);
/* $query_result = mysql_db_query($dbse,$srtnm,$db)*/
echo
('<form action=prijzenverwerken.php methode="post">');
echo
('<select handelsafk="">');
/* Faire une liste déroulandte
while($option=mysql_fetch_array
($query_result
))

{
echo
('<option value= "'.$option['handelsafk'].'">'.$option['groepsomsc']</option>;

}
echo
('</select>');

}
?>
---------------------------------------------------------------------------------------------
Merci de vouloire verifie et de me tenir au courant ou se trouve l'erreure
a+
Marc
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
12 févr. 2005 à 11:54
Alors justement 26000 enregistrements c'est énorme et la méthode du like devient inappropriée.



Autant prendre les indexs FULLTEXT.



http://www.databasejournal.com/features/mysql/article.php/1578331



L'avantage aussi des indexs fulltext est que tu peux utiliser les opérateurs booléens (comme google par exemple)



a ++


Vulgarisation informatique : Entraide, dépannage et vulgarisation informatique

Forum d'entraide informatique (14 catégories)
0
tucsoufle Messages postés 1250 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 30 septembre 2007 1
12 févr. 2005 à 12:20
anthomicro

pourquoi dit tu que a partir d'un certain nombre d'enregistrement le LIKE devient inaproprié ?

c'est trop lent, nécéssite trop la base de donnée ???

et à partir de combien d'enregistrement est ce que ca le devient ?

Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.
Mon site Internet
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
12 févr. 2005 à 12:40
Bah tout dépend de l'architecture de ta base pour ce qui est du nombre
d'enregistrements, mais le LIKE nécessite beaucoup de ressources. Bref
quand tu as 1000 enregistrements ça peut passer, mais 26000 ça devient
sérieux ;-)



Le seul désavantage est que les indexs ralentissent les requêtes
d'insertion et d'update (c'est quand même négligeable par rapport au
gain de sélection)



a +

Vulgarisation informatique : Entraide, dépannage et vulgarisation informatique

Forum d'entraide informatique (14 catégories)
0
tucsoufle Messages postés 1250 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 30 septembre 2007 1
12 févr. 2005 à 12:44
oki merci pour ta reponse !

@+

Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.
Mon site Internet
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
12 févr. 2005 à 12:48
Vulgarisation informatique : Entraide, dépannage et vulgarisation informatique

Forum d'entraide informatique (14 catégories)
0
Bonjour,
Merci a Anthomicro pour votre reponse question le database.

Mais j'ai encore toujours ce problème que ça ne marche pas dans mon programme.
Quand je l'essaie sur internet il me donne la reponse suivante
Parse error: parse error en c:\webserver\pass\boomplantbloem.php on line 38line 38 echo ('<option value "'.$option['handelsafk'].'">'.$option['groepsomsc'].</option>

Handelsafk et groepsomsc sont les 2 champs qui doivent aparaitre dans la list deroulante


Je compte sur vous pour le résoudre, moi je ne sais plus. J'ai verifie ligne par ligne mais je ne vois pas

Merci
A+
Marc
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
12 févr. 2005 à 17:56
echo '<option value = "',$option['handelsafk'],'">',$option['groepsomsc'],'</option>';


a ++


Vulgarisation informatique : Entraide, dépannage et vulgarisation informatique

Forum d'entraide informatique (14 catégories)
0
MVTNV Messages postés 19 Date d'inscription samedi 15 janvier 2005 Statut Membre Dernière intervention 20 janvier 2008
13 févr. 2005 à 09:07
Bonjour,

Merci a Anthomicro de m'avoire aide.

Maintenant ça marche.

Merci
A+
Marc
0
Rejoignez-nous