Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/02/2011, 17h10   #1
Invité régulier
 
Inscription : août 2010
Messages : 53
Détails du profil
Informations forums :
Inscription : août 2010
Messages : 53
Points : 5
Points : 5
Par défaut fonction recherche

slt tlm,

en fait j'ai crée une fonction recheche dans une classe abonnés qui permet de chercher un livre mais ici je suis bloqué entre mettre la result sous form html ici dans la fonction ou non parce que la resultat de ma fonction me retourne seulement un element et je ne sais pas comment faire mieux pour avoir tout les elements ,ou bien si quelqu'un peut m'aider


Code :
1
2
3
4
5
public function rechercher($livre){
                $rep = data::result("SELECT * from  livre_biblio WHERE nom LIKE '$livre' OR auteur LIKE '$livre' OR edition LIKE '$livre' OR date_edition LIKE '$livre' ");
                return $rep['auteur'];
 
}
Merci d'avance
molo1987 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 17h18   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
A quoi sert ta méthode result ?
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 17h18   #3
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
hello, y'a une solution plus simple pour ta recherche qui est de concaténer les champs et de faire une recherche dessus
Code :
1
2
 
SELECT * FROM `livre_biblio` WHERE CONCAT_WS(CHAR(0), `nom`, `auteur`, `edition`, `date_edition`) LIKE '%$livre%';
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 17h20   #4
Membre Expert
 
Avatar de gene69
 
Inscription : janvier 2006
Messages : 951
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : janvier 2006
Messages : 951
Points : 1 063
Points : 1 063
tout dépends de ce que tu veux faire. si c'est un petit dev' de stage ou de TP va au plus rapide.

Si c'est pour implementer une fonctionnalité clée de ton site web perso ou pro, découple au maximum tout ce qui est présentation de l'information et présentation des données.

en gros tu fais un "côté" moteur de l'application qui rempli des tableaux ou des objets et tu fais un autre "côté" renderer de l'appli qui converti les tableaux et les objets en html pdf xml doc ... ppt... odt ...
__________________
PHP fait nativement la validation d'adresse électronique Vous êtes perdu en PHP? rassurez-vous ici (en)
Utilisez le bouton résolu!
gene69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 17h29   #5
Invité régulier
 
Inscription : août 2010
Messages : 53
Détails du profil
Informations forums :
Inscription : août 2010
Messages : 53
Points : 5
Points : 5
Citation:
Envoyé par sabotage Voir le message
A quoi sert ta méthode result ?
public static function result($query){
$q = mysql_query($query) or die(mysql_error());
$res = mysql_fetch_array($q);
return $result[] = $res;
}

c une fonction dans une utre class database
molo1987 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 17h31   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
Citation:
Envoyé par molo1987 Voir le message
public static function result($query){
$q = mysql_query($query) or die(mysql_error());
$res = mysql_fetch_array($q);
return $result[] = $res;
}

c une fonction dans une utre class database
normale d'avoir qu'un résultat tu va en cherche que 1

c'est
Code :
1
2
3
4
5
6
7
8
$result = array();
 
while($res = mysql_fetch_array($q))
{
    $result[] = $res;
}
 
return $result;

t'as pas PDO ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 17h32   #7
Invité régulier
 
Inscription : août 2010
Messages : 53
Détails du profil
Informations forums :
Inscription : août 2010
Messages : 53
Points : 5
Points : 5
Citation:
Envoyé par gene69 Voir le message
tout dépends de ce que tu veux faire. si c'est un petit dev' de stage ou de TP va au plus rapide.

Si c'est pour implementer une fonctionnalité clée de ton site web perso ou pro, découple au maximum tout ce qui est présentation de l'information et présentation des données.

en gros tu fais un "côté" moteur de l'application qui rempli des tableaux ou des objets et tu fais un autre "côté" renderer de l'appli qui converti les tableaux et les objets en html pdf xml doc ... ppt... odt ...
bon c un site perso et aussi pour m'ameliorer dans le OOP mais keske tu veux dire avec decouple au maximum et pk?(tu veux dire une fonction pour chaque element?)
molo1987 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 17h38   #8
Invité régulier
 
Inscription : août 2010
Messages : 53
Détails du profil
Informations forums :
Inscription : août 2010
Messages : 53
Points : 5
Points : 5
Citation:
Envoyé par stealth35 Voir le message
normale d'avoir qu'un résultat tu va en cherche que 1

t'as pas PDO ?
Oui mais ce que je veux savoir est ce que c preferable de mettre les resultat dans une div dans cette fonction ou bien non (ce que je veux dire est que c acceptable dans le POO de mixer html et php come ça ou non) et pour le PDO je m'y suis pas encore plongé dedans
molo1987 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 17h41   #9
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
après tu devrai juste faire

Code :
1
2
$rep = data::result("SELECT auteur from  livre_biblio WHERE nom LIKE '$livre' OR auteur LIKE '$livre' OR edition LIKE '$livre' OR date_edition LIKE '$livre' ");
return $rep;
mais je sais pas ce que t'en fait de ton return...
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 17h46   #10
Invité régulier
 
Inscription : août 2010
Messages : 53
Détails du profil
Informations forums :
Inscription : août 2010
Messages : 53
Points : 5
Points : 5
Citation:
Envoyé par stealth35 Voir le message
après tu devrai juste faire

Code :
1
2
$rep = data::result("SELECT auteur from  livre_biblio WHERE nom LIKE '$livre' OR auteur LIKE '$livre' OR edition LIKE '$livre' OR date_edition LIKE '$livre' ");
return $rep;
mais je sais pas ce que t'en fait de ton return...
Le return c pour me retourné ce que je veux comme resultat ,cette resultat je veux la mettre dans ma page,
c a d la personne il va mettre le nom du livre par la suite il aura comme resultat un tableau qui contient tout les informations de tout les livres trouvés(auteur,edition,année.....) mais je repete ce que je veux savoir ce tableau la que je veux afficher est ce que je peux le coder dans ma fonction ou il y a une autre solution (car d'apres ce que je c c pas acceptable de melanger html et php dans le POO , je parle au niveau des classe biensur)
molo1987 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 17h56   #11
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
$rep te retourne un tableau a toi après dans ta vu d'en faire ce que tu veux niveau HTML

un peu compliquer ta phrase non ?
Citation:
mais je repete ce que je veux savoir ce tableau la que je veux afficher est ce que je peux le coder dans ma fonction
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 18h02   #12
Invité régulier
 
Inscription : août 2010
Messages : 53
Détails du profil
Informations forums :
Inscription : août 2010
Messages : 53
Points : 5
Points : 5
Citation:
Envoyé par stealth35 Voir le message
$rep te retourne un tableau a toi après dans ta vu d'en faire ce que tu veux niveau HTML

un peu compliquer ta phrase non ?
voila j'ai rapidement ecrit un exemple

public function rechercher($livre){
$rep = data::result("SELECT * from livre_biblio WHERE nom LIKE '$livre' OR auteur LIKE '$livre' OR edition LIKE '$livre' OR date_edition LIKE '$livre' ");
echo 'tr';
echo 'td'.$rep['auteur'].'</td>';
echo 'td'.$rep['edition'].'</td>';
echo 'td'.$rep['date_edition'].'</td>';
echo '</tr>';

}

ici j'ai mis mon tableau dans la fonction ,maintenant ce que je veux savoir est ce que je peux procéder comme ça dans le POO ou bien est ce qu'il'y'a une autre maniere acceptable et pro ?
molo1987 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 18h03   #13
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
ou appelles tu ta méthode ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 18h06   #14
Invité régulier
 
Inscription : août 2010
Messages : 53
Détails du profil
Informations forums :
Inscription : août 2010
Messages : 53
Points : 5
Points : 5
dans la page d'acceuil des abonés

<div>
<?php
if(isset($_POST['nom'])){
echo($agent->rechercher($_POST['nom']));
}
?>
<form method='post' action='page-agent.php'>
<input type='text' name='nom'/>
<input type='submit' value='rechercher'/>
</form>
</div>
molo1987 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 18h08   #15
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
c'est ici que tu dois le faire

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
if(isset($_POST['nom']))
{
    $resultats = $agent->rechercher($_POST['nom']);
 
    foreach($resultats as $resultat)
    {
        echo 'tr';
        echo 'td'.$resultat['auteur'].'</td>';
        echo 'td'.$resultat['edition'].'</td>';
        echo 'td'.$resultat['date_edition'].'</td>';
        echo '</tr>';
    }
}
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 18h15   #16
Invité régulier
 
Inscription : août 2010
Messages : 53
Détails du profil
Informations forums :
Inscription : août 2010
Messages : 53
Points : 5
Points : 5
j'ai mis ça et ç a foncionné

public function rechercher($livre){
$rep = data::result("SELECT * from livre_biblio WHERE nom LIKE '$livre' OR auteur LIKE '$livre' OR edition LIKE '$livre' OR date_edition LIKE '$livre' ");
return $r[] = $rep;
}

mais un nouveau souci c que la resultat est un peu longue j'ai eu la meme resultat repeté presque 8 fois

et je m'exuse d'avoir prendre ton temps
molo1987 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 18h23   #17
Invité régulier
 
Inscription : août 2010
Messages : 53
Détails du profil
Informations forums :
Inscription : août 2010
Messages : 53
Points : 5
Points : 5
Citation:
Envoyé par stealth35 Voir le message
c'est ici que tu dois le faire

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
if(isset($_POST['nom']))
{
    $resultats = $agent->rechercher($_POST['nom']);
 
    foreach($resultats as $resultat)
    {
        echo 'tr';
        echo 'td'.$resultat['auteur'].'</td>';
        echo 'td'.$resultat['edition'].'</td>';
        echo 'td'.$resultat['date_edition'].'</td>';
        echo '</tr>';
    }
}
oui genial ça marche
j'ai mis ça aussi et ç a foncionné

public function rechercher($livre){
$rep = data::result("SELECT * from livre_biblio WHERE nom LIKE '$livre' OR auteur LIKE '$livre' OR edition LIKE '$livre' OR date_edition LIKE '$livre' ");
return $r[] = $rep;
}

mais un nouveau souci c que la resultat est un peu longue j'ai eu la meme resultat repeté presque 8 fois

et je m'exuse d'avoir prendre ton temps
molo1987 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 18h24   #18
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
faire return $r[] = $rep; ne sert a rien, si tu fais tout comme j'ai dis depuis le début ca devrait rouler
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 03/02/2011, 18h36   #19
Invité régulier
 
Inscription : août 2010
Messages : 53
Détails du profil
Informations forums :
Inscription : août 2010
Messages : 53
Points : 5
Points : 5
Citation:
Envoyé par stealth35 Voir le message
faire return $r[] = $rep; ne sert a rien, si tu fais tout comme j'ai dis depuis le début ca devrait rouler
T'a raison j'ai tout refait ç'a fonctionné 1000000000000 merci .resolu
molo1987 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h04.


 
 
 
 
Partenaires

Hébergement Web