Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1686 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  question a 10 sous pour les pros...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

question a 10 sous pour les pros...

n°691669
jerkeve
Posté le 03-04-2004 à 15:20:09  profilanswer
 

... ca veut dire quoi :

Citation :

$var="'%$tablo[0]%'";

???
 
en d'autre terme, a quoi servent ces %, et pourquoi ces doubles quotes ?
 
MERCI de vos lumieres, je cherche sur gougueule depuis 1 heure san trouver, et je bloque sur ce bout de code :/ ...

mood
Publicité
Posté le 03-04-2004 à 15:20:09  profilanswer
 

n°691684
sashock
Posté le 03-04-2004 à 16:21:51  profilanswer
 

tu pourrais pas mettre plus de code?
là ce que ca fait c'est juste initialiser une variabla avec la valeur de la 1ere case de tablo entourée de "%".
C'est pour une recherche dans une base mySQL ce truc non?

n°691688
kalex
Posté le 03-04-2004 à 16:32:52  profilanswer
 

Ouais, à tous les coups, c'est utilisé pour faire un LIKE en SQL.
Et le % du début va demander pas mal de ressources...

n°691701
jerkeve
Posté le 03-04-2004 à 16:58:07  profilanswer
 

exact, le but c'est d'utiliser les variable d'un tableau rempli avec des mots saisis ds un moteur de recherche.
 
mais je ne pige pas a quoi servent les % au debut et à la fin ???
Pourquoi beaucoup de ressources ?  
 
voila le code du moteur que je tente de personnaliser (j'en ai juste mis un bout pour ne pas prendre 3 pages, le reste n'ets plus en rapport avec ma question, il me semble :
 

Citation :


/* $mot, c'est le nom du champ du formulaire de saisie du moteur /*
$mot=strtolower($mot);
$mots=split(" ",$mot);
$nombre_mots=count($mots);
 
/* definitions des champs a explorer dans la base */
$z=1;
$texte="Recherche sur le(s) mot(s) : "$mots[0]"";
$phrase="'%$mots[0]%'";
$phrase2="'%$mots[0]%'";
 
while($z<$nombre_mots)
 {
 $texte.=" ";
 
 $phrase.=" ".$et_ou." champ1 like '%$mots[$z]%'";
 $phrase2.=" ".$et_ou." champ2 like '%$mots[$z]%'";
 if($et_ou=="and" ){$texte.="et";}else{$texte.="ou";}
 $texte.=" &quot;$mots[$z]&quot;";
 $z++;
 }
echo "$texte"."<br><br>";
 
 
if(!isset($debut)){$debut=0;}
$page=0;
$debut=$_GET[page]*$limit;
 
//==============================================================
// REQUETE DANS LA TABLE matable  
 
$requete=mysql_db_query("$sql_bdd","select count(*) from matable where champ1 like $phrase or dchamp2 like $phrase2",$db_link);
$nb_total=mysql_result($requete,0,"count(*)" );
 
 
$requete=mysql_db_query("$sql_bdd","select * from matable where champ1 like $phrase or champ2 like $phrase2 limit $debut,$limit",$db_link);
$num=mysql_num_rows($requete);
 
mysql_close($db_link);
 
// DEFINITION DU MESSAGE A AFFICHER
if ($mot=="" )...etc...

 
 
en fait, ce sont les roles et syntaxes des $phrase que je ne comprends pas...  

n°691709
kalex
Posté le 03-04-2004 à 17:09:27  profilanswer
 

Le caractère % signifie "n'importe quoi".
Càd "LIKE '%un%'", signifie trouver "un", précédé et suivi de n'importe quoi.
La base de données gère bien le dernier %, mais mal le premier ("commençant par n'importe quoi" va utiliser un index avec ça).

n°691721
jerkeve
Posté le 03-04-2004 à 17:20:52  profilanswer
 

ok, je ne savais pas qu'on pouvait utiliser ce jocker % dans l'affectation d'une variable, je pensais que c'etait reservé aux requetes sql...
sinon oui, j'ai indexe les champs concerné, ca ne sert a rien du coup ?

n°691731
kalex
Posté le 03-04-2004 à 17:31:39  profilanswer
 

Je pense que ton index sera utilisé uniquement lorsque la base vérifiera qu'il n'y a rien qui commence par "un" (pour reprendre le même exemple).
Sinon, % est bien réservé aux requêtes SQL, tout ce que fait "$phrase="'%$mots[0]%'";", c'est créer une chaîne de caractères (utilisée plus tard dans une requête SQL).

n°691735
jerkeve
Posté le 03-04-2004 à 17:35:18  profilanswer
 

ok, merci kalex d'avoir pris le temps de repondre :)
c'est deja plus clair !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  question a 10 sous pour les pros...

 

Sujets relatifs
Question pour les pros du batch sous windows (nt/2000)Question aux pros du XSLT: des alternatives portables a <msxml:script>
question delphi facile pour les pros[VC++6] Question pour les pros de la prog...
question facile pour les pros du c[php] encore une question pour les pros. :D
Question pour les pros du fichier *.bat (programmation)[HTML / PHP] pb de formulaire /!\ question aux pros !
[PHP] Demande d'aide - Question pour les pros du PHP ;-)[Delphi] - Question d'héritage (pour les pros)
Plus de sujets relatifs à : question a 10 sous pour les pros...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR