Pb script php

loulou -  
 loulou -
salut,

j'ai essayer d'adapter le sript qui est proposé sur le site en ce qui concerne le moteur de recherche en php. Le seul pb c'est que j'ai une erreur ( et surement d'autres apres !!!) : Parse error: parse error, expecting `','' or `';'' in c:\program files\easyphp\www\suivi courrier\recherche.php on line 13

mais cette ligne là n'a pas de "," ou ";" vue que c'est celle là :
if (($nomexp == "") || ($nomexp == "%") || ($societe == "") || ($societe == "%")){
comment est ce que ça se fait? j'ai pourtant suivi ce qui était écrit sur le site !

17 réponses

  1. loulou
     
    comment faire pour que le formulaire de recherche et le résultat de recherche soient sur la meme page ?
    0
  2. kalamit
     
    Une question à la fois... :-)
    Pourrais tu me donner la ligne 12, stp ?

    comment faire pour que le formulaire de recherche et le résultat de recherche soient sur la meme page ?

    Ca dépend de comment est fait ton code !

    Kalamit,
    Je ponce donc j'essuie
    0
  3. loulou
     
    et ben je peux meme te donner tout mon script :
    <?php
    //cnx à la bd et séléction de la bd
    $bd = mysql_connect('localhost', 'login','mot de passe') or die ("erreur de connexion");
    mysql_select_db(courrier, $bd) or die("erreur de connexion à la base");

    echo "
    <html>
    <head>
    <title>Résultat de la recherche</title></head>

    <body bgcolor="#FFFFFF" text="#000000" background="Papbis.gif">";

    if (($nomexp == "") || ($nomexp == "%") || ($societe == "") || ($societe == "%")){
    // si le nom ou la societe de l'expéditeur n'ont pas été saisis, le script demande à l'utilisateur de bien vouloir préciser un de ces deux champs
    echo "
    Veuillez entrer le nom ou la société de l'expéditeur !
    <p>";
    }
    else {

    // on sélectionne les enregistrement contenant le nom ou la société de l'expéditeur
    $query = "SELECT distinct count(societe) FROM expéditeur WHERE nomexpediteur = \"%$nomexp%\" OR steexpediteur = \"%$societe%\";
    $result = mysql_query($query);
    $row = mysql_fetch_row($result);
    $nombre = ^$row[0];

    // si aucun enregistrement n'est retourné, on affiche un msg adéquat
    if ($nombre == "0") {
    echo " <h2>Aucun résultat ne correspond à votre recherche</h2>
    <p>";
    }

    // sinon, on affiche le nombre d'enregistrements correspondant et les résultats eux-memes
    else {
    $query = "SELECT distinct nomexpediteur, steexpediteur FROM expediteur WHERE nomexpediteur = \"%$nomexp%"\ OR steexpediteur = \"%societe%"\ ORDER BY nom ASC";
    $result = mysql_query($query);

    // si un seul enregistrement est trouvé, on affiche un meessage au singulier
    if ($nombre == "1") {
    echo "
    <a name=\"#resultat\"><h2>Résultat : un article trouvé</h2></a>
    <p>";
    }

    //dans le cas contraire, le message est au pluriel
    else {
    echo " <a name=\"#resultat\"><h2>Résultat : $nombre articles trouvés</h2></a>
    <p>";
    }
    }
    }
    // on ferme la bd
    mysql_close();
    ?>
    </body>
    </html>
    0
  4. kalamit
     
    Ah ben oui, t'as un soucis !
    C'est ca qui va pas en fait :

    echo "
    <html>
    <head>
    <title>Résultat de la recherche</title></head>

    <body bgcolor=\"#FFFFFF\" text=\"#000000\" background=\"Papbis.gif\">";

    Maintenant ca devrait aller mieux... :-)

    Kalamit,
    Je ponce donc j'essuie
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. loulou
     
    ben pour l'echo ça va mieux mais j'ai une erreur ligne 28 !
    0
  7. kalamit
     
    Ca viendrait pas de ca : $nombre = ^$row[0]; par hasard ?
    C'est quoi l'erreur ligne 28 ? C'est laquelle la ligne 28 ?

    Kalamit,
    Je ponce donc j'essuie
    0
  8. loulou
     
    désolé, j'ai oublié de dire que j'ai changé cette ligne ! je me suis apperçu de cette faute apres avoir poster mon msg !!! mais j'ai réessayer et ça me met tjs le meme msg d'erreur (celui qui est au dessus !)
    la ligne 28 c'est celle ci : if ($nombre == "0") {
    0
  9. kalamit
     
    OK.
    C'est cette ligne qui déconne: $query = "SELECT distinct count(societe) FROM expéditeur WHERE nomexpediteur = '%$nomexp%' OR steexpediteur = '%$societe%' ";

    Ca devrait fonctionner comme ca. Tu n'avais pas refermer une double quote. J'ai remplacé les double quote dans la requete par des simple (plus propre).
    Autre chose, il vaut mieux eviter les accents dans le nom des tables...
    A+ !

    Kalamit,
    Je ponce donc j'essuie
    0
  10. loulou
     
    et à quoi ça sert ça '%$nomexp%' ?
    comment faire pour classer les nom des expéditeurs par ordre alphabétique ?
    0
    1. kalamit
       
      En fait cela signifie que le champ nomexpediteur doit contenir tout ou partie de la chaine $nomexp.

      Kalamit,
      Je ponce donc j'essuie
      0
  11. loulou
     
    ah merci ça marche !!! :-))
    par contre je voudrais que soit le champs de la societe soit le champ du nom soient remplis, ou alors les deux... mais apparement ce script ne le fait pas... est ce qu tu sais comment faire ?
    0
  12. wiwimagique Messages postés 481 Statut Membre 108
     
    SELECT distinct count(societe) FROM expéditeur WHERE nomexpediteur <> '' OR steexpediteur <> ''

    gaffe, ce sont 2 quote simple a chaque fois.
    si ca ne marche pas, remplace <> '' par = NULL

    pour classer, ajoute un:
    order by nom_du_champ
    a la fin de la requete
    et order by nom_du_champ DESC
    si l'ordre est inverse
    0
  13. loulou
     
    et ça va me mettre les nom par ordre alphabétique si je met ORDER BY ?
    0
  14. kalamit
     
    et les <> ça sert à quoi ?

    <> ca veut dire "different".

    $query = "SELECT distinct nomexpediteur, steexpediteur FROM expediteur WHERE nomexpediteur = \"%$nomexp%"\ OR steexpediteur = \"%societe%"\ ORDER BY nom ASC";

    et ça va me mettre les nom par ordre alphabétique si je met ORDER BY ?

    Ca y est deja ! Tu as deja un Order by dans ta requete.
    La premiere requete fait un compte, la seconde selectionne les nom.

    A+ !

    Kalamit,
    Je ponce donc j'essuie
    0
  15. loulou
     
    quel bébete !!! lol
    et pour remplir soit un champ ou soit un autre ou soit tous les deux comment il faut faire ?
    0
  16. kalamit
     
    Remplir ?
    Avec le bout de code que tu m'as donné, je ne vois nulle part, l'affichage des résultat. Tu ne fais qu'afficher le nombre d'articles trouvés, c'est ca ?

    Kalamit,
    Je ponce donc j'essuie
    0
  17. loulou
     
    mais en fait, je remplis dans un formulaire à part, un formulaire de recherche.
    0