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 :

Problème de script PHP/MySQl [MySQL]


Sujet :

PHP & Base de données

  1. #21
    Membre émérite
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Par défaut
    t'as mis ça dans le code ?

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    mysql_connect("localhost", "root", "") or die("Impossible de se connecter : " . mysql_error());
     
    $requete = mysql_query($req) or die("Impossible de se connecter : " . mysql_error());

    oui le code sql pour la table

  2. #22
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2010
    Messages : 86
    Par défaut
    Alors, si je rajoute :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    mysql_connect('localhost','root','');
    mysql_select_db('tests');
    $requete = mysql_query($req) or die("Impossible de se connecter : " . mysql_error());
    à l'écran s'affiche :

    Notice: Undefined variable: req in C:\wamp\www\php form\lebontest.php on line 143
    Impossible de se connecter : Query was empty
    --------------------------------------------------------------------------

    Pour le code SQL :

    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
    -- phpMyAdmin SQL Dump
    -- version 3.2.0.1
    -- http://www.phpmyadmin.net
    --
    -- Serveur: localhost
    -- Généré le : Ven 10 Décembre 2010 à 14:09
    -- Version du serveur: 5.1.41
    -- Version de PHP: 5.3.0
     
    SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
     
    --
    -- Base de données: `tests`
    --
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `utilisateurs`
    --
     
    CREATE TABLE IF NOT EXISTS `utilisateurs` (
      `id` bigint(20) NOT NULL,
      `pseudo` varchar(255) NOT NULL,
      `nom` varchar(255) NOT NULL,
      `genre` varchar(255) NOT NULL,
      `infos` text NOT NULL
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
     
    --
    -- Contenu de la table `utilisateurs`
    --
     
    INSERT INTO `utilisateurs` (`id`, `pseudo`, `nom`, `genre`, `infos`) VALUES
    (0, 'luky', 'bonomi', 'homme', 'VJ of tik&tek'),
    (0, 'alba', 'penza', 'femme', 'femme de luky'),
    (0, 'max', 'juniet', 'homme', 'ami de Luky');

  3. #23
    Membre émérite
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Par défaut
    alors :

    en haut :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mysql_connect('localhost','root','') or die(mysql_error());

    ensuite ta requête ne concerne pas la table que tu m'as donnée

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $req = 'SELECT id, username, email FROM forumusers WHERE ';

    alors que tu me montre la table utilisateurs avec des champs différents aussi

    et

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $req .= ' order by id asc';
    $requete = mysql_query($req) or die(mysql_error());

    es tu sur d'avoir mis le bon code ? ou la bonne table ?

  4. #24
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2010
    Messages : 86
    Par défaut
    le code et la table correspondent, le code tel que je l'ai sous mes yeux est celui ci :

    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
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Document sans titre</title>
    <style type="text/css">
    <!--
    body {
    	font: 100%/1.4 Verdana, Arial, Helvetica, sans-serif;
    	background: #4E5869;
    	margin: 0;
    	padding: 0;
    	color: #000;
    }
     
    /* ~~ Sélecteurs d'éléments/balises ~~ */
    ul, ol, dl { /* En raison des variations entre les navigateurs, il est conseillé d'attribuer une valeur de zéro aux marges intérieures et aux marges des listes. A des fins de cohérence, vous pouvez définir les valeurs désirées dans cette zone ou dans les éléments de liste (LI, DT, DD) qu'elle contient. N'oubliez pas que les paramètres que vous définissez ici se répercuteront sur la liste .nav, sauf si vous rédigez un sélecteur plus spécifique. */
    	padding: 0;
    	margin: 0;
    }
    h1, h2, h3, h4, h5, h6, p {
    	margin-top: 0;	 /* la suppression de la marge supérieure résout un problème où les marges sortent de leur div conteneur. La marge inférieure restante l'éloignera de tout élément qui suit. */
    	padding-right: 15px;
    	padding-left: 15px; /* l'ajout de la marge intérieure aux côtés des éléments à l'intérieur des divs, et non aux divs proprement dit, évite le recours à des calculs de modèle de boîte. Une autre méthode consiste à employer une div imbriquée avec marge intérieure latérale. */
    }
    a img { /* ce sélecteur élimine la bordure bleue par défaut affichée dans certains navigateurs autour d'une image lorsque celle-ci est entourée d'un lien. */
    	border: none;
    }
     
    /* ~~ La définition du style des liens de votre site doit respecter cet ordre, y compris le groupe de sélecteurs qui créent l'effet de survol. ~~ */
    a:link {
    	color:#414958;
    	text-decoration: underline; /* à moins que vous ne définissiez un style particulièrement exclusif pour vos liens, mieux vaut prévoir un soulignement, qui garantit une identification visuelle rapide. */
    }
    a:visited {
    	color: #4E5869;
    	text-decoration: underline;
    }
    a:hover, a:active, a:focus { /* ce groupe de sélecteurs offrira à un navigateur au clavier la même expérience de survol que celle d'une personne employant la souris. */
    	text-decoration: none;
    }
     
    /* ~~ ce conteneur entoure toutes les autres divs, en leur attribuant leur largeur sur base d'un pourcentage ~~ */
    .container {
    	width: 80%;
    	max-width: 1260px;/* une valeur «*max-width*» peut s'avérer utile pour éviter que cette mise en page ne soit trop large sur un moniteur de grande taille. La lisibilité de la longueur de ligne est ainsi améliorée. IE6 ne tient pas compte de cette déclaration. */
    	min-width: 780px;/* une valeur «*min-width*» peut s'avérer utile pour éviter que cette mise en page ne soit trop étroite. La longueur de ligne est ainsi plus lisible dans les colonnes latérales. IE6 ne tient pas compte de cette déclaration. */
    	background: #FFF;
    	margin: 0 auto; /* la valeur automatique sur les côtés, associée à la largeur, permet de centrer la mise en page. Elle n'est pas nécessaire si vous fixez la largeur du conteneur à 100%. */
    	overflow: hidden; /* cette déclaration force le .container à effacer toutes les colonnes flottantes qui s'y trouvent. */
    }
     
    /* ~~ Colonnes pour la mise en page. ~~ 
     
    1) La marge intérieure n'est placée qu'en haut et/ou en bas des divs. Les éléments à l'intérieur de ces divs posséderont une marge intérieure sur les côtés. Vous évitez ainsi de devoir recourir à des «*calculs de modèle de boîte*». N'oubliez pas que si vous ajoutez une marge intérieure latérale ou une bordure à la div proprement dite, elle sera ajoutée à la largeur que vous définissez pour créer la largeur totale. Vous pouvez également supprimer la marge intérieure de l'élément dans la div et placer une seconde div à l'intérieur, sans largeur et possédant une marge intérieure appropriée pour votre concept.
     
    2) Toutes les colonnes étant flottantes, aucune marge ne leur a été attribuée. Si vous devez ajouter une marge, évitez de la placer du côté vers lequel vous effectuez le flottement (par exemple, une marge droite sur une div configurée pour flotter vers la droite). Dans de nombreux cas, vous pouvez plutôt employer une marge intérieure. Pour les divs où cette règle ne peut pas être respectée, ajoutez une déclaration «*display:inline*» à la règle de la div, afin de contourner un bogue qui amène certaines versions d'Internet Explorer à doubler la marge.
     
    3) Comme des classes peuvent être employées à plusieurs reprises dans un document (et que plusieurs classes peuvent aussi être attribuées à un élément), les colonnes ont reçu des noms de classes au lieu d'ID. Par exemple, deux divs de barre latérale peuvent être empilées si nécessaire. Elles peuvent être très facilement remplacées par des ID si vous le souhaitez, pour autant que vous ne les utilisiez qu'une fois par document.
     
    4) Si vous préférez que la navigation se trouve à droite et pas à gauche, faites flotter ces colonnes en sens opposé (toutes vers la droite au lieu de vers la gauche). Leur rendu s'effectuera dans l'ordre inverse. Il n'est pas nécessaire de déplacer les divs dans le code HTML source.
     
    */
    .sidebar1 {
    	float: left;
    	width: 20%;
    	background: #93A5C4;
    	padding-bottom: 10px;
    }
    .content {
    	padding: 10px 0;
    	width: 80%;
    	float: left;
    }
     
    /* ~~ Ce sélecteur groupé donne de l'espace aux listes dans la zone .content ~~ */
    .content ul, .content ol { 
    	padding: 0 15px 15px 40px; /* cette marge intérieure reflète la marge intérieure droite dans les en-têtes et la règle de paragraphe ci-dessus. Une marge intérieure a été placée en bas, afin d'assurer un espace entre les autres éléments des listes, et à gauche pour créer le retrait. Vous pouvez les régler comme bon vous semble. */
    }
     
    /* ~~ Styles de liste de navigation (peuvent être supprimés si vous optez pour un menu de survol prédéfini tel que Spry) ~~ */
    ul.nav {
    	list-style: none; /* entraîne la suppression du marqueur de liste */
    	border-top: 1px solid #666; /* crée la bordure supérieure des liens*; les autres sont placées à l'aide d'une bordure inférieure sur la balise LI */
    	margin-bottom: 15px; /* crée l'espace entre la navigation et le contenu en dessous */
    }
    ul.nav li {
    	border-bottom: 1px solid #666; /* crée la séparation des boutons */
    }
    ul.nav a, ul.nav a:visited { /* le regroupement de ces sélecteurs garantit que vos liens conservent leur apparence de bouton, même après avoir été activés */
    	padding: 5px 5px 5px 15px;
    	display: block; /* attribue au bloc de liens des propriétés qui lui font remplir toute la balise LI qui le contient. Force la zone entière à réagir à un clic de souris. */
    	text-decoration: none;
    	background: #8090AB;
    	color: #000;
    }
    ul.nav a:hover, ul.nav a:active, ul.nav a:focus { /* modifie la couleur de l'arrière-plan et du texte pour les navigateurs à la souris et au clavier. */
    	background: #6F7D94;
    	color: #FFF;
    }
     
    /* ~~ classes flottant/effacement diverses ~~ */
    .fltrt {  /* cette classe peut servir à faire flotter un élément depuis la droite sur votre page. L'élément flottant doit précéder l'élément à côté duquel il doit apparaître sur la page. */
    	float: right;
    	margin-left: 8px;
    }
    .fltlft { /* cette classe peut servir à faire flotter un élément depuis la gauche sur votre page. L'élément flottant doit précéder l'élément à côté duquel il doit apparaître sur la page. */
    	float: left;
    	margin-right: 8px;
    }
    .clearfloat { /* cette classe peut être placée sur une div <br /> ou vide, en tant qu'élément final suivant la dernière div flottante (dans le #container) si le paramètre overflow:hidden du .container est supprimé */
    	clear:both;
    	height:0;
    	font-size: 1px;
    	line-height: 0px;
    }
    -->
    </style><!--[if lte IE 7]>
    <style>
    .content { margin-right: -1px; } /* cette marge négative de 1px peut être placée sur n'importe quelle colonne de cette mise en page, avec le même effet correcteur. */
    ul.nav a { zoom: 1; }  /* la propriété de zoom donne à IE le déclencheur hasLayout requis pour corriger les espaces blancs supplémentaires entre les liens */
    </style>
    <![endif]--></head>
     
    <body>
     
    <div class="container">
      <div class="sidebar1">
        <ul class="nav">
          <li><a href="#">Lien un</a></li>
          <li><a href="#">Lien deux</a></li>
          <li><a href="#">Lien trois</a></li>
          <li><a href="#">Lien quatre</a></li>
        </ul>
        <p> Les liens ci-dessus illustrent une structure de navigation de base à l'aide d'une liste simple dont le style est défini par CSS. Vous pouvez l'utiliser comme point de départ et modifier les propriétés afin de définir l'apparence de votre choix. Si vous avez besoin de menus de survol, créez-les à l'aide d'un menu Spry, d'un widget de menu téléchargé sur Adobe Exchange ou de diverses solutions JavaScript ou CSS.</p>
        <p>Si vous voulez placer la navigation en haut, déplacez l'élément ul.nav en haut de la page et recréez la mise en forme.</p>
        <!-- end .sidebar1 --></div>
      <div class="content">
        <h1>Instructions</h1>
     <?php
    mysql_connect('localhost','root','') or die(mysql_error());;
    mysql_select_db('tests');
     
    //On determine l'expression a rechercher
    if(isset($_GET['recherche']))
    {
            $rec = htmlentities($_GET['recherche']);
    }
    else
    {
            $rec = 'php MYSQL';
    }
    //On determine le type de recherche
    if(isset($_GET['type']))
    {
            if($_GET['type']=='un')//Un des mots
            {
                    $type = 1;
            }
            elseif($_GET['type']=='tout')//Tout les mots
            {
                    $type = 2;
            }
            else//L'expression exacte
            {
                    $type = 3;
            }
    }
    else
    {
            $type = 1;//type par defaut: L'expression exacte
    }
    //On determine si on doit surligner les mots dans les resultats
    if(!isset($_GET['surligner']) or $_GET['surligner']!='true')
    {
            $surligner = false;
    }
    else
    {
            $surligner = true;
    }
    //On dertermine les identifiants, les noms et les informations des utilisateur
    $req = 'SELECT nom, info FROM utilisateurs';
     
    if($type==1)
    {//ayant un des mots dans leurs informations
            $mots = explode(' ',$rec);//En separre lexpression en mots cles
            foreach($mots as $mot)
            {
                    $req .= ' info LIKE "%'.$mot.'%" OR';
            }
            $req .= ' 1=1';
    }
    elseif($type==2)
    {//ayant tout des mots dans leurs informations
            $mots = explode(' ',$rec);//En separre lexpression en mots cles
            foreach($mots as $mot)
            {
                    $req .= ' info LIKE "%'.$mot.'%" AND';
            }
            $req .= ' 1=1';
    }
    else
    {//ayant l'expression exacte dans leurs informations
            $req .= 'info LIKE "%'.$rec.'%"';
    }
    //Les utilisateur seront ranges par identifiant en ordre croissant
    $req .= ' order by pseudo asc';
    $requete = mysql_query($req);
    echo $requete;
     
    //Le formulaire de recherche
    ?>
    <form action="" method="get">
    Expression &agrave; rechercher: <input type="text" name="recherche" value="<?php echo $rec; ?>" /><br />
    Type de recherche: <input type="radio" name="type" value="un"<?php if($type==1){echo 'checked="checked"';} ?> /> Un des mots <input type="radio" name="type" value="tout"<?php if($type==2){echo 'checked="checked"';} ?> /> Tout les mots <input type="radio" name="type" value="exacte"<?php if($type==3){echo 'checked="checked"';} ?> /> Expression exacte<br />
    Mettre en gras les mots recherch&eacute;s: <input type="checkbox" name="surligner" value="true" <?php if($surligner){echo 'checked="checked"';} ?> /><br />
    <input type="submit" value="Rechercher" />
    </form>
    <h2>R&eacute;sultats</h2>
    <table>
            <tr>
                    <th>Identifiant</th>
                    <th>Nom</th>
                    <th>Informations</th>
            </tr>
    <?php
    //On affiche les resultats
    while($dnn = mysql_fetch_array($requete))
    {
    ?>
            <tr>
                    <td><?php echo $dnn['id']; ?></td>
                    <td><?php echo $dnn['nom']; ?></td>
                    <td><?php
    if($surligner)//Si il faut surligner les mots, on les surligne
    {
            if($type==3)
            {
                    echo preg_replace('#('.preg_quote($rec).')#i', '<strong>$1</strong>', $dnn['infos']);//On surligne l'expression exacte
            }
            else
            {
                    echo preg_replace('#('.str_replace(' ','|',preg_quote($rec)).')#i', '<strong>$1</strong>', $dnn['infos']);//On surligne les mots cles de la recherche
            }
    }
    else
    {
            echo $dnn['infos'];//On ne surligne pas
    }
     
    echo $requete
    ?></td>
            </tr>
    <?php
    }
    ?>
     
    <?php // ?>
    </table>
     
        <!-- end .content --></div>
      <!-- end .container --></div>
    </body>
    </html>
    je te le donne en entier pour que tu sache ou j'en suis à en ce moment même.

    Et désolé, le code ne correspond plus trop a celui initial, mais à quelques détails près., en espérant que puisse m'aider, et merci de perdre du temps pour moi

  5. #25
    Membre émérite
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Par défaut
    ok

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $requete = mysql_query("SELECT * FROM utilisateurs");
    echo $requete;
    devrait marcher !

  6. #26
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2010
    Messages : 86
    Par défaut
    Effectivement, le code fonctionne, mais il m'affiche tout le contenu de la table, alors qu'il devrait m'afficher la requête effectué dans le formulaire html ....

    ce code est juste en tout cas ! un grand merci ^^ mais si tu pouvais m'éclairer encore un peu pour que la fonction de 'recherche' fonctionne parfaitement ce serait génial !

  7. #27
    Membre émérite
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Par défaut
    dans le nouveau code que tu m'as donné il manque le where dans ta requête

  8. #28
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2010
    Messages : 86
    Par défaut
    Tu veux dire que je dois l'écrire de cette manière ? :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req = 'SELECT nom, info FROM utilisateurs WHERE';
    car rien ne change une fois la page rafraichie

  9. #29
    Membre émérite
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Par défaut
    réaffiche ta requête maintenant

    avec un echo $req avant le query et exécutes la dans phpmyadmin

    je vois pas le souci c'est vraiment bizarre

  10. #30
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2010
    Messages : 86
    Par défaut
    alors si je fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    //Les utilisateur seront ranges par identifiant en ordre croissant
    $req .= ' order by pseudo asc';
    echo $req;
    $requete = mysql_query("SELECT * FROM utilisateurs");
    echo $requete;
    cela m'affiche à l'écran :

    SELECT nom, info FROM utilisateurs WHERE info LIKE "%luky%" OR 1=1 order by pseudo ascResource id #4
    Et ce ci est affiché tout en haut de ma page, pour le reste, rien a changé, tout reste identique, c'est à dire que jai encore tout le contenu de ma table à l'écran.

    pour ce qui es du code dan PhPmyadmin, la commande

    SELECT nom, infos FROM utilisateurs WHERE
    ne retourne aucun resultat, jugez par vous même :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #1064 - 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 'LIMIT 0, 30' at line 2
    SELECT nom, infos
    FROM utilisateurs
    WHERE 
    LIMIT 0 , 30

  11. #31
    Membre émérite
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Par défaut
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $requete = mysql_query($req);
    echo $requete;

    pas
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $requete = mysql_query("SELECT * FROM utilisateurs");
    echo $requete;

  12. #32
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2010
    Messages : 86
    Par défaut
    avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $requete = mysql_query($req);
    echo $requete;

    j'obtiens :

    Notice: Undefined index: pseudo in C:\wamp\www\php form\lebontest.php on line 236

    Notice: Undefined index: id in C:\wamp\www\php form\lebontest.php on line 237
    penza femme de lukyResource id #4

    Notice: Undefined index: pseudo in C:\wamp\www\php form\lebontest.php on line 236

    Notice: Undefined index: id in C:\wamp\www\php form\lebontest.php on line 237
    bonomi VJ of tik&tekResource id #4

    Notice: Undefined index: pseudo in C:\wamp\www\php form\lebontest.php on line 236

    Notice: Undefined index: id in C:\wamp\www\php form\lebontest.php on line 237
    juniet ami de LukyResource id #4

  13. #33
    Membre émérite
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Par défaut
    c'est plus les mêmes erreurs

    on avance

    affiches les lignes incriminées

  14. #34
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2010
    Messages : 86
    Par défaut
    Tiens que tu vois les numéros de lignes :

  15. #35
    Membre émérite
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Par défaut
    il te manque pseudo et id dans ta requête

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT id, pseudo, nom, infos FROM

    au lieu de

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT nom, infos FROM

  16. #36
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2010
    Messages : 86
    Par défaut
    ok, là les données s'affichent bien, mais toujours est-il qu'à l'écranje vois ceci :



    et que la fonction de recherche n'est pas opérationelle ...

    si sa peut aider ...

    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
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Document sans titre</title>
    <style type="text/css">
    <!--
    body {
    	font: 100%/1.4 Verdana, Arial, Helvetica, sans-serif;
    	background: #4E5869;
    	margin: 0;
    	padding: 0;
    	color: #000;
    }
     
    /* ~~ Sélecteurs d'éléments/balises ~~ */
    ul, ol, dl { /* En raison des variations entre les navigateurs, il est conseillé d'attribuer une valeur de zéro aux marges intérieures et aux marges des listes. A des fins de cohérence, vous pouvez définir les valeurs désirées dans cette zone ou dans les éléments de liste (LI, DT, DD) qu'elle contient. N'oubliez pas que les paramètres que vous définissez ici se répercuteront sur la liste .nav, sauf si vous rédigez un sélecteur plus spécifique. */
    	padding: 0;
    	margin: 0;
    }
    h1, h2, h3, h4, h5, h6, p {
    	margin-top: 0;	 /* la suppression de la marge supérieure résout un problème où les marges sortent de leur div conteneur. La marge inférieure restante l'éloignera de tout élément qui suit. */
    	padding-right: 15px;
    	padding-left: 15px; /* l'ajout de la marge intérieure aux côtés des éléments à l'intérieur des divs, et non aux divs proprement dit, évite le recours à des calculs de modèle de boîte. Une autre méthode consiste à employer une div imbriquée avec marge intérieure latérale. */
    }
    a img { /* ce sélecteur élimine la bordure bleue par défaut affichée dans certains navigateurs autour d'une image lorsque celle-ci est entourée d'un lien. */
    	border: none;
    }
     
    /* ~~ La définition du style des liens de votre site doit respecter cet ordre, y compris le groupe de sélecteurs qui créent l'effet de survol. ~~ */
    a:link {
    	color:#414958;
    	text-decoration: underline; /* à moins que vous ne définissiez un style particulièrement exclusif pour vos liens, mieux vaut prévoir un soulignement, qui garantit une identification visuelle rapide. */
    }
    a:visited {
    	color: #4E5869;
    	text-decoration: underline;
    }
    a:hover, a:active, a:focus { /* ce groupe de sélecteurs offrira à un navigateur au clavier la même expérience de survol que celle d'une personne employant la souris. */
    	text-decoration: none;
    }
     
    /* ~~ ce conteneur entoure toutes les autres divs, en leur attribuant leur largeur sur base d'un pourcentage ~~ */
    .container {
    	width: 80%;
    	max-width: 1260px;/* une valeur «*max-width*» peut s'avérer utile pour éviter que cette mise en page ne soit trop large sur un moniteur de grande taille. La lisibilité de la longueur de ligne est ainsi améliorée. IE6 ne tient pas compte de cette déclaration. */
    	min-width: 780px;/* une valeur «*min-width*» peut s'avérer utile pour éviter que cette mise en page ne soit trop étroite. La longueur de ligne est ainsi plus lisible dans les colonnes latérales. IE6 ne tient pas compte de cette déclaration. */
    	background: #FFF;
    	margin: 0 auto; /* la valeur automatique sur les côtés, associée à la largeur, permet de centrer la mise en page. Elle n'est pas nécessaire si vous fixez la largeur du conteneur à 100%. */
    	overflow: hidden; /* cette déclaration force le .container à effacer toutes les colonnes flottantes qui s'y trouvent. */
    }
     
    /* ~~ Colonnes pour la mise en page. ~~ 
     
    1) La marge intérieure n'est placée qu'en haut et/ou en bas des divs. Les éléments à l'intérieur de ces divs posséderont une marge intérieure sur les côtés. Vous évitez ainsi de devoir recourir à des «*calculs de modèle de boîte*». N'oubliez pas que si vous ajoutez une marge intérieure latérale ou une bordure à la div proprement dite, elle sera ajoutée à la largeur que vous définissez pour créer la largeur totale. Vous pouvez également supprimer la marge intérieure de l'élément dans la div et placer une seconde div à l'intérieur, sans largeur et possédant une marge intérieure appropriée pour votre concept.
     
    2) Toutes les colonnes étant flottantes, aucune marge ne leur a été attribuée. Si vous devez ajouter une marge, évitez de la placer du côté vers lequel vous effectuez le flottement (par exemple, une marge droite sur une div configurée pour flotter vers la droite). Dans de nombreux cas, vous pouvez plutôt employer une marge intérieure. Pour les divs où cette règle ne peut pas être respectée, ajoutez une déclaration «*display:inline*» à la règle de la div, afin de contourner un bogue qui amène certaines versions d'Internet Explorer à doubler la marge.
     
    3) Comme des classes peuvent être employées à plusieurs reprises dans un document (et que plusieurs classes peuvent aussi être attribuées à un élément), les colonnes ont reçu des noms de classes au lieu d'ID. Par exemple, deux divs de barre latérale peuvent être empilées si nécessaire. Elles peuvent être très facilement remplacées par des ID si vous le souhaitez, pour autant que vous ne les utilisiez qu'une fois par document.
     
    4) Si vous préférez que la navigation se trouve à droite et pas à gauche, faites flotter ces colonnes en sens opposé (toutes vers la droite au lieu de vers la gauche). Leur rendu s'effectuera dans l'ordre inverse. Il n'est pas nécessaire de déplacer les divs dans le code HTML source.
     
    */
    .sidebar1 {
    	float: left;
    	width: 20%;
    	background: #93A5C4;
    	padding-bottom: 10px;
    }
    .content {
    	padding: 10px 0;
    	width: 80%;
    	float: left;
    }
     
    /* ~~ Ce sélecteur groupé donne de l'espace aux listes dans la zone .content ~~ */
    .content ul, .content ol { 
    	padding: 0 15px 15px 40px; /* cette marge intérieure reflète la marge intérieure droite dans les en-têtes et la règle de paragraphe ci-dessus. Une marge intérieure a été placée en bas, afin d'assurer un espace entre les autres éléments des listes, et à gauche pour créer le retrait. Vous pouvez les régler comme bon vous semble. */
    }
     
    /* ~~ Styles de liste de navigation (peuvent être supprimés si vous optez pour un menu de survol prédéfini tel que Spry) ~~ */
    ul.nav {
    	list-style: none; /* entraîne la suppression du marqueur de liste */
    	border-top: 1px solid #666; /* crée la bordure supérieure des liens*; les autres sont placées à l'aide d'une bordure inférieure sur la balise LI */
    	margin-bottom: 15px; /* crée l'espace entre la navigation et le contenu en dessous */
    }
    ul.nav li {
    	border-bottom: 1px solid #666; /* crée la séparation des boutons */
    }
    ul.nav a, ul.nav a:visited { /* le regroupement de ces sélecteurs garantit que vos liens conservent leur apparence de bouton, même après avoir été activés */
    	padding: 5px 5px 5px 15px;
    	display: block; /* attribue au bloc de liens des propriétés qui lui font remplir toute la balise LI qui le contient. Force la zone entière à réagir à un clic de souris. */
    	text-decoration: none;
    	background: #8090AB;
    	color: #000;
    }
    ul.nav a:hover, ul.nav a:active, ul.nav a:focus { /* modifie la couleur de l'arrière-plan et du texte pour les navigateurs à la souris et au clavier. */
    	background: #6F7D94;
    	color: #FFF;
    }
     
    /* ~~ classes flottant/effacement diverses ~~ */
    .fltrt {  /* cette classe peut servir à faire flotter un élément depuis la droite sur votre page. L'élément flottant doit précéder l'élément à côté duquel il doit apparaître sur la page. */
    	float: right;
    	margin-left: 8px;
    }
    .fltlft { /* cette classe peut servir à faire flotter un élément depuis la gauche sur votre page. L'élément flottant doit précéder l'élément à côté duquel il doit apparaître sur la page. */
    	float: left;
    	margin-right: 8px;
    }
    .clearfloat { /* cette classe peut être placée sur une div <br /> ou vide, en tant qu'élément final suivant la dernière div flottante (dans le #container) si le paramètre overflow:hidden du .container est supprimé */
    	clear:both;
    	height:0;
    	font-size: 1px;
    	line-height: 0px;
    }
    th { background:black; 
    color:white;
    }
    -->
    </style><!--[if lte IE 7]>
    <style>
    .content { margin-right: -1px; } /* cette marge négative de 1px peut être placée sur n'importe quelle colonne de cette mise en page, avec le même effet correcteur. */
    ul.nav a { zoom: 1; }  /* la propriété de zoom donne à IE le déclencheur hasLayout requis pour corriger les espaces blancs supplémentaires entre les liens */
    </style>
    <![endif]--></head>
     
    <body>
     
    <div class="container">
      <div class="sidebar1">
        <ul class="nav">
          <li><a href="#">Lien un</a></li>
          <li><a href="#">Lien deux</a></li>
          <li><a href="#">Lien trois</a></li>
          <li><a href="#">Lien quatre</a></li>
        </ul>
        <p> Les liens ci-dessus illustrent une structure de navigation de base à l'aide d'une liste simple dont le style est défini par CSS. Vous pouvez l'utiliser comme point de départ et modifier les propriétés afin de définir l'apparence de votre choix. Si vous avez besoin de menus de survol, créez-les à l'aide d'un menu Spry, d'un widget de menu téléchargé sur Adobe Exchange ou de diverses solutions JavaScript ou CSS.</p>
        <p>Si vous voulez placer la navigation en haut, déplacez l'élément ul.nav en haut de la page et recréez la mise en forme.</p>
        <!-- end .sidebar1 --></div>
      <div class="content">
        <h1>Instructions</h1>
     <?php
    mysql_connect('localhost','root','') or die(mysql_error());;
    mysql_select_db('tests');
     
    //On determine l'expression a rechercher
    if(isset($_GET['recherche']))
    {
            $rec = htmlentities($_GET['recherche']);
    }
    else
    {
            $rec = 'php MYSQL';
    }
    //On determine le type de recherche
    if(isset($_GET['type']))
    {
            if($_GET['type']=='un')//Un des mots
            {
                    $type = 1;
            }
            elseif($_GET['type']=='tout')//Tout les mots
            {
                    $type = 2;
            }
            else//L'expression exacte
            {
                    $type = 3;
            }
    }
    else
    {
            $type = 1;//type par defaut: L'expression exacte
    }
    //On determine si on doit surligner les mots dans les resultats
    if(!isset($_GET['surligner']) or $_GET['surligner']!='true')
    {
            $surligner = false;
    }
    else
    {
            $surligner = true;
    }
    //On dertermine les identifiants, les noms et les informations des utilisateur
    $req = 'SELECT id, pseudo, nom, infos FROM utilisateurs WHERE';
     
    if($type==1)
    {//ayant un des mots dans leurs informations
            $mots = explode(' ',$rec);//En separre lexpression en mots cles
            foreach($mots as $mot)
            {
                    $req .= ' infos LIKE "%'.$mot.'%" OR';
            }
            $req .= ' 1=1';
    }
    elseif($type==2)
    {//ayant tout des mots dans leurs informations
            $mots = explode(' ',$rec);//En separre lexpression en mots cles
            foreach($mots as $mot)
            {
                    $req .= ' infos LIKE "%'.$mot.'%" AND';
            }
            $req .= ' 1=1';
    }
    else
    {//ayant l'expression exacte dans leurs informations
            $req .= 'infos LIKE "%'.$rec.'%"';
    }
    //Les utilisateur seront ranges par identifiant en ordre croissant
    $req .= ' order by pseudo asc';
    echo $req;
    $requete = mysql_query($req);
    echo $requete;
     
     
     
    //Le formulaire de recherche
    ?>
    <form action="" method="get">
    Expression &agrave; rechercher: <input type="text" name="recherche" value="<?php echo $rec; ?>" /><br />
    Type de recherche: <input type="radio" name="type" value="un"<?php if($type==1){echo 'checked="checked"';} ?> /> Un des mots <input type="radio" name="type" value="tout"<?php if($type==2){echo 'checked="checked"';} ?> /> Tout les mots <input type="radio" name="type" value="exacte"<?php if($type==3){echo 'checked="checked"';} ?> /> Expression exacte<br />
    Mettre en gras les mots recherch&eacute;s: <input type="checkbox" name="surligner" value="true" <?php if($surligner){echo 'checked="checked"';} ?> /><br />
    <input type="submit" value="Rechercher" />
    </form>
    <h2>R&eacute;sultats</h2>
    <table>
            <tr>
                    <th>Pseudo</th>
                    <th>Identifiant</th>
                    <th>Nom</th>
                    <th>Informations</th>
                    <th>Résumé</th>
            </tr>
    <?php
    //On affiche les resultats
    while($dnn = mysql_fetch_array($requete))
    {
    ?>
            <tr>
                    <td><?php echo $dnn['pseudo']; ?></td>
                    <td><?php echo $dnn['id']; ?></td>
                    <td><?php echo $dnn['nom']; ?></td>
                    <td><?php echo $dnn['infos']; ?></td>
     
                    <td><b>|||</b>  <?php
    if($surligner)//Si il faut surligner les mots, on les surligne
    {
            if($type==3)
            {
                    echo preg_replace('#('.preg_quote($rec).')#i', '<strong>$1</strong>', $dnn['infos']);//On surligne l'expression exacte
            }
            else
            {
                    echo preg_replace('#('.str_replace(' ','|',preg_quote($rec)).')#i', '<strong>$1</strong>', $dnn['infos']);//On surligne les mots cles de la recherche
            }
    }
    else
    {
    	    echo $dnn['pseudo'];
    		echo $dnn['id'];
    		echo $dnn['nom'];
            echo $dnn['infos'];//On ne surligne pas
    }
     
    echo $requete
    ?></td>
            </tr>
    <?php
    }
    ?>
     
    <?php // ?>
    </table>
     
        <!-- end .content --></div>
      <!-- end .container --></div>
    </body>
    </html>

  17. #37
    Membre émérite
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Par défaut
    enleves tous les

    et

    pour la recherche, c'est plus lié à la structure de ta requête

  18. #38
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2010
    Messages : 86
    Par défaut
    Ok, maintenant le message en haut de page ( au dessus de instruction ) a disparu, mais j'aimerais, que dans l'affichage des résultats, il ne sorte que les entrées concernées.

    Par exemple, si j'effectue une recherche par nom, et que je cherche le nom 'luky'
    je voudrais ne voir que

    luky 0 bonomi VJ of tik&tek ||| luky0bonomiVJ of tik&tek
    et si j'avais eu plusieurs luky dans ma base de données, qu'il me les affiche tous.

  19. #39
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2010
    Messages : 86
    Par défaut
    autre petit souci, j'ai décidé de placer ce formulaire sur mon serveur, jai régler le code pour qu'il se connecte à ma bdd, mais un nouveau message d'erreur s'affiche...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /homez.353/tiktek/www/php form/lebontestou.php on line 237
    syl20.... jai une dernière fois besoin de ton aide ^^

  20. #40
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2010
    Messages : 86
    Par défaut
    c'est bon, je me suis auto corrigé, merci quand même

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. [MySQL] Optimisation de scripts PHP/MySQL
    Par DgG dans le forum PHP & Base de données
    Réponses: 368
    Dernier message: 20/11/2013, 18h59
  2. [MySQL] Problème de script PHP/MySQl V.2
    Par lukyVJ dans le forum PHP & Base de données
    Réponses: 17
    Dernier message: 20/12/2010, 13h06
  3. Réponses: 9
    Dernier message: 05/01/2006, 12h24
  4. Recherche Login Script PHP & MySQL
    Par whbh dans le forum SQL Procédural
    Réponses: 9
    Dernier message: 01/12/2005, 16h45
  5. [MySQL] [Script]Optimisation de scripts Php/MySQL (2)
    Par copy dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 27/08/2004, 08h33

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