IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Comment récupérer ma variable de recherche et l'afficher en couleur rouge dans ma page


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 97
    Points : 64
    Points
    64
    Par défaut Comment récupérer ma variable de recherche et l'afficher en couleur rouge dans ma page
    Bonjour,

    Je me permets d'envoyer ce message car je rencontre un problème de couleur lors de ma requete de recherche.

    En effet ma requete fonctionne :
    MAIS je voudrais que la variable que l'on recherche s'affiche en rouge pour un confort visuel sur la page.

    voici ce que j'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    <?php
    //connexion base
    // on se connecte &agrave; MySQL 
    $db = mysql_connect('localhost', 'root', '');  
    // on sel&eacute;ctionne la base 
    mysql_select_db('test',$db);  
     
    /********************
    DECLARATION DE MES VARIABLES PHP POUR EVITER L'ERREUR  "Undefined variable"
    /********************
    */
    $n = "lolo";
    $t = "droit";
     
    /*****************
    CREATION MOTEUR DE RECHERCHE
    */
    //requete de base 
    $requete_base = "SELECT * FROM auteurs , pub, categorie WHERE ";
     
    //correspondance pour publications et categorie
    $requete2 = "pub.id_aut=auteurs.id_aut AND categorie.id_cat = pub.id_cat";
     
    //requete pour nom 
    $req_nom = " (nom LIKE '%$n%') ";
     
    //condition pour couleur
    $req_coul = "'<span style='color: red;'>' ";
    $req_coul_fin = "</span>";
     
    //condition pour titre
    $req_titre = " titre LIKE ";
     
    //variable titre seule arajouter dans requete titre
    $req_var = " '%$t%' ";
     
    //requete complete qui ne change pas 
    $req_comp=$requete_base.$requete2;
     
     
    //code de condition pour recherche par nom
    if ($n != "") {
    $req_comp=$req_comp." AND ".$req_nom;
    	}
    //code de condition pour recherche par titre	
    		if ($t != "") {
    			$req_comp=$req_comp." AND ".$req_titre.$req_coul.$req_var.$req_coul_fin; // je pense que MySql ne comprend pas cette partie de requete, pourtant lors de laffichage de la requete la variable est bien rouge
    			}
     
     
    echo $req_comp; //AFFICHAGE DE LA REQUETE
    	//variable de recherche incluant la requete complete 
    		$recherche = mysql_query($req_comp) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
     
    //MISE EN FORME HTML
    echo "<div align = 'center' class='titre1'></div><br>";	 
     
    //BOUCLE POUR AFFICHER LES RESULTATS
    	while($ligne = @mysql_fetch_array($recherche))
    	{
    		echo "<table width='1300' cellpadding='-1' bgcolor='#CCCCCC'>
      		<tr>
       		 <td width='1300' bgcolor='#CCCCCC'><table width='1300' cellpadding='-1' bgcolor='#FFFFFF'>
          	<tr>
            <td bgcolor='#c0cad6' class='txt'>", $ligne["nom_cat"]," ", " ", "(", $ligne["titre"], ")", " ", " ", " ", " ", " ", " ", " </td>
          </tr>
        </table></td>
      </tr>
    </table><br>";
     
    }
    mysql_close(); 
     
     
    ?>
    merci par avance pour vos lumieres

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 303
    Points : 1 380
    Points
    1 380
    Par défaut
    Bonjour,

    que donne le code HTML de la page résultat ?
    Il doit probablement y avoir une erreur.
    Christophe

    Pensez à mettre quand c'est le cas.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 97
    Points : 64
    Points
    64
    Par défaut
    bonjour,

    Merci de vous pencher sur mon problème !!

    voici ce qu'il me donne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT * FROM auteurs , pub, categorie WHERE pub.id_aut=auteurs.id_aut AND categorie.id_cat = pub.id_cat AND (nom LIKE '%lolo%') AND titre LIKE '%droit%'
    Notice: Undefined variable: sql in C:\Program Files (x86)\EasyPHP-DevServer-13.1VC9\data\localweb\base\couleur.php on line 53
    Erreur SQL !
     
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' '%droit%' ' at line 1
    Chose surprenante car il m'affiche bien en rouge '%droit%'

  4. #4
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 303
    Points : 1 380
    Points
    1 380
    Par défaut
    Remplacez "$sql" par "$req_comp".
    De plus, je ne vois pas la condition sur la couleur dans la requête.
    Christophe

    Pensez à mettre quand c'est le cas.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 97
    Points : 64
    Points
    64
    Par défaut
    Bonjour,

    Alors je n'ai plus l'erreur de Notice: Undefined variable: sql En y reflechissant c'est logique ).

    Concernant la condition de couleur dans la requête, j'ai mis en fait du code html en variable que j'ai concaténé avec la requete complete.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    //condition pour couleur
    $req_coul = "'<span style='color: red;'>' ";
    $req_coul_fin = "</span>";
    et après
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req_comp=$req_comp." AND ".$req_titre.$req_coul.$req_var.$req_coul_fin;
    Cela dit la variable de recherche est bien affiché en rouge , par contre dans ma requete c'est effectivemment transparent , il y a peut etre un code couleur à mettre dans l'instruction SELECT mais je ne vois pas comment

  6. #6
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 303
    Points : 1 380
    Points
    1 380
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    //condition pour couleur
    $req_coul = "'<span style='color: red;'>' ";
    $req_coul_fin = "</span>";
    ...
    $req_comp=$req_comp." AND ".$req_titre.$req_coul.$req_var.$req_coul_fin;
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM auteurs , pub, categorie WHERE pub.id_aut=auteurs.id_aut AND categorie.id_cat = pub.id_cat AND (nom LIKE '%lolo%') AND titre LIKE '%droit%'
    Le code couleur n'a pas été inséré dans la requête.
    Christophe

    Pensez à mettre quand c'est le cas.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    La couleur n'a RIEN A FAIRE dans la requete !

    Elle doit juste être ajoutée à l'affichage des résultats.
    voir str_replace().

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 97
    Points : 64
    Points
    64
    Par défaut
    J'ai fait une recherche sur Google concernant les codes et j'ai trouvé ceci pour la couleur rouge : (X'20'!!)

    J'ai l'ai donc inséré dans mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    //variable titre seule arajouter dans requete titre
    $req_var = " '%(X'20'!!$t)%' ";
    Hum Il me renvoi une erreur lors de la requete

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT * FROM auteurs , pub, categorie WHERE pub.id_aut=auteurs.id_aut AND categorie.id_cat = pub.id_cat AND (nom LIKE '%lolo%') AND titre LIKE '%(X'20'!!droit)%'
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '20'!!droit)%'' at line 1
    Je pense que mon code n'est pas compris par Mysql

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 97
    Points : 64
    Points
    64
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    Bonjour,

    La couleur n'a RIEN A FAIRE dans la requete !

    Elle doit juste être ajoutée à l'affichage des résultats.
    voir str_replace().
    Effectivement c'est ce que je pensais aussi, cependant j'ai vu qu'il existait des codes coleurs , j'ai donc essayé mais sans succès , j'ai essayé avec str_replace

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $n = "lolo";
    $t = "droit";
    $t = str_replace("%$t%","red","<body text='%$t%'>");
    Cette fois ci j'ai tout l'affichage en rouge meme l'erreur sql et il ne me trouve pas la valeur $t

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT * FROM auteurs , pub, categorie WHERE pub.id_aut=auteurs.id_aut AND categorie.id_cat = pub.id_cat AND (nom LIKE '%lolo%') AND titre LIKE '%%'
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'red'>%'' at line 1

  10. #10
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 303
    Points : 1 380
    Points
    1 380
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    Bonjour,

    La couleur n'a RIEN A FAIRE dans la requete !

    Elle doit juste être ajoutée à l'affichage des résultats.
    voir str_replace().
    Si la couleur n'est pas dans la base de données effectivement (comme il la cherchait dedans j'ai cru qu'elle y était).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT * FROM auteurs , pub, categorie WHERE pub.id_aut=auteurs.id_aut AND categorie.id_cat = pub.id_cat AND (nom LIKE '%lolo%') AND titre LIKE '%%'
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'red'>%'' at line 1
    Visiblement vous n'affichez pas la bonne requête.
    Christophe

    Pensez à mettre quand c'est le cas.

  11. #11
    Invité
    Invité(e)
    Par défaut
    Il faut faire preuve de LOGIQUE, et effectuer le changement au bon moment !
    Au moment de l'affichage, en l’occurrence.

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 97
    Points : 64
    Points
    64
    Par défaut
    Oui effectivement avec str_replace je remplace la variable ! ca je comprend :

    Mais je ne comprend pas comment lui dire ceci:
    ********
    $t est le mot qu'on recherche dans la colonne titre de ma bdd -> ca OK

    affiche moi tout les titres dans lequel le mot $t y est -> ca Ok

    affiche moi $t en rouge -> Pas OK
    *********
    Puisque $t se retrouve dans ma requete SQL si je met devant du code html genre '<span style="color: red;">'.$t.'</span>'; le mot à l'affichage est bien en rouge mais aucun résultat en sortie ...

  13. #13
    Invité
    Invité(e)
    Par défaut
    Voilà une manière plus concise d'écrire la recherche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    <?php
    //connexion base => A METTRE DANS UN FICHIER A PART, pour ne pas avoir à le recopier à chaque fois ! puis insérer avec : include();
    $db = mysql_connect('localhost', 'root', '');  
    mysql_select_db('test',$db);
     
    // ------------------------------
    // 1/ CREATION MOTEUR DE RECHERCHE
    // ------------------------------
    // construction de la Clause WHERE
    	$sqlWhere = array();
    // ----------
    // RECUPERATION des données du formulaire
    if (isset($_POST['nom'])){
    	$n = $_POST['nom'];
    	$sqlWhere[] = " nom LIKE '%".mysql_real_escape_string($n)."%' "; // ON PROTEGE contre les injections SQL !
    } else {
    	$n = '';
    }
    // ----------
    if (isset($_POST['titre'])){
    	$t = $_POST['titre'];
    	$sqlWhere[] = " titre LIKE '%".mysql_real_escape_string($t)."%' "; // ON PROTEGE contre les injections SQL !
    } else {
    	$t = '';
    }
    // ----------
    // concaténation des conditions
    	$sqlWhere = (empty($sqlWhere))? NULL : " WHERE ".implode(" AND ", $sqlWhere); 
     
    // ------------------------------
    // 2/ REQUETE, avec :
    // correspondance pour publications et categorie (=> JOINTURES !)
    $requete_search = "SELECT * 
    	FROM auteurs
    	INNER JOIN pub
    		ON pub.id_aut=auteurs.id_aut
    	INNER JOIN categorie
    		ON categorie.id_cat = pub.id_cat ".
    	$sqlWhere. // on ajoute les conditions de recherche
    	";";
     
    echo $requete_search; // EN TEST, pour vérification
     
    // ------------------------------
    // 3/ EXECUTION de la requete
    $recherche = mysql_query($requete_search) or die('Erreur SQL !<br>'.$requete_search.'<br>'.mysql_error()); 
    // nombre de résultats
    $resultNombre = mysql_num_rows($recherche);
     
    // ------------------------------
    // 4/ AFFICHAGE des résultats
    if ($resultNombre > 0)
    {
    ?>
    	<h1 class="titre1">Résultats de la recherche</h1>
    	<table class="table-results">
    	<tr>
    		<th>Nom</th>
    		<th>Titre</th>
    	</tr>
    <?php
    	while($ligne = mysql_fetch_array($recherche))
    	{
    		// on souligne en rouge les éléments recherchés
    		$nom_cat = (!empty($n))? str_replace( $n, '<span class="red">'.$n.'</span>', $ligne['nom_cat']) : $ligne['nom_cat'];
    		$titre_cat = (!empty($t))? str_replace( $t, '<span class="red">'.$t.'</span>', $ligne['titre_cat']) : $ligne['nom_cat'];
    		// ON PROTEGE l'AFFICHAGE
    		$nom_cat = htmlentities($nom_cat);
    		$titre_cat = htmlentities($titre_cat);
    ?>
    	<tr>
    		<th><?php echo $nom_cat; ?></th>
    		<th><?php echo $titre_cat; ?></th>
    	</tr>
    <?php
    	} // fin while
    ?>
    	</table>
    <?php
    } else {
    	echo 'Pas de résultats';
    }
    // on ferme la connexion
    mysql_close();

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 97
    Points : 64
    Points
    64
    Par défaut
    Hum...
    Ca commence à prendre forme effectivement, par contre je ne comprend pas cette ligne ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $titre_cat = (!empty($t))? str_replace( $t, '<span class="red">'.$t.'</span>', $ligne['titre_cat']) : $ligne['nom_cat'];
    dans la variable $titre_cat il y a le résultat de la colonne titre avec le mot $t ?

    Je vais faire des essais ce soir au calme !!!!

  15. #15
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $titre_cat = (!empty($t))? str_replace( $t, '<span class="red">'.$t.'</span>', $ligne['titre_cat']) : $ligne['nom_cat'];
    Il s'agit de l'opérateur ternaire (voir PHP - Opérateurs de comparaison) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $val = (condition)? (valeur si condition vraie) : (valeur si condition fausse);
    C'est équivalent à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (!empty($t)){
       $titre_cat = str_replace( $t, '<span class="red">'.$t.'</span>', $ligne['titre_cat']); // on écrit en rouge les mots "$t"
    } else {
       $titre_cat = $ligne['nom_cat'];
    }
    Avec le CSS pour la class red :
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    .red { color:red; } /* on peut mettre d'autres caractéristiques (souligné,...) sans avoir besoin de changer dans le HTML) */

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 97
    Points : 64
    Points
    64
    Par défaut
    AAAAAHHHHHH putain......................... ca y est ca fonctionne !!!!!

    Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci
    Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci Merci ...

    Concernant le code j'ai détaillé le tien jreaux62 !! je l'ai trouvé plus complexe que le mien du coup j'ai gardé le mien sauf

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $titre_cat = (!empty($t))? str_replace( $t, '<span class="red">'.$t.'</span>', $ligne['titre_cat']) : $ligne['nom_cat'];
    C'était ca qui me manquait !!!!!!

    code plus complet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    <?php
    //connexion base
    // on se connecte &agrave; MySQL 
    $db = mysql_connect('localhost', 'root', '');  
    // on sel&eacute;ctionne la base 
    mysql_select_db('News',$db);  
     
    /********************
    DECLARATION DE MES VARIABLES PHP POUR EVITER L'ERREUR  "Undefined variable"
    /********************
    */
    $n = "lolo";
    $t = "droit";
     
    /*****************
    CREATION MOTEUR DE RECHERCHE
    */
    //requete de base 
    $requete_base = "SELECT * FROM auteurs , pub, categorie WHERE ";
     
    //correspondance pour publications et categorie
    $requete2 = "pub.id_aut=auteurs.id_aut AND categorie.id_cat = pub.id_cat";
     
    //requete pour nom OR 
    $req_nom = " (nom LIKE '%$n%') ";
     
    //condition pour couleur
    //$req_coul = "'<span style='color: red;'>' ";
    //$req_coul_fin = "</span>";
    $req_coul = " ";
    //condition pour titre
    $req_titre = " titre LIKE ";
     
    //variable titre seule arajouter dans requete titre
    $req_var = "'%$t%' ";
     
    //requete complete qui ne change pas 
    $req_comp=$requete_base.$requete2;
     
     
    //code de condition pour recherche par nom
    if ($n != "") {
    $req_comp=$req_comp." AND ".$req_nom;
    	}
    //code de condition pour recherche par titre	
    		if ($t != "") {
    			$req_comp=$req_comp." AND ".$req_titre.$req_var ; 
    			}
     
     
    echo $req_comp; //AFFICHAGE DE LA REQUETE
     
    	//variable de recherche incluant la requete complete 
    	$recherche = mysql_query($req_comp) or die('Erreur SQL !<br>'.$req_comp.'<br>'.mysql_error()); 
     
    //MISE EN FORME HTML
    echo "<div align = 'center' class='titre1'></div><br>";	 
     
    //BOUCLE POUR AFFICHER LES RESULTATS
    	while($ligne = @mysql_fetch_array($recherche))
    	{
    		// on souligne en rouge les éléments recherchés
    		$titre_cat = (!empty($t))? str_replace( $t, '<span class="red">'.$t.'</span>', $ligne['titre']) : $ligne['titre'];
     
    		echo $titre_cat; 
     
     
    }
    mysql_close();


    Trop trop fort !!!!!!! Merci à vous sans quoi nous autres petit developpeur aurions du mal à concrétiser nos programmes !!!

    Longue vie au site

  17. #17
    Invité
    Invité(e)
    Par défaut
    Tu devrais quand même étudier le code que je t'ai fait. (il te suffisait de faire un copier-coller !)

    Car il est plus pratique à l'usage : ré-utilisable pour des modules de recherche, sélection de nombreux critères (toi, tu n'en as que 2...),...


    Ton code est une usine à gaz, que tu auras du mal à faire tourner (à maintenir).

    quant à l'écriture de la requête, elle n'est pas correcte. Il faut utiliser des JOINTURES (comme je l'ai fait dans mon code).

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 97
    Points : 64
    Points
    64
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    Tu devrais quand même étudier le code que je t'ai fait.

    Car il est plus pratique à l'usage : ré-utilisable pour des modules de recherche, sélection de nombreux critères (toi, tu n'en as que 2...),...


    Ton code est une usine à gaz, que tu auras du mal à faire tourner (à maintenir).
    Ah OK !!! je vais etudier ca alors !!!! sur le moment ca me paraissait correcte, mais il doit y avoir certainement des erreurs de programmation !!!!!
    Il ya beaucoup de chose que je ne sais pas vraiment dire littéralement, par ex comme la variable $titre_cat que tu m'as détaillé :

    moi j'ai compris ceci :

    $titre_cat égale $t n'est pas vide ? alors on utilise str_replace (qui permet de remplacer la chaine par une autre) par $t , que l'on transforme en rouge, et que l'on affiche via $ligne['titre_cat']) : $ligne['nom_cat'];

    et concernant les jointure ca me parait plus logique même !!! je vais etudier ca !!!! ;-)

  19. #19
    Invité
    Invité(e)
    Par défaut
    Quand je te fourni des explications et un lien, suis-le !

    Citation Envoyé par jreaux62 Voir le message
    Il s'agit de l'opérateur ternaire (voir PHP - Opérateurs de comparaison) :

  20. #20
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 97
    Points : 64
    Points
    64
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    Quand je te fourni des explications et un lien, suis-le !
    Oups .. Ok je n'avais pas vu !!! effectivement autre question peut etre aussi avec les operateurs
    j'ai remarqué que lorsque je cherche "droit", il me renvoi "droit" mais pas "Droit" ou "DROIT"

    Tous les resultats sont là !!! mais ils ne sont pas tous affichés en rouge, il est , aparement , sensible à la casse !!

    Alors je me suis dit je vais transformer la variable de recherche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    //met en majuscule la 1ere lettre du mot
    $tM = ucfirst($t);
    echo $tM;
    $tm = lcfirst($t);
    echo $tm;
    j'écris mes requetes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ///condition pour titre
    $req_titre = " titre LIKE ";
     
    //variable titre seule arajouter dans requete titre
    $req_var = "'%$tM%' ";
    $req_var_m = "'%$tm%' ";
    je concatene
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    /code de condition pour recherche par titre	
    		if ($t != "") {
    			$req_comp=$req_comp." AND ".$req_titre.$req_var." OR ".$req_var_m; 
    			}
     
     
    echo $req_comp; //AFFICHAGE DE LA REQUETE
    jusque là ca marche mais je ne sais pas comment lui dire Majuscule ou minuscule tu affiches en rouge

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    // on souligne en rouge les éléments recherchés $val = (condition)? (valeur si condition vraie) : (valeur si condition fausse);
    		$titre_cat = ((!empty($tM))? str_replace( $tM, '<span class="red">'.$tM.'</span>', $ligne['titre']) : $ligne['titre']) AND ((!empty($tm))? str_replace( $tm, '<span class="red">'.$tm.'</span>', $ligne['titre']) : $ligne['titre']);
    		echo $titre_cat;
    il me renvoi que la premiere la premiere condition à savoir $tM

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/04/2010, 09h23
  2. Réponses: 9
    Dernier message: 21/05/2007, 00h33
  3. Réponses: 1
    Dernier message: 06/04/2007, 19h17
  4. [Tableaux] comment récupérer ma variable array
    Par lafmart dans le forum Langage
    Réponses: 2
    Dernier message: 05/02/2007, 03h11
  5. comment récupérer une variable membre?
    Par marute dans le forum MFC
    Réponses: 4
    Dernier message: 13/04/2006, 16h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo