Aller au contenu

arnö

Membre
  • Compteur de contenus

    4
  • Inscrit(e) le

  • Dernière visite

Réputation sur la communauté

0 Neutre
  1. Salut Leonick, C'est exactement ce que je faisais depuis le début (afficher la requête sur ma page de résultat), et c'est ça qui me chiffonais le plus : la requête copiée et collée dans PhpMyAdmin retournais des résultats... Mais je viens de trouver mon erreur, grace à toi : Je stocke des mise à jour de stock dans la table expédition, et pour les distinguer, je leur donne comme nom "<b>MAJ STOCK</b>". Donc la requête est du type $query = 'SELECT * FROM expe WHERE nom_expe!="<b>MAJ STOCK</b>" AND dateenvoi between "'.$debut_mois.'" AND "'.$demain.'"'; elle ne me retourne pas de résultat (et c'est normal !!!) lorsque j'affiche cette requête, les balise html sont interprétés et celà donne SELECT * FROM expe WHERE nom_expe!="MAJ STOCK" AND dateenvoi between "2007-04-01" AND "2007-04-06" qui elle me retourne des résultats... Bref, une belle boulette de débutant voilà voilà merci à vous...
  2. Vincent, j'ai essayé plusieurs truc avec le codage utf8 mais sans succès : -j'encode la requête en UTF8 avant de l'exécuter, ce qui donne SELECT * FROM expe WHERE 1 AND nom_expe!="MAJ STOCK" AND traitement_imprim LIKE "enlevé%" AND dateenvoi between "2007-04-01" AND "2007-04-04" ORDER BY dateenvoi DESC mais ça ne fonctionne pas (en fait, celà ne fonctionne plus non plus pour la requête qui fonctionnais au début...) -j'ai rajouté à ma séquence de connexion à la base : mysql_query("SET NAMES 'utf8'"); là non plus pas de résultat si ce n'est que la coloration des lignes du tableau de résultats en fonction du traitement_im ne fonctionne plus... - j'ai ensuite essayé de changer l'encodage de mon champ dans la base : il s'agit d'un champ ENUM avec trois valeurs, en latin_swedish_ci. Impossible de passer en uf8... lorsque je change, et que je valide, ça reviens invariablement sur latin_swedish_ci. D'autres idées pour me mettre sur la piste ?
  3. Merci à vous deux pour vos réponses, @ Georges : j'ai essayé d'encadrer les noms de champs et de la table avec `, mais celà ne change rien... @ Vincent : J'avais pensé à ça aussi, mais il me semblait que puisque "enlevé" fonctionne, celà ne pouvait pas venir d'un problème d'accent et d'encodage... mais je vais creuser Merci en tout cas de votre aide
  4. Bonjour, Je me trouve façe à un problème qui me laisse perplexe : J'ai développé une petite application qui permet à des clients de faire des demandes d'expédition à partir d'une interface personnalisée. Ces demandes sont stockées et affichées dans une administration. Une page de cette administration me permet d'afficher les résultats en fonction de critères de tri (grace à des déroulants). Tout fonctionne très bien,sauf pour un champ ou ça fonctionne... à moitié. Les variables de tri sont passées en $_GET et la requête est construite en fonction de ces variables : if ($_GET['raz']=='1'){ $query = 'SELECT * FROM expe WHERE nom_expe!="<b>MAJ STOCK</b>" AND dateenvoi between "'.$debut_mois.'" AND "'.$demain.'"'; }else{ $query = 'SELECT * FROM expe WHERE 1 AND nom_expe!="<b>MAJ STOCK</b>"'; $tab_ch=array('produits','modexpe','dept', 'transporteur','traitement','traitement_im','traitement_livraison'); foreach($tab_ch as $k=>$v) { if($_GET[$v]!=(''||'0')){ $query.=' AND '.$v.' LIKE "'.$_GET[$v].'%"'; } } if ($_GET['sansdate']!='sansdate') { if (($_GET['datedebut']=='Clique ici')||($_GET['datedebut']=='')){ $query.= ' AND dateenvoi between "'.$debut_mois.'"'; }else{ $query.= ' AND dateenvoi between "'.$_GET['datedebut'].'"'; } if (($_GET['datefin']=='Clique ici')||($_GET['datefin']=='')){ $query.= ' AND "'.$demain.'"'; }else{ $query.= ' AND "'.$_GET['datefin'].'"'; } if ($_GET['tri']!=''){ $query.= ' ORDER BY '.$_GET['tri']; }else{ $query.= ' ORDER BY dateenvoi DESC'; } }else{ if ($_GET['tri']!=''){ $query.= ' ORDER BY '.$_GET['tri']; }else{ $query.= ' ORDER BY dateenvoi DESC'; } } } Le problème apparait avec la variable traitement_im (qui peut avoir trois état : "à traiter", "traité", "enlevé"): Lorsque la requête (que j'affiche après l'avoir construite) est : SELECT * FROM expe WHERE 1 AND nom_expe!="MAJ STOCK" AND traitement_imprim LIKE "enlevé%" ORDER BY dateenvoi DESC le résultats sont bien retournés, mais... lorsque la requête est SELECT * FROM expe WHERE 1 AND nom_expe!="MAJ STOCK" AND traitement_imprim LIKE "traité%" ORDER BY dateenvoi DESC ou SELECT * FROM expe WHERE 1 AND nom_expe!="MAJ STOCK" AND traitement_imprim LIKE "à traiter%" ORDER BY dateenvoi DESC aucun résultats ne sont retournés, alors qu'ils devraient y en avoir ! Les deux requêtes passées directement dans phpMyAdmin retourne bien des résultats... J'avoue que je n'y comprend rien... Merci d'avance de me donner votre avis
×
×
  • Créer...