begin process at 2012 05 31 10:33:03
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

Select From where


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

Select From where

mardi 2 janvier 2007 à 20:50:02 | Select From where

DVTAZ

Bonjour à toutes et à tous

Voila, ne serait il pas possible de simplifier ce genre de code,(voir ci-dessous)
je fait une requete avec un critere identique mais sur des champs différents, et je passe par une case Texte!

merci d'avance pour vorte aide


<!---- ======================================-->
  $query = "SELECT * FROM equipe WHERE joueur1 like '%".$searchterm."%'";
   $result = mysql_query($query);
   $num_results = mysql_num_rows($result);
   
   echo "<p>  ".$num_results."&nbsp;&nbsp; Match trouvé pour &nbsp; ".$searchterm." <p>";
    for ($i=0; $i <$num_results; $i++)
    {
     $row = mysql_fetch_array($result);

affichage des données 1

<!---- ======================================-->
  $query = "SELECT * FROM equipe WHERE joueur2 like '%".$searchterm."%'";
   $result = mysql_query($query);
   $num_results = mysql_num_rows($result);
   
   echo "<p>  ".$num_results."&nbsp;&nbsp; Match trouvé pour &nbsp; ".$searchterm." <p>";
    for ($i=0; $i <$num_results; $i++)
    {
     $row = mysql_fetch_array($result);

affichage des données 2
<!---- ======================================-->
  $query = "SELECT * FROM equipe WHERE joueur2 like '%".$searchterm."%'";
   $result = mysql_query($query);
   $num_results = mysql_num_rows($result);
   
   echo "<p>  ".$num_results."&nbsp;&nbsp; Match trouvé pour &nbsp; ".$searchterm." <p>";
    for ($i=0; $i <$num_results; $i++)
    {
     $row = mysql_fetch_array($result);

affichage des données 3

il doit y avoir une autre facon de faire !!!



Du bout des doigts, née VB
mercredi 3 janvier 2007 à 00:03:35 | Re : Select From where

Anthomicro

Salut,

tout dépend quelle est ta version de MySQL. Essaie ça :

$query = '(SELECT * FROM equipe WHERE joueur1 like "%'.$searchterm.'%") UNION (SELECT * FROM equipe WHERE joueur2 like "%'.$searchterm.'%") UNION (SELECT * FROM equipe WHERE joueur1 like "%'.$searchterm.'%"')';

Et par contre évite les SELECT *, mets des SELECT champ1, champ2, ....
mercredi 3 janvier 2007 à 10:41:53 | Re : Select From where

Flachy Joe

Ou simplement une fonction :
function select_joueur($champ){
  $query = "SELECT * FROM equipe WHERE".$joueur." like '%".$searchterm."%'";
   $result = mysql_query($query);
   $num_results = mysql_num_rows($result);
   
   echo "<p>  ".$num_results."&nbsp;&nbsp; Match trouvé pour &nbsp; ".$searchterm." <p>";
    for ($i=0; $i <$num_results; $i++)
    {
     $row = mysql_fetch_array($result);
}

select_joueur('joueur1');
select_joueur(''joueur2'');


Flachy Joe
mercredi 3 janvier 2007 à 13:34:46 | Re : Select From where

Anthomicro

Le problème de ça est que tu fais trois requêtes, c'est pas optimisé ;)
mercredi 3 janvier 2007 à 15:08:24 | Re : Select From where

FhX

L'Union aussi fait 3 requètes Antho :)

J'aurais fais ca moi :

public function Select($player) {
 $db->query(' SELECT xx,yy,zz FROM equipe WHERE joueur LIKE "%'.$player.'%" ');
  if ( $db->num_rows() === 0 )
       throw new Exception('Aucun match trouvé pour ce joueur.');
  else
       while ( $data = $db->fetch_object() ) $array[] = $data;

return $array;

}


$match = new match(); // Nom de la classe... jla nomme comme ca arbitrairement hein ^^

try {
  $tabmatch = $match->Select('nomdujoueur');
   if ( count($tabmatch) === 1 ) {
        echo '<p>1 match a été trouvé !</p>';
        echo '<span>'.$tabmatch[0]->xx.'</span>';
        echo '<span>'.$tabmatch[0]->yy.'</span>';
        //etc...
   } else {
        for ($i=0, $c=count($tabmatch); $i<$c; $i++) {
        echo '<p>'.$c.' matchs trouvés : '</p>';
        echo '<span>'.$tabmatch[$i]->xx.'</span>';
        echo '<span>'.$tabmatch[$i]->yy.'</span>';
        //etc...
   }

} catch ( Exception $e ) {
  echo $e->getMessage();
}


Bah, c'est de l'orienté objet aussi... Ca restera toujours un peu plus lourd. Mais au moins c'est lisible :s
mercredi 3 janvier 2007 à 17:20:02 | Re : Select From where

DVTAZ

Merci a vous pour ces reponses, je les essayes et je vous tiens au courranr, encore merci

Du bout des doigts, née VB
mercredi 3 janvier 2007 à 19:06:19 | Re : Select From where

Anthomicro

FHx > Tu fais une seule requête, qui elle-même en fait trois en interne, mais ça reste une seule requête vue de l'extérieur, c'est donc plus optimisé. Sinon idem, une fonction, tu l'appelles trois fois ... bof bof quoi.

Enfin bon chacun sa méthode, moi je propose une solution, libre à DVTAZ de l'accepter ou d'en choisir une autre ;)

a +

Antho
mercredi 3 janvier 2007 à 19:07:37 | Re : Select From where

Anthomicro

FHx > Tu fais une seule requête, qui elle-même en fait trois en interne, mais ça reste une seule requête vue de l'extérieur, c'est donc plus optimisé. Sinon idem, une fonction, tu l'appelles trois fois ... bof bof quoi.

Enfin bon chacun sa méthode, moi je propose une solution, libre à DVTAZ de l'accepter ou d'en choisir une autre ;)

a +

Antho
mercredi 3 janvier 2007 à 19:19:30 | Re : Select From where

DVTAZ

Pour Anthomicro:
Je viens d'esayer ta proposition mais j'obtiens un message d'erreur du genre:
"Warning: mysql_num_rows(): supplied argument is not a valid Mysql result resource in/mnt/139/sdc/2/0/nom du site/repertoire/page.php on line 37 "

en ligne 36 et 37 j'ai le code suivant :
   $result  =  mysql_query($squery);
   $num_results  =  mysql_num_rows(result);

auparavent j'ai modifié ma requete comme ci-dessous:

$query = "(SELECT joueur1 FROM equipe WHERE joueur1 like '%".$searchterm."%') UNION (SELECT joueur2 FROM equipe WHERE joueur2 like '%".$searchterm."%') UNION (SELECT joueur3 FROM equipe WHERE joueur3 like '%".$searchterm."%'')";


Du bout des doigts, née VB
mercredi 3 janvier 2007 à 19:21:44 | Re : Select From where

Anthomicro

ça dépend de la version de MySQL que tu as, il faut une version supérieure ou égale à la 4.1 il me semble ;)

1 2

Cette discussion est classée dans : mysql, num, query, result, nbsp


Répondre à ce message

Sujets en rapport avec ce message

Probleme de couleur [ par christuckers ] Bon ba re tout le monde !! Je ne sais pas si je m'adresse au bon endroit, mais comme je vois une différence entre IE 6.0 et Firefox 1.5.0 ...En dessou FOR et mysql_query [ par rems02 ] Bonjour,J'ai un petit probleme avec la fonction FOR et mysql_queryJe voudrai extraires les données de ma bdd MySQLdans un tableau html de la forme:--- Prob classe SQL. [ par Aaron ] Bonjour,Je viens de coder ce qui suit :class DB{var $NUM_ROW;var $RESULTS;         function __construct($server, $db, $login, $pwd){     $this->CNX = comment calculer le total general des prix_totals [ par hakiman ] j'ai un table nommé bon_de_travaux il est comme ça:  $hote = "localhost"; $base = "adpub"; $user = "root"; $pass = "car";  $cnx exection 2 fois du code? [ par vieaiepie ] Bonjour, J'ai fais un fichier php qui permet d'importer des données à partir d'un fichier texte (fichier de 400 lignes de code que je ne vais pas d&# mon formulaire ne se declenche pas [ par oli375 ] voila j'ai une première page  pour ajouter un joueur jeuille de match. php:session_start();include("connection_base.php");if(isset($_SESSION['selectio Conserver le resultat d'un mysq_query [ par TrueMan ] Bonjour, Voici donc mon problème. Je veux simplement pouvoir conserver le résultat de ma query. J'ai essayé de la stocké dans un input pour que par la Pb avec mysq_result [ par paloxicide ] J'ai un problème avec ma requete, je veux savoir si une ligne dans ma base de données existe et si oui je la renvoie sinon je renvoie falseVoici ma fo mysql_num_rows ou select count [ par elidris ] bonjour, voilà je m'apercois que des 2 commandes PHP fournissent le meme resultat, j'aimerais savoir laquelle est la plus efficace (rapidité et nb de Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in... [ par Florent06 ] SalutJe suis en train de faire une zone membres pour mon site. Dans la page d'inscription, il y a un script (pris ici) qui sert à


Nos sponsors


Sondage...

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,718 sec (4)

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