begin process at 2012 05 31 16:42:46
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

POO

 > 

Classes & Objets

 > 

recherche avec php5


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

recherche avec php5

mercredi 16 septembre 2009 à 11:03:28 | recherche avec php5

am1ra2

bonjour,
Bonjour,
j'ai essayé de faire la partie recherche que j'ai réalisé avec le php5(orinté objet)et comme je suis débutante pour travailler avec php5 j'ai pas trouvé une bonne résultat toiujours il m'affiche une page vide (pas de recherche)
voici le code que j'ai réalisé:

class Search
{

private $x;
private $t;
function _construct($x,$t)
{

$this->$x=$x;
$this->$t=$t;
}
function requeteselect($x)
{
//requete fait la jointure entre les tables de la base de donné
//et cherche les inforamations qui correspond à un mot entrer
$z="select groupe.id_groupe

from (utilisateur,utilisateur_groupe,groupe,sujet_groupe,sujet) where

(utilisateur.id_utilisateur = utilisateur_groupe.id_utilisateur) and (utilisateur_groupe.id_groupe = groupe.id_groupe) and (groupe.id_groupe = sujet_groupe.id_groupe) and (sujet_groupe.id_sujet = sujet.id_sujet)

and (utilisateur.nom_utilisateur like '%".$this->x."%' or utilisateur.prenom_utilisateur like '%".$this->x."%'

or utilisateur.adresse_utilisateur like '%".$this->x."%' or utilisateur.description_utilisateur like '%".$this->x."%' or groupe.nom_groupe like '%".$this->x."%' or groupe.description_groupe like '%".$this->x."%' or sujet.nom_sujet like '%".$this->x."%')";

$q=mysql_query($z)or die(mysql_error());

return $q;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

function detailselect($t)
{
//requete de selection des inforamtions concernant les identificateurs qui se trouve dans $t

$q=mysql_query("select * from (utilisateur,utilisateur_groupe,groupe,sujet_groupe,sujet) where utilisateur.id_utilisateur ='".$this->t."' and utilisateur_groupe.id_groupe ='".$this->t."' and groupe.id_groupe ='".$this->t."' and sujet_groupe.id_sujet ='".$this->t."' and sujet.id_sujet ='".$this->t."'")

or die(mysql_error());

return $q;
}
}
class recherche extends Search
{
private $phrase;
public function _construct($mot)
{$this->phrase=$mot;
}
//fonction qui permet l'affichage selon le nombre de page et retourne la taille de tableau

function affich($r,$pg)
{

$i=4*($pg-1); //formule permet de recuperer le nombre d'information par page
for($k=$i;$k<($i+4);$k++)//parcours de nombre d'enregistrement dans la page
{
if(isset($r[$k]))//verification si le tableau existe ou non à chaque enregistrement
{

echo $r[$k].'<br>';//affichage de contenu du tableau
}
}

}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function explodephrase($ph) //diviser la phrase en des mots et retourne un tableau de mots
{
$php = eregi_replace("[ ]+", " ",$ph); //remplacer un ou plusieurs espaces par un seul espace

if ($ph[0]=' '){$ph[0]=' ';}//vérification s'il ya un espace au debut de la phrase
$i=strlen($ph);//retourne la longueur de la phrase
if ($ph[$i-1]=' '){$ph[$i-1]=' '; //s'il ya deux espaces on les remplace par un seul espace
}
$mot=explode(" ",$php);//fonction permet d'éviter les espaces dans une phrase et retourne un tableau de mot

return $mot;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//fonction qui retourne un tableau des identificateurs de la base de donné qui convient à un mot entrer

function requetesel($x)

{
$i=0;
foreach($x as $m)//parcours du tableau de mot
{
$q=recherche::requeteselect($m);//appel à la fonction qui contient la requete de selection des identificateurs

while($row=mysql_fetch_array($q))
{
$tab1[$i]=$row[0];//on stocke dans un tableau les identificateurs de la requete
$i++;
}
}
if (isset($tab1)){return $tab1;}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//fonction qui retourne un tableau détaillé à partir d'un identificateur de la base de donné

function detail($t)
{

$i=0;

while(isset($t[$i]))//vérification si le tableau des id existe
{

$q=Recherche::detailselect($t[$i]); //appel à la requete qui renvoie les inforamtions concernant les identificateurs de tableau


$r=mysql_fetch_array($q);
//on stocke les informations des identificateurs dans un tableau

$y[$i]='<font color="blue">groupe:</font> '.$r['nom_groupe'].'<br><font color="blue">description groupe:</font> '.$r['description_groupe'].'<br><font color="blue">nom utilisateur:</font> '.$r['nom_utilisateur'].'<br><font color="blue">prenom utilisateur:</font> '.$r['prenom_utilisateur'].'<br><font color="blue"> adresse utilisateur:</font> '.$r['adresse_utilisateur'].'<br><font color="blue">description utilisateur:</font> '.$r['description_utilisateur'].'<br><font color="blue">nom sujet:</font> '.$r['nom_sujet'].'<br>'.'<br> <img height="50" widght="50" src='.$r['image_utilisateur'].'<br>';;

$i++;
}


if(!isset($y[0]))
{
$y[0]='aucun résultat';
}

return $y;//retourne un tableau détaillant les informations de chaque identificateur


}
}
je ne sais pas comment résoudre ce probleme
merci pour votre aide

vendredi 18 septembre 2009 à 18:17:18 | Re : recherche avec php5

zpef

Bonjour am1ra2,

Ton code est pour le moins très obscure !
Il y a beaucoup de choses à voir...

Bon, quelques conseils pour commencer :
- utilise toujours des noms de variables qui veulent dire quelque chose : évite $x pour un mot, met plutôt $mot, c'est plus clair pour tous ceux qui vont relire ton code, et pour toi aussi
- attention à l'indentation de ton code, c'est la même chose !
- Commente tes fonctions -> regarde le documentation phpdocumentor
- Utilise un fichier par classe, c'est plus standard

Ensuite, concernant le code à proprement parler :
- J'ignore les raisons de l'existence de tes deux classes, le but n'est pas là, mais pourquoi appeler de manière statique les fonction de la classe mère ? ex : Recherche::detailselect(....
Vu le contexte, met plutôt : $this->detailselect(...
- Attention aux performances dans ta fonction "requetesel" lorsque tu appelles "requeteselect" dans un while, il vaut toujours mieux faire une seule requête SQL, c'est moins gourmand en ressources et donc, ta page se charge plus vite. Donc, pour bien faire, construit une seule requête avec tes différentes recherches de mots séparés par des "OR".

Pourrais-tu envoyer la partie du code qui exécute la recherche avec ces classes ?

A+

zpef



Cette discussion est classée dans : tableau, utilisateur, id, sujet, groupe


Répondre à ce message

Sujets en rapport avec ce message

alimenter un tableau avec des variables de session [ par pichoro ] bonjour,voila mon probleme, je voudrais recuperer des variables et les stocker en tant que variables de session dans un tableau array();.j'ai donc un [MySQL] Sauvegarde d'un tableau dans une table [ par cedvoyage ] Bonjour,J'aimerais sauvegarder un tableau (multimensionnel) dans ma base MySQL.Or quand j'essaye je n'ai que 'Array' de marquer dans le champ de ma ta probleme simple mais je bloque [ par Lump[YaNa] ] voila actuellment sur mon site je souhaite créer une kronique sur des groupesje par une page index ou j'apelle le modules1 (pages ou sont referencer t tableau associatif [ par tobleronne ] Bonjour,Je souhaite renseigner un tableau a plusieurs dimensions mais rien n'y fait ?!?J'ai une boucle qui alimenterais un tableau du style : $monTabl Souci dans mon tableau [ par slhuilli ] Bonjour,je cherche la faille dans ce bout de code depuis p$ls jours sans trouver. Qu'elqu'un pourra peut être maider et m'expliquer . En fait, je n BBD ajouter un IP à un ID quand on se connect. [ par dan4 ] Je veux ajouter ou faire un update de IP quand quelqu'un se connect. et la date aussi.Ma base: wcamxLa table: authlib_logintableau 1 : idtableau 2 formulaire et liens [ par skmancuso ] Bonjour,je suis en train de réaliser un module qui affiche certaines données de base dans un tableau. Lorsque l'utilisateur clique sur le lien représe Problème de requête de non-correspondance [ par dphil94 ] Bonjour a tous... Voici mon problème ;J'ai 2 tables table1 "qcm_sujet" avec les champs id, sujet, ....table2 "qcm_score" avec les champs id, sujet, no pb_session [ par sam_12_3 ] salut tout le monde,j'ai un probleme avec des variables de sessions.enfet jai utliser les session pour verifier si l'utilisateur qui visite le site et Liens entre 2 tables [ par patrickrgn ] Bonjour,J'ai une base de données avec plusieurs tables et je cherche à faire le lien entre la table sujet (id_sujet, nom_sujet, auteur_sujet, id_forum


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,515 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales