Bonjour,
Je ne trouve pas la solution pour sélectionner exactement une donnée.
Je m'explique.
Dans une table j'ai un champ 'email'
je fais une recherche à l'aide d'un formulaire
$colname_je_mail = "1";
if (isset($_POST['email'])) {
$colname_je_mail = (get_magic_quotes_gpc()) ? $_POST['email'] :
addslashes($_POST['email']);
}
mysql_select_db($database, $LienBase);
$query_je_mail = sprintf("SELECT * FROM ma_table WHERE email = '%s'",
$colname_je_mail);
$je_mail = mysql_query($query_je_mail, $LienBase) or die(mysql_error());
$row_je_mail = mysql_fetch_assoc($je_mail);
$totalRows_je_mail = mysql_num_rows($je_mail);
cela fonctionne "presque" toujours !!!
$totalRows_je_mail = 1 ou plus si c'est exact.
sauf pour certaines adresses du genre jmb696bmj@hotmail.com ou autre de ce
genre là ... exemple : da66da@toto.com
en faisant des tests avec phpmyadmin, il faut utiliser :
WHERE email LIKE '%jmb696bmj@hotmail%'
pour que l'enregistrement soit trouvé !
je ne comprends pas pourquoi.
Je ne trouve pas d'explications dans les manuels. Pour moi LIKE ne donne pas
le résultat exact comme opérateur de comparaison. Mais plutôt tous les
résultats qui contiennent cette chaine de caractère. Or je cherche une
adresse et une seule !
Si quelqu'un peut éclairer ma lanterne, je l'en remercie d'avance
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
CrazyCat
AAA wrote:
je ne comprends pas pourquoi. Je ne trouve pas d'explications dans les manuels. Pour moi LIKE ne donne pas le résultat exact comme opérateur de comparaison. Mais plutôt tous les résultats qui contiennent cette chaine de caractère. Or je cherche une adresse et une seule ! Si quelqu'un peut éclairer ma lanterne, je l'en remercie d'avance
Tout d'abord, ton code est, amha, bien trop compliqué:
mysql_select_db($database, $LienBase); if (isset($_POST['email']) && ($_POST['email'] != "")) { $query_je_mail = "SELECT COUNT(*) AS nb_rec FROM ma_table WHERE email='".$_POST['email']."'"; $je_mail = mysql_query($query_je_mail, $LienBase) or die(mysql_error()); list($totalRows_je_mail) = mysql_fetch_row($je_mail); } else { $totalRows_je_mail = 0; }
A priori, plus simple et fonctionne (du moins chez moi)
-- Découvrez Original War: http://www.original-war.org Humour: http://www.chatfou.com Tchattez en liberté: http://www.c-p-f.net
AAA wrote:
je ne comprends pas pourquoi.
Je ne trouve pas d'explications dans les manuels. Pour moi LIKE ne donne pas
le résultat exact comme opérateur de comparaison. Mais plutôt tous les
résultats qui contiennent cette chaine de caractère. Or je cherche une
adresse et une seule !
Si quelqu'un peut éclairer ma lanterne, je l'en remercie d'avance
Tout d'abord, ton code est, amha, bien trop compliqué:
mysql_select_db($database, $LienBase);
if (isset($_POST['email']) && ($_POST['email'] != "")) {
$query_je_mail = "SELECT COUNT(*) AS nb_rec FROM ma_table WHERE
email='".$_POST['email']."'";
$je_mail = mysql_query($query_je_mail, $LienBase) or die(mysql_error());
list($totalRows_je_mail) = mysql_fetch_row($je_mail);
} else {
$totalRows_je_mail = 0;
}
A priori, plus simple et fonctionne (du moins chez moi)
--
Découvrez Original War: http://www.original-war.org
Humour: http://www.chatfou.com
Tchattez en liberté: http://www.c-p-f.net
je ne comprends pas pourquoi. Je ne trouve pas d'explications dans les manuels. Pour moi LIKE ne donne pas le résultat exact comme opérateur de comparaison. Mais plutôt tous les résultats qui contiennent cette chaine de caractère. Or je cherche une adresse et une seule ! Si quelqu'un peut éclairer ma lanterne, je l'en remercie d'avance
Tout d'abord, ton code est, amha, bien trop compliqué:
mysql_select_db($database, $LienBase); if (isset($_POST['email']) && ($_POST['email'] != "")) { $query_je_mail = "SELECT COUNT(*) AS nb_rec FROM ma_table WHERE email='".$_POST['email']."'"; $je_mail = mysql_query($query_je_mail, $LienBase) or die(mysql_error()); list($totalRows_je_mail) = mysql_fetch_row($je_mail); } else { $totalRows_je_mail = 0; }
A priori, plus simple et fonctionne (du moins chez moi)
-- Découvrez Original War: http://www.original-war.org Humour: http://www.chatfou.com Tchattez en liberté: http://www.c-p-f.net
AAA
"CrazyCat" a écrit dans le message de news: d07mdt$37c$
Tout d'abord, ton code est, amha, bien trop compliqué:
mysql_select_db($database, $LienBase); if (isset($_POST['email']) && ($_POST['email'] != "")) { $query_je_mail = "SELECT COUNT(*) AS nb_rec FROM ma_table WHERE email='".$_POST['email']."'"; $je_mail = mysql_query($query_je_mail, $LienBase) or die(mysql_error()); list($totalRows_je_mail) = mysql_fetch_row($je_mail); } else { $totalRows_je_mail = 0; }
A priori, plus simple et fonctionne (du moins chez moi)
merci en réalité le problème vient de caractères invisibles qui sont présents dans la base de données. La syntaxe (même un peu compliquée faite par DMX) était valable IB
"CrazyCat" <crazycat@nospam.org> a écrit dans le message de news:
d07mdt$37c$1@s1.news.oleane.net...
Tout d'abord, ton code est, amha, bien trop compliqué:
mysql_select_db($database, $LienBase);
if (isset($_POST['email']) && ($_POST['email'] != "")) {
$query_je_mail = "SELECT COUNT(*) AS nb_rec FROM ma_table WHERE
email='".$_POST['email']."'";
$je_mail = mysql_query($query_je_mail, $LienBase) or
die(mysql_error());
list($totalRows_je_mail) = mysql_fetch_row($je_mail);
} else {
$totalRows_je_mail = 0;
}
A priori, plus simple et fonctionne (du moins chez moi)
merci
en réalité le problème vient de caractères invisibles qui sont présents dans
la base de données.
La syntaxe (même un peu compliquée faite par DMX) était valable
IB
"CrazyCat" a écrit dans le message de news: d07mdt$37c$
Tout d'abord, ton code est, amha, bien trop compliqué:
mysql_select_db($database, $LienBase); if (isset($_POST['email']) && ($_POST['email'] != "")) { $query_je_mail = "SELECT COUNT(*) AS nb_rec FROM ma_table WHERE email='".$_POST['email']."'"; $je_mail = mysql_query($query_je_mail, $LienBase) or die(mysql_error()); list($totalRows_je_mail) = mysql_fetch_row($je_mail); } else { $totalRows_je_mail = 0; }
A priori, plus simple et fonctionne (du moins chez moi)
merci en réalité le problème vient de caractères invisibles qui sont présents dans la base de données. La syntaxe (même un peu compliquée faite par DMX) était valable IB
CrazyCat
AAA wrote:
en réalité le problème vient de caractères invisibles qui sont présents dans la base de données. La syntaxe (même un peu compliquée faite par DMX) était valable
Caractères invisibles dans la base de données pour un email? A mon avis, ton formulaire d'enregistrement des emails est mal traité...
-- Découvrez Original War: http://www.original-war.org Humour: http://www.chatfou.com Tchattez en liberté: http://www.c-p-f.net
AAA wrote:
en réalité le problème vient de caractères invisibles qui sont présents dans
la base de données.
La syntaxe (même un peu compliquée faite par DMX) était valable
Caractères invisibles dans la base de données pour un email?
A mon avis, ton formulaire d'enregistrement des emails est mal traité...
--
Découvrez Original War: http://www.original-war.org
Humour: http://www.chatfou.com
Tchattez en liberté: http://www.c-p-f.net
en réalité le problème vient de caractères invisibles qui sont présents dans la base de données. La syntaxe (même un peu compliquée faite par DMX) était valable
Caractères invisibles dans la base de données pour un email? A mon avis, ton formulaire d'enregistrement des emails est mal traité...
-- Découvrez Original War: http://www.original-war.org Humour: http://www.chatfou.com Tchattez en liberté: http://www.c-p-f.net
AAA
"CrazyCat" a écrit dans le message de news: d093ca$md7$
AAA wrote:
en réalité le problème vient de caractères invisibles qui sont présents dans la base de données. La syntaxe (même un peu compliquée faite par DMX) était valable
Caractères invisibles dans la base de données pour un email? A mon avis, ton formulaire d'enregistrement des emails est mal traité...
le problème est venu de l'importation de fichiers au format CSV et pas de la saisie en ligne via le formulaire, bien entendu. IB
"CrazyCat" <crazycat@nospam.org> a écrit dans le message de news:
d093ca$md7$1@s1.news.oleane.net...
AAA wrote:
en réalité le problème vient de caractères invisibles qui sont présents
dans la base de données.
La syntaxe (même un peu compliquée faite par DMX) était valable
Caractères invisibles dans la base de données pour un email?
A mon avis, ton formulaire d'enregistrement des emails est mal traité...
le problème est venu de l'importation de fichiers au format CSV et pas de la
saisie en ligne via le formulaire, bien entendu.
IB
"CrazyCat" a écrit dans le message de news: d093ca$md7$
AAA wrote:
en réalité le problème vient de caractères invisibles qui sont présents dans la base de données. La syntaxe (même un peu compliquée faite par DMX) était valable
Caractères invisibles dans la base de données pour un email? A mon avis, ton formulaire d'enregistrement des emails est mal traité...
le problème est venu de l'importation de fichiers au format CSV et pas de la saisie en ligne via le formulaire, bien entendu. IB