Requête au résultat variable

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Requête au résultat variable

par Victor BRITO » 29 janv. 2007, 19:06

Salut!

Finalement, en recourant à la fonction utf8_decode, tout rentre dans l'ordre. 8-)

par mojorisin » 20 janv. 2007, 08:38

Il faut que tu envoie la requete au serveur :
$query = "SET NAMES 'utf8'";

Ensuite tu envoies tes requetes de sélections
$query= "SELECT champ FROM table ...";

par Victor BRITO » 19 janv. 2007, 11:37

La page et la base de données sont en UTF-8.

Ta solution génère une erreur du type "supplied argument is not a valid MySQL result resource...".

par mojorisin » 19 janv. 2007, 08:58

Problème d'encodage avec utf8.
1 / Vérifie le charset de ta page web (qu'il soit bien en utf8)
2/ Avant d'executer ta requete, execute la requete ci-dessous :
SET NAMES UTF8

par Victor BRITO » 18 janv. 2007, 18:03

Un GROUP BY n'est d'aucune aide.

Récapitulatif

Si j'effectue "fichiers.nom LIKE '%Cat%à%dog%'" seulement, il n'y a aucun souci.

Si j'effectue "fiches.nom LIKE '%Cat%à%dog%' OR fiches.url LIKE '%Cat%à%dog%'", 18 résultats sont affichés (résultats identiques) alors que je m'attends à un seul (aussi bien sur PHPMyAdmin que sur le site).

Si j'effectue "fiches.nom OR fiches.url LIKE '%Cat%à%dog%'", 1 résultat pour PHPMyAdmin et aucun pour le site.

par momox » 18 janv. 2007, 17:58

Juste comme ca, vérifie que les id des résultats ne soient pas les mêmes, auquel cas tu peux faire un GROUP BY, bien que cela ne résolve pas la chose complétement ;)
@+

par Victor BRITO » 18 janv. 2007, 17:57

Les parenthèses ne résolvent rien.

par Ajoloca » 18 janv. 2007, 17:53

Surement que tu n'as tenu compte de la priorité des opérateurs
essaie avec des parenthèses (a = c ou b = c) et d = e

par Victor BRITO » 18 janv. 2007, 17:50

Justement, j'ai essayé "fichiers.nom LIKE '...' OR fichiers.url LIKE '...'" et ça donne un résultat inattendu pour le nombre.

par Ajoloca » 18 janv. 2007, 17:48

Je ne te parle pas de syntaxe dans le sens erreur, mais résultats.

Si ce que tu souhaites c'est 'a' ou 'b' = 'c' tu devras l'écrire a = c ou b = c

par Victor BRITO » 18 janv. 2007, 17:44

La syntaxe n'est pas en cause (sinon, PHPMyAdmin m'aurait envoyé une erreur MySQL). D'ailleurs, ta solution proposée provoque une drôle de boucle (18 résultats pour 1 seul attendu).

par Ajoloca » 18 janv. 2007, 17:32

Bonjour,

Tu est sur de cette syntaxe

Code : Tout sélectionner

fiches.nom OR fiches.url LIKE '%Cat%à%dog%'
ça ne serait pas plus tôt

Code : Tout sélectionner

fiches.nom LIKE '%Cat%à%dog%' OR fiches.url LIKE '%Cat%à%dog%'

Requête au résultat variable

par Victor BRITO » 18 janv. 2007, 17:22

Salut à tous!

Pour un projet perso, je mets au point une page de recherche. Le traitement PHP, en soi, ne pose pas de souci.

En revanche, quand j'exécute la requête suivante:

Code : Tout sélectionner

SELECT fiches.description_resume AS description_resume, fiches.nom AS fiches_nom, fiches.url AS fiches_url, rubriques.nom AS rubriques_nom, rubriques.url AS rubriques_url, menus.nom AS menus_nom, menus.url AS menus_url FROM fiches, rubriques, menus WHERE fiches.nom OR fiches.url LIKE '%Cat%à%dog%' AND id_rubrique=rubriques.id AND id_menu=menus.id
PHPMyAdmin me retourne un résultat, comme prévu, ce ne qui n'est pas le cas lorsque j'effectue la recherche via la page du site (aucun résultat). :shock:

Soit dit en passant, le site et la base de données sont codés en UTF-8.

Si la recherche porte sur 'Cat a dog' (sans accent) ou sur 'Enseigne', le site et PHPMyAdmin donnent un résultat identique.

D'où peut venir l'anomalie? :-k

P.S.: Qui a eu la fâcheuse idée de mettre un "overflow: scroll", au lieu d'un "overflow: auto"? Le code tapé sur une ligne devient invisible sous IE 7 (j'ignore ce qu'il en est chez IE <= 6 et chez FF et Opera). :roll: