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 V.2


Sujet :

PHP & Base de données

  1. #1
    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 Problème de script PHP/MySQl V.2
    Bonjour à tous, voici mon souci :

    j'ai écris un code en PhP/Mysql que nous appellerons script, ce script sert à parcourir une BDD, et à retourner des données préalablement entrées dans un formulaire, le script marchait très bien, jusqu'à que j'upload une bdd de plus de 63 000 clients, et là dès que je lance ma recherche, un message d'erreur s'affiche, le contenu du message est :

    Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp\www\php form\lebontestou.php on line 237
    Le contenu de ma base donnée n'est fait que de fonctions type 'VARCHAR'.

    et lorsque ce message s'affiche, le formulaire reste en place, la page n'est donc pas noyée dans des messages d'erreurs php, je pense donc que c'est une erreur minime...

    Mais très déroutante.... À l'aide

  2. #2
    Membre chevronné Avatar de rikemSen
    Homme Profil pro
    Analyste Développeur Web - Fizzup.com
    Inscrit en
    Décembre 2007
    Messages
    387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste Développeur Web - Fizzup.com
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 387
    Par défaut
    Eventuellement, un message d'erreur sans code à montrer, ça pose problème donc si nous pouvions avoir ton code...

    Parce que d'après ton message d'erreur, ça serait un problème dans ton code, non dans ta base. (:

  3. #3
    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
    Merci de votre rapide intervention

    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
     <h1>Instructions</h1>
     <?php
    mysql_connect('localhost','root','') or die(mysql_error());;
    mysql_select_db('clients');
     
    //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 RAISON SOCIALE, DIRIGEANT,ADRESSE, CP, REGION, VILLE, TEL, TELECOPIE, EMAIL, EMAIL2, CODE_NAF, LIBELLE_NAF, RUBRIQUE_PROFESSIONNELLE FROM list 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 .= ' email 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 .= ' email LIKE "%'.$mot.'%" AND';
            }
            $req .= ' 1=1';
    }
    else
    {//ayant l'expression exacte dans leurs informations
            $req .= 'email LIKE "%'.$rec.'%"';
    }
    //Les utilisateur seront ranges par identifiant en ordre croissant
    $req .= ' order by username DESC';
    //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 <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>email</th>
                    <th>Résumé</th>
                    <th>&nbsp;</th>
            </tr>
    <?php
    //On affiche les resultats
    while($dnn = mysql_fetch_array($requete))
    {
    ?>
            <tr>
                    <td><?php echo $dnn['username']; ?></td>
                    <td><?php echo $dnn['id']; ?></td>
                    <td><?php echo $dnn['email']; ?></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['username'];
    		echo $dnn['id'];
    		echo $dnn['email'];
     
    }
     
    //echo $requete
    ?></td>
            </tr>
    <?php
    }
    ?>
     
    <?php // ?>
    </table>
    voici la partie qui me fait défaut

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Ta requête ne doit pas fonctionner, il faut debuguer de ce côté.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    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
    Heu SabotaG j'ai pas bien compris

  6. #6
    Membre chevronné Avatar de rikemSen
    Homme Profil pro
    Analyste Développeur Web - Fizzup.com
    Inscrit en
    Décembre 2007
    Messages
    387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste Développeur Web - Fizzup.com
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 387
    Par défaut
    au lieu de faire un "mysql_query($req)" fait un "echo $req" et test ta requete directement via le panel d'administration phpmyadmin

  7. #7
    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 à dire je remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete = mysql_query($req);
    par ?

    et dans PhPmyAdmin, où et commetn puis-je faire pour tester ma requête ..?

    merci d'avance

    luky

  8. #8
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Hello

    Ligne #73, tu devrais faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    if (DEBUG) echo "<pre>"; var_dump($query); echo "</pre>";
    if ($results = mysql_query($req))
    {
        // Code si la query à fonctionné
        // ...
    }
    else
    {
        // la query n'a pas marché, message d'erreur
    }
    et au début de ton script (dans un tag PHP cela va sans dire), ajouter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (!defined('DEBUG')) define('DEBUG', 1); // que tu mettra à 0 en prod
    Le débug permettra d'afficher la requête SQL que tu essaie d'envoyer, tu pourra alors la copier/coller dans la console de mysql ou dans phpmyadmin et voir ce qui coince. Dans phpmyadmin tu vas dans l'onglet SQL et tu colle ta requête intégrale.

    Si tu veux qu'on t'aide plus, on va avoir besoin des create table correspondants.

  9. #9
    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
    Re-bonjour, et excusez moi pour ma petite absence, j’étais en pause, donc, j’ai essayé les modifications que vous m'aviez conseillé, et ce qui en résulte, est cette notification :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Notice:  Undefined variable: query in C:\wamp\www\php form\lebontestou.php on line 216
     
    NULL
    ... je suis un peu perdu là..

  10. #10
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Désolé, je me suis trompé dans mon exemple, je corrige:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    if (DEBUG) echo "<pre>"; var_dump($req); echo "</pre>";
    if ($results = mysql_query($req))
    {
        // Code si la query à fonctionné
        // ...
    }
    else
    {
        // la query n'a pas marché, message d'erreur
    }
    Les vieilles habitudes ont la vie dure...

  11. #11
    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
    Voici ce que me retourne le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string(193) "SELECT * FROM liste ID, RAISON SOCIALE, DIRIGEANT ,ADRESSE ,CP ,REGION ,VILLE ,TEL ,TELECOPIE ,EMAIL ,EMAIL2 ,CODE_NAF ,LIBELLE_NAF ,RUBRIQUE_PROFESSIONNELLE LIKE "%PACA%" OR 1=1ORDER BY ID ASC"

  12. #12
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    En effet, ta requête est complètement fausse...

    Je n'arrive pas à mettre les éléments dans le bon ordre pour la débugger, on dirait que la clause FROM caractérise les noms de champs, il manque la clause WHERE, le LIKE et le OR s'annullent...

    D'après le code que tu as fourni dans ton premier post, c'est carrément impossible d'obtenir ce formattage, tu n'aurais pas changé le comportement de ton script par hasard ?

    Tu peux reposter ton code source mis à jour ?

  13. #13
    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 voici, je l'ai pas mal tripoté pour avoir un minimum d'erreurs... a coté, j'ai fait une autre page pour vérifier si la connexion avec mon serveur était bien configurée, et c'est le cas....

    voici mon code
    Code php : 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
    <?php if (!defined('DEBUG')) define('DEBUG', 1); // que tu mettra à 0 en prod ?>
     <?php
    $my = mysql_connect('localhost','root','') or die(mysql_error());;
    $my_db= mysql_select_db('clients');
     
    //On determine l'expression a rechercher
    if(isset($_GET['recherche']))
    {
            $rec = htmlentities($_GET['recherche']);
    }
    else
    {
            $rec = 'qui recherchez vous ?';
    }
    //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 * FROM liste 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 .= "'RAISON SOCIALE','DIRIGEANT' 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 .= 'RAISON SOCIALE LIKE "%'.$mot.'%" AND';
            }
            $req .= ' 1=1';
    }
    else
    {//ayant l'expression exacte dans leurs informations
     
            $req .= 'ID, RAISON SOCIALE, DIRIGEANT ,ADRESSE ,CP ,REGION ,VILLE ,TEL ,TELECOPIE ,EMAIL ,EMAIL2 ,CODE_NAF ,LIBELLE_NAF ,RUBRIQUE_PROFESSIONNELLE LIKE "%'.$rec.'%"';
    }
    //Les utilisateur seront ranges par identifiant en ordre croissant
    $req .= ' ORDER BY ID';
     
    $requete = mysql_query($req);
    //echo $requete;
     
     
    if (DEBUG) echo '<pre><em bgcolor="grey">'; var_dump($req); echo "</em></pre>";
    if ($results = mysql_query($req))
    {
        // Code si la query à fonctionné
        // ...
    }
    else
    {
        // la query n'a pas marché, message d'erreur
    }
     
    //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 <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>email</th>
                    <th>Résumé</th>
                    <th>&nbsp;</th>
            </tr>
    <?php
    //On affiche les resultats
    while($dnn = mysql_fetch_array($req))
     
    {
    ?>
            <tr>
                    <td><?php echo $dnn['ID']; ?></td>
                    <td><?php echo $dnn['RAISON SOCIALE']; ?></td>
                    <td><?php echo $dnn['EMAIL']; ?></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['RAISON SOCIALE']);//On surligne l'expression exacte
            }
            else
            {
                    echo preg_replace('#('.str_replace(' ','|',preg_quote($rec)).')#i', '<strong>$1</strong>', $dnn['RAISON SOCIALE']);//On surligne les mots cles de la recherche
            }
    }
    else
    {
    	    echo $dnn['ID'];
    		echo $dnn['RAISON SOCIALE'];
    		echo $dnn['EMAIL'];
     
     
    }
     
     
    //echo $requete
    ?></td>
            </tr>
    <?php
    }
    ?>
     
    <?php 
    // ?>
    </table>

    PS : je n'aurais pas le temps de regarder ça tout de suite.... sûrement à demain

  14. #14
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Ok bon, y'a du boulot :p

    Je vais déjà te donner deux ou trois trucs pour optimiser ton code et le rendre plus lisible.

    Utilise des switch:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    if($_GET['type']=='un')//Un des mots
            {
                    $type = 1;
            }
            elseif($_GET['type']=='tout')//Tout les mots
            {
                    $type = 2;
            }
            else//L'expression exacte
            {
                    $type = 3;
            }
    est mieux comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    switch ($_GET['type'])
    {
        case 'un' : $type=1; break;
        case 'tout' : $type=2; break;
        default: $type=3; break;
    }
    Utilise cette syntaxe quand tu mèles du HTML et du PHP (je déteste faire ça mais bon):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php if ($a == 1) : ?>
    <p>A vaut 1</p>
    <?php else: ?>
    <p>A ne vaut pas 1</p>
    <?php endif; ?>
    C'est plus facile à lire que des { } dont l'indentation se perds dans les nodes XHMLT. Voir: http://www.php.net/manual/fr/control...ive-syntax.php

    Autre astuce :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if(!isset($_GET['surligner']) or $_GET['surligner']!='true')
    {
            $surligner = false;
    }
    else
    {
            $surligner = true;
    }
    peut être intelligement remplacé par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $surligner = (!isset($_GET['surligner']) || $_GET['surligner']!='true') ? false: true;
    Fais également attention à la différence entre OR et || (le ou logique)
    n'est pas
    Je rappelle que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $req .= "'RAISON SOCIALE','DIRIGEANT' LIKE "%'.$mot.'%" OR";
    n'est pas un fragment de requête SQL valide

    Pour rappel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT 'value'; /* les quotes sont des valeurs en SQL */
    SELECT `field` FROM `database`.`table`; /* Les backquotes sont à utiliser pour les noms des champs */

  15. #15
    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
    Hello, alors avec le code que tu m'as donné:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    switch ($_GET['type'])
    {
        case 'un' : $type=1; break;
        case 'tout' : $type=2; break;
        default: $type=3; break;
    }
    Me retourne une erreur de syntaxe, je ne vois pas trop pourquoi, les accolades y sont.. les points virgules aussi.

    Réponse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Parse error: parse error in C:\wamp\www\php form\lebontestou.php on line 166
    m'en sortirai-je un jour !!! ^^

  16. #16
    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
    $req .= "'RAISON SOCIALE','DIRIGEANT' LIKE "%'.$mot.'%" OR";
    Déjà la structure n'est pas correct, même la couleur syntaxique montre que la chaîne est tronquée (regarde bien sur le %), d'où le parse error.

    A+.

  17. #17
    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 que la bonne syntaxe serait ?

    j'ai fait pas mal de modifications sur le script, ce qui a allégé le nombre d'erreurs affichées, mais j'ai toujours un souci vis a vis de

    je n'arrive pas a trouver la bonne syntaxe, malgrès mes recherches...

  18. #18
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Je te fais un exemple de requete:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $query = "SELECT `field` FROM `table` WHERE `other_field` LIKE '%{$mot}'";
    Les doubles quotes pour la chaine sont importantes car l'interpretation des variables dans les chaines de caractères en php ne se fait qu'a cette condition.

    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $a = "hello";
    echo "$a"; // affiche 'hello'
    echo '$a'; // affiche '$a'

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
    Par lukyVJ dans le forum PHP & Base de données
    Réponses: 45
    Dernier message: 10/12/2010, 19h02
  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