Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1013 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  pb lors d'une recherche avec champs texte

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

pb lors d'une recherche avec champs texte

n°1156327
Mac_Fly37
Posté le 21-07-2005 à 16:59:35  profilanswer
 

voilà ayant un peu de temps aujourd'hui. J'ai voulu regarder un peu les recherche sql effectuées par une saisie dans un champ texte
voici mon code:
 
<?php
mysql_connect("localhost", "root" );
mysql_select_db("catal" );
$reponse = mysql_query("SELECT * FROM catalogue WHERE Catégorie='$_POST[Catégorie]'" );
 
 
$cpt = 0 ;
while ( $donnees = mysql_fetch_array($reponse) ) {
 
$reference=$donnees['Reférence'];
 
?>
<TR Height=100>
<TD ALIGN=CENTER width=75><?php echo $donnees['Reférence']; ?> </TD>
<TD ALIGN=CENTER width=75><?php echo $donnees['Catégorie']; ?> </TD>
<TD ALIGN=CENTER width=75><?php echo $donnees['Marque']; ?> </TD>
<TD ALIGN=CENTER width=75><?php echo $donnees['Référence Marque']; ?> </TD>
<TD ALIGN=CENTER width=75><?php echo $donnees['Désignation']; ?> </TD>
<TD ALIGN=CENTER width=75><?php echo '<img src="'.$donnees['photo'].'">'; ?> </TD>
<TD ALIGN=CENTER width=75><?php echo' <A HREF="commande3.php?reference='.$reference.'">commander</A>'; ?> </TD>
 
<?php
$cpt++ ; // On compte le nombre de lignes
}
 
if ( $cpt == 0 ) { echo "il n'y a aucune réponse à votre demande"; }
 
 
mysql_close();
?>
 
 
après j'ai voulu faire une recherche avec la possibilité d'avoir un deuxième critère, j'ai donc remplacé : $reponse = mysql_query("SELECT * FROM catalogue WHERE Catégorie='$_POST[Catégorie]'" );
 
par : $reponse = mysql_query("SELECT * FROM catalogue WHERE Catégorie='$_POST[Catégorie]'and Marque='$_POST[Marque]'" );
 
ça marche plutôt bien, evidement j'ai quand même un pb sinon je n'aurai pas l'occasion d'écrire maintenant  :D  
tout d'abord si j'écris rien dans le champ j'aimerai pouvoir le détecter pour annoncer qu'il faut remplir le champ ça j'ai trouvé, j'ai rajouté juste avant :
if ( $cpt == 0 ) { echo "il n'y a aucune réponse à votre demande"; }
j'ai mis ça c'est évidemment la ligne 53 de mon code!:
if (empty($_POST[Catégorie])) { echo"veuillez entrez une référence";}
 
j'obtiens alors cela quand je ne rempli pas le champ:
Notice: Use of undefined constant Catégorie - assumed 'Catégorie' in c:\documents and settings\alb\mes documents\testsphp\essaiforumfinal.php on line 53
veuillez entrez une référenceil n'y a aucune réponse à votre demande
 
comment faire disparapitre ce vilain message ?
 
 
 
reste mon deuxième problème la recherche multicritère je sais pas si ça se dit!
si on rentre correctement les deux critèrs ça marche impek mais si on en rentre qu'un sur deux comment faire ! Dans le même esprit toujours aussi fin j'ai tenté un
truc du genre  
$reponse = mysql_query("SELECT * FROM catalogue WHERE  Catégorie='$_POST[Catégorie]' and if (empty($_POST[Marque])) {Marque='$_POST[Marque]'" ) ;
 
le message d'insulte est le suivant Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\documents and settings\alb\mes documents\testsphp\essaiforum4final.php on line 35
 
Notice: Use of undefined constant Catégorie - assumed 'Catégorie' in c:\documents and settings\alb\mes documents\stage\testsphp\essaiforum4final.php on line 53
il n'y a aucune réponse à votre demande (ça c'est la même on connait)
Merci d'avance  
 
edit: le script final
 
<CENTER> <TABLE BORDER=2>
 
 
 
<?php
mysql_connect("localhost", "root" );
mysql_select_db("catal" );
$reponse = mysql_query("SELECT * FROM catalogue WHERE  Catégorie='$_POST[Catégorie]' and if (empty($_POST[Marque])) {Marque='$_POST[Marque]'}" ) ;
 
 
$cpt = 0 ;
while ( $donnees = mysql_fetch_array($reponse) ) {   //ici première erreur ligne 35
 
$reference=$donnees['Reférence'];
 
?>
<TR Height=100>
<TD ALIGN=CENTER width=75><?php echo $donnees['Reférence']; ?> </TD>
<TD ALIGN=CENTER width=75><?php echo $donnees['Catégorie']; ?> </TD>
<TD ALIGN=CENTER width=75><?php echo $donnees['Marque']; ?> </TD>
<TD ALIGN=CENTER width=75><?php echo $donnees['Référence Marque']; ?> </TD>
<TD ALIGN=CENTER width=75><?php echo $donnees['Désignation']; ?> </TD>
<TD ALIGN=CENTER width=75><?php echo '<img src="'.$donnees['photo'].'">'; ?> </TD>
<TD ALIGN=CENTER width=75><?php echo' <A HREF="commande3.php?reference='.$reference.'">commander</A>'; ?> </TD>
 
<?php
$cpt++ ; // On compte le nombre de lignes
}
 
if (empty($_POST[Catégorie])) { echo"veuillez entrez une référence";}   //ici ligne 53 l'erreur NOTICE
 
if ( $cpt == 0 ) { echo "il n'y a aucune réponse à votre demande"; }
 
if ($cpt!=0) { echo "veuillez retenir la référence (colone de gauche) pour commander à la page suivante";}
 
mysql_close();
?>
 
</TABLE> </CENTER>


Message édité par Mac_Fly37 le 21-07-2005 à 17:16:17
mood
Publicité
Posté le 21-07-2005 à 16:59:35  profilanswer
 

n°1156334
FlorentG
Unité de Masse
Posté le 21-07-2005 à 17:01:38  profilanswer
 

S'il en manque un sur deux, bah suffit de faire une requête avec un seul.
 
Hésite pas à réfléchir un peu plus sur le problème :D Et à apprendre PHP, parce que les messages d'erreurs sont vraiment bidons ;)

n°1156383
Mac_Fly37
Posté le 21-07-2005 à 17:49:08  profilanswer
 

merci tu as raison dès fois faut mieux réfléchir deux secondes avant de poser sa question. C'est bon j'ai trouvé.
Sinon pour le fait d'apprendre php c'est effectivement ce que je suis en train de faire quand j'ai un peu de temps libre dans mon stage ;)


Message édité par Mac_Fly37 le 21-07-2005 à 17:49:17

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  pb lors d'une recherche avec champs texte

 

Sujets relatifs
recherche un scriptrecherche un script de recuperage
Meilleur CMS au niveau des fonctions de recherche[Access] Requête à partir d'une zone de texte (Résolu)
Recherche d'une ligne d'écriture ...recherche d'un script
rendre un champs <option> non selectionlable d'un <select>Faire une recherche avec un Batch
Ecrire de gros fichier texte en C++ purMAJ d'un fichier texte
Plus de sujets relatifs à : pb lors d'une recherche avec champs texte


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR