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 :

La requête n'affiche rien [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    retraité bidouilleur informatique
    Inscrit en
    Février 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : retraité bidouilleur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 75
    Par défaut La requête n'affiche rien
    bonjour à tous,

    Je viens une fois de plus vers vous car je cale...
    J'aimerai aprés une recherche afficher le ou les résultats trouvés...mais rien de s'affiche et aucun message d'erreur!
    $variable = nom de la colonne dans laquelle je cherche.
    $var_recherche = mot recherché.


    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
     
    <?php
    include 'connect.php';
    $connexion = mysqli_connect($DB_HOST, $DB_USER, $DB_PASSWORD, $DB_NAME )or die ("erreur");
    mysqli_query($connexion,"SET NAMES 'utf8'");
    $variable = mysqli_real_escape_string($connexion, $_POST["variable"]);
    $var_recherche = mysqli_real_escape_string($connexion, $_POST["var_recherche"]);
     
    	echo $variable;	
    	echo "&nbsp";
    	echo $var_recherche;
    	// ok jusqu'ici
    $query = "SELECT * from inlinemod where '$variable' like '$var_recherche%'";
    $result = mysqli_query($connexion, $query);
    ?>	
    <table>
                <tr>
                    <th>Nom</th>
                    <th>prénom</th>
                    <th>adresse</th>
                    <th>code postal</th>
                    <th>ville</th>
    		<th>degré</th>
    		<th>email</th>
    		<th>téléphone</th>
    		<th>date de naissance</th>
                </tr>	
    <?php	
    while ($donnees = mysqli_fetch_array($result)) 
    {
        // on affiche les résultats
        echo '
                            <tr>
                                <td>'.$donnees['nom'].'</td>
                                <td>'.$donnees['prenom'].'</td>
                                <td>'.$donnees['adresse'].'</td>
                                <td>'.$donnees['code_postal'].'</td>
    							<td>'.$donnees['ville'].'</td>
                                <td>'.$donnees['degre'].'</td>
    							<td>'.$donnees['email'].'</td>
    							<td>'.$donnees['telephone'].'</td>
    							<td>'.$donnees['naissance'].'</td>
                            </tr>
                    ';
    	}	
    mysqli_close($connexion);	
    ?>
    </table>	
    </body>
    Je vous remercie par avance pour le coup de pouce...

    @+

    Naje83

  2. #2
    Membre prolifique Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 937
    Par défaut
    Salut naje83.

    1) Nous sommes dans le forum consacré à MySql, il serait bien de nous donner la requête qui vous pose des problèmes.

    2) Vous nous communiquez un script Php ???
    Si votre problème concerne le langage php, dans ce cas, déposez votre sujet dans le forum consacré à MySql/Php.

    3) ne mettez pas de "*" dans votre select, mais plutôt les noms des colonnes dont vous avez besoin.

    4) Il me semble que votre requête ne soit pas correcte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query = "SELECT * from inlinemod where '$variable' like '$var_recherche%'";
    La variable contenant le nom de votre colonne ne doit pas être encadré par des apostrophes.

    5) une correction concernant la façon d'écrire votre requête.
    Vous devez utiliser plutôt cette forme d'écriture (en rouge) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query = "SELECT * from inlinemod where ".$variable." like \'".$var_recherche."%\'";
    5-a) les apostrophes délimitants l'encadrement des chaînes de caractères doivent être précédées par un anti-slash, c'est-à-dire le caractère d'échappement.
    5-b) bien que cela soit toléré en php, vous devez concaténer vos variables (le point) et non les mettre dans la chaîne de caractères.
    5-c) le "%" doit être concaténé à l'intérieur de la chaîne de caractères et non à l'extérieur.

    6) je vous conseille d'utiliser le php pdo plutôt que le mysqli.

    7) voici un exemple de connexion à votre base de données :
    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
    /*===================================*/
    /*     Ouverture de la connexion     */
    /*===================================*/
     
    $link = mysqli_connect('localhost', 'test', 'test', 'test');
     
    if (mysqli_connect_errno())
    {
    	echo "Echec à la connexion (".mysqli_connect_errno().") : ".mysqli_connect_error();
    	exit();
    }
     
    echo 'Succès : '.mysqli_get_host_info($link)."\n\n";
     
    /*========================================*/
    /*     On gère le mode transactionnel     */
    /*========================================*/
     
    mysqli_autocommit($link, FALSE);
    8) et voici un exemple basique d'une requête select :
    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
    /*=============================================*/
    /*     Test de la requête sans préparation     */
    /*=============================================*/
     
    $query = 'select id, libelle, date, time from `tab_exemple`;';
     
    if (!($sel = mysqli_query($link,$query)))
    {
    	printf("Erreur - SQLSTATE %s.\n", $mysqli_sqlstate($link));
    	exit();
    }
     
    /*-------------------------------------------*/
    /*     Affichage du nombre de lignes lus     */
    /*-------------------------------------------*/
     
    echo "nombre de lignes lus : ".mysqli_num_rows($sel)."\n";
     
    /*----------------------------*/
    /*     Lecture des lignes     */
    /*----------------------------*/
     
    echo "+----+-----------+------------+----------+\n";
    echo "| Id |  Libelle  |    Date    |   Time   |\n";
    echo "+----+-----------+------------+----------+\n";
     
    while ($row = mysqli_fetch_assoc($sel))
    {
    	printf("|%3s |%10s |%11s |%9s |\n", $row['id'],$row['libelle'],$row['date'],$row['time']);
    }
     
    echo "+----+-----------+------------+----------+\n\n";
    9) à titre indicatif, voici un exemple d'insertion :
    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
    /*==============================*/
    /*     Insertion des lignes     */
    /*==============================*/
     
    $link->begin_transaction(MYSQLI_TRANS_START_WITH_CONSISTENT_SNAPSHOT);
     
    $query = 'insert into `tab_exemple` (`id`,`libelle`,`date`,`time`) values (4,\'treize\',\'2015-08-27\',\'19:08:07\'),(5,\'quinze\',\'2015-08-28\',\'19:08:07\');';
     
    if (!mysqli_query($link,$query))
    {
    	printf("Erreur Query : %s\n", mysqli_error($link));
    	mysqli_rollback($link);
    	exit();
    }
     
    printf("Nombre de lignes insérées : %d\n", mysqli_affected_rows($link));
     
    mysqli_commit($link);
    @+

  3. #3
    Membre confirmé
    Homme Profil pro
    retraité bidouilleur informatique
    Inscrit en
    Février 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : retraité bidouilleur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 75
    Par défaut
    Après avoir transformé la ligne 29 par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while ($donnees = mysqli_fetch_array($result)or die ("erreur"))
    Cela m'indique une erreur...mais laquelle

    @+

    Naje83

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysqli_query($connexion,"SET NAMES 'utf8'");
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $connexion->set_charset("utf8");
    Cela m'indique une erreur...mais laquelle
    Cela indique qu'il n'y a pas de résultat.

    A+.

  5. #5
    Membre confirmé
    Homme Profil pro
    retraité bidouilleur informatique
    Inscrit en
    Février 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : retraité bidouilleur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 75
    Par défaut
    Merci pour les réponses

    Entre temps j'ai changé la ligne 21 par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query = "SELECT * from inlinemod where $variable like $var_recherche%";
    et la ligne 38 par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while ($donnees = mysqli_fetch_array($result)or die ("erreur"))
    et donc j'ai un message d'erreur :
    Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in

    Franchement je ne comprends plus rien !

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query = "SELECT * from inlinemod where $variable like $var_recherche%";
    Il faut mettre les valeurs dans des quotes (sauf si c'est un entier) si tu les mets directement dans la requête (ce qui est déconseillé, il faut utiliser une requête préparée)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query = "SELECT * from inlinemod where $variable like '$var_recherche%'";
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while ($donnees = mysqli_fetch_array($result, MYSQLI_ASSOC))
    A+.

  7. #7
    Membre confirmé
    Homme Profil pro
    retraité bidouilleur informatique
    Inscrit en
    Février 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : retraité bidouilleur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 75
    Par défaut
    Merci à vous tous mais j'ai toujors le message d'erreur...

    Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Afficher un message si requête ne renvoie rien
    Par phil6172 dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 04/09/2016, 17h40
  2. Résultat d'une requête qui n'affiche rien
    Par LOBO1986 dans le forum JDBC
    Réponses: 6
    Dernier message: 23/01/2013, 12h58
  3. pourquoi mon quickreport n'affiche rien ?
    Par bertrand_declerck dans le forum Bases de données
    Réponses: 8
    Dernier message: 31/07/2005, 00h59
  4. [LG]Programme qui n'affiche rien
    Par ousunas dans le forum Langage
    Réponses: 4
    Dernier message: 17/02/2004, 19h38
  5. Opengl n'affiche rien.
    Par Fugus02 dans le forum OpenGL
    Réponses: 4
    Dernier message: 06/01/2004, 15h41

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