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 :

besoin d'aide sur fonctions WHERE LIKE [Débutant(e)] [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre actif

    Homme Profil pro
    Webmaster, Réalisateur Vidéo, Chef de projet Web documentaire
    Inscrit en
    Juillet 2006
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webmaster, Réalisateur Vidéo, Chef de projet Web documentaire
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2006
    Messages : 404
    Points : 241
    Points
    241
    Par défaut besoin d'aide sur fonctions WHERE LIKE
    bonjour
    j'essaye doucement de comprendre comment marche le PHP avec un bouquin, je veux faire un moteur de recherche dans un tableau mais j'ai une erreur de syntaxe me dit mysql, je ne trouve pas ou, merci pour l'aide.
    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
    <?php
     
    include("variables.inc.php");
     
    $liendb=mysql_connect ($bddserver, $bddlogin, $bddpassword)
    or die("Connexion:".mysql_error());
    mysql_select_db ($bdd)or die("Select db: ".mysql_error());
     
    ?>
    <p align='left'><h1>:: début</p></h1>
    <form action="2.php" method="GET">
    <center><input type = "text" name="motclef"
    value="<?php echo $_REQUEST['motclef'];?>"/>
    <input type="submit" value="rechercher"/>
    </form>
    <br><br><br>
    <table width=90% align=center border=5>
    <tr>
    <td class='intitule'>titre</td>
    <td class= 'intitule'>real</td>
    <td class='intitule'>annee</td>
    <td class='intituleresum'>
    <center>resum&eacute;</center></td>
    <?php
    $clause='';
    if (isset($_REQUEST['motclef'])){
    	$clause.="WHERE titre LIKE".$_REQUEST['motclef']."'";
    }
    $sql = "SELECT*FROM film".$clause;
    $resultat =mysql_query ($sql)or die("Query: ".mysql_error());
     
     
    while ($film =mysql_fetch_array ($resultat))
    {
    $id= $film['num'];
    $titre= $film ['titre'];
    $rea= $film ['realisateur'];
    $an= $film ['annee'];
    $resum= $film ['resum'];
    echo "<tr>";
     
    echo "<td><a href='aptitre.php?id=$id'>".$titre."</a></td>";
    echo "<td><a href='apbase.php?id=$id&rea=$rea'>".$rea."</a></td>";
    echo '<td>'.$an.'</td>';
    echo '<td>'.$resum.'</td>';
     
     
     
    }
    echo "</table>";
     
     
    mysql_close ($liendb);
     
     
    echo "</body>";
    echo "</html>";
    ?>
    L'eereur rtournée est
    Query: 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 'LIKE''' at line 1

  2. #2
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    affiche la requete comme dans la Regle n°2, tu y verras plus clair. Je crois qu'il manque un espace

  3. #3
    Membre éclairé
    Avatar de gerald2545
    Profil pro
    Inscrit en
    Février 2003
    Messages
    744
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 744
    Points : 773
    Points
    773
    Par défaut
    il manque en effet un espace et un simple quote après LIKE
    il manque un espace avant WHERE

  4. #4
    Membre actif

    Homme Profil pro
    Webmaster, Réalisateur Vidéo, Chef de projet Web documentaire
    Inscrit en
    Juillet 2006
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webmaster, Réalisateur Vidéo, Chef de projet Web documentaire
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2006
    Messages : 404
    Points : 241
    Points
    241
    Par défaut encore un souci
    merci pour l'erreur de syntaxe ,j'ai du mal avec les quote, double quote et espace mais, avec la correction apporté, je n'ai plus l'erreur de syntaxe mais le tableau reste vide même si il n'y a rien dans la case recherche.

    si j'ai bien compris Le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isset($_REQUEST['motclef']))
    permet d'affecter la variable $clause seulement si le champ de recherche contient quelque chose.

    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $sql = "SELECT*FROM film".$clause;
    $resultat =mysql_query ($sql)or die("Query: ".mysql_error());
    while ($film =mysql_fetch_array ($resultat))
    permet d'afficher les résultats
    mais la le tableau reste désespérément vide
    si je demande un echo $clause la variable affiché contient ce qu'il y a entre les guillemets a savoir: WHERE titre LIKE ''
    que se passe t-il

    code de toute la page
    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
    <?php
     
    include("variables.inc.php");
     
    $liendb=mysql_connect ($bddserver, $bddlogin, $bddpassword)
    or die("Connexion:".mysql_error());
    mysql_select_db ($bdd)or die("Select db: ".mysql_error());
     
    ?>
    <p align='left'><h1>:: début</p></h1>
    <form action="2.php" method="GET">
    <center><input type = "text" name="motclef"
    value="<?php echo $_REQUEST['motclef'];?>"/>
    <input type="submit" value="rechercher"/>
    </form>
    <br><br><br>
    <table width=90% align=center border=5>
    <tr>
    <td class='intitule'>titre</td>
    <td class= 'intitule'>real</td>
    <td class='intitule'>annee</td>
    <td class='intituleresum'>
    <center>resum&eacute;</center></td>
    <?php
    $clause='';
    if (isset($_REQUEST['motclef'])){
    	$clause.=" WHERE titre LIKE '".$_REQUEST['motclef']."'";
    }
    $sql = "SELECT*FROM film".$clause;
    $resultat =mysql_query ($sql)or die("Query: ".mysql_error());
     
     
    while ($film =mysql_fetch_array ($resultat))
    {
    $id= $film['num'];
    $titre= $film ['titre'];
    $rea= $film ['realisateur'];
    $an= $film ['annee'];
    $resum= $film ['resum'];
    echo "<tr>";
     
    echo "<td><a href='aptitre.php?id=$id'>".$titre."</a></td>";
    echo "<td><a href='apbase.php?id=$id&rea=$rea'>".$rea."</a></td>";
    echo '<td>'.$an.'</td>';
    echo '<td>'.$resum.'</td>';
     
     
     
    }
    echo "</table>";
     
     
    mysql_close ($liendb);
     
     
    echo "</body>";
    echo "</html>";
    ?>

  5. #5
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    ca serait mieux

    je te conseille aussi d'utiliser $_GET et $_POST au lieu de $_REQUEST

  6. #6
    Membre éclairé
    Avatar de gerald2545
    Profil pro
    Inscrit en
    Février 2003
    Messages
    744
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 744
    Points : 773
    Points
    773
    Par défaut
    je ne suis pas un pro de php mais je dirais que isset($_REQUEST['motclef']) te renvoie true,
    cette variable existant. Ne faut-il pas tester sa valeur plutot?, style
    if ($_REQUEST['motclef'] == "")

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 85
    Points : 77
    Points
    77
    Par défaut
    Bonjour,
    Pour completer ce que dis Gerald isset test si la valeur existe...mais pas si elle est vide...pour cela , il y a empty

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isset($_REQUEST['motclef']) && !empty($_REQUEST['motclef'])) {
    Traduction : Si REQ existe et n'est pas vide alors...

    Bonne chance...

  8. #8
    Membre actif

    Homme Profil pro
    Webmaster, Réalisateur Vidéo, Chef de projet Web documentaire
    Inscrit en
    Juillet 2006
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webmaster, Réalisateur Vidéo, Chef de projet Web documentaire
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2006
    Messages : 404
    Points : 241
    Points
    241
    Par défaut
    OK me'rci ça marche avec les %

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

Discussions similaires

  1. [XL-2010] Besoins d'aide sur fonctions et tableaux
    Par Vishnou dans le forum Excel
    Réponses: 2
    Dernier message: 25/08/2010, 15h23
  2. besoin d'aide sur fonction curseur et procedure
    Par abdel54 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 26/11/2005, 18h05
  3. Besoin d'aide sur une fonction
    Par PrinceMaster77 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/08/2005, 17h40
  4. Besoin d'aide sur les fonction d'interbase
    Par BOUBOU81 dans le forum InterBase
    Réponses: 2
    Dernier message: 05/11/2004, 10h00

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