Pb script php

Fermé
loulou - 5 févr. 2003 à 15:06
 loulou - 6 févr. 2003 à 15:45
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 !
A voir également:

17 réponses

comment faire pour que le formulaire de recherche et le résultat de recherche soient sur la meme page ?
0
Utilisateur anonyme
5 févr. 2003 à 15:18
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
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
Utilisateur anonyme
5 févr. 2003 à 16:21
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ben pour l'echo ça va mieux mais j'ai une erreur ligne 28 !
0
Utilisateur anonyme
6 févr. 2003 à 09:57
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
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
Utilisateur anonyme
6 févr. 2003 à 10:21
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
et à quoi ça sert ça '%$nomexp%' ?
comment faire pour classer les nom des expéditeurs par ordre alphabétique ?
0
Utilisateur anonyme
6 févr. 2003 à 11:11
En fait cela signifie que le champ nomexpediteur doit contenir tout ou partie de la chaine $nomexp.

Kalamit,
Je ponce donc j'essuie
0
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
wiwimagique Messages postés 481 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 20 avril 2006 108
6 févr. 2003 à 11:06
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
et ça va me mettre les nom par ordre alphabétique si je met ORDER BY ?
0
et les <> ça sert à quoi ?
0
Utilisateur anonyme
6 févr. 2003 à 11:23
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
quel bébete !!! lol
et pour remplir soit un champ ou soit un autre ou soit tous les deux comment il faut faire ?
0
Utilisateur anonyme
6 févr. 2003 à 11:44
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
mais en fait, je remplis dans un formulaire à part, un formulaire de recherche.
0