PHP/SQL le SELECT et les noms...

Résolu/Fermé
mister3d
Messages postés
297
Date d'inscription
samedi 20 janvier 2007
Statut
Membre
Dernière intervention
21 avril 2021
- 14 janv. 2008 à 17:58
mister3d
Messages postés
297
Date d'inscription
samedi 20 janvier 2007
Statut
Membre
Dernière intervention
21 avril 2021
- 14 janv. 2008 à 19:25
Bonjour a tous,


j'ai beau chercher, la je commence à désespérer...
je cherche à faire une requete en SQL sous PHP qui me dit si dans ma table "ReferencementBases", j'ai une de mes ligne qui porte le nom "Erwan" dans la colonne "prenomResp". Le problème est que peut importe le nom que je cherche, même si le mot n'existe pas, il me trouve quelque chose!!!

voila un bout de mon code:

$query="SELECT prenomResp FROM ReferencementBases WHERE 'prenomResp' = 'Erwan'";
$result = @mysql_query($query) or die("Erreur = ".mysql_error());
if($result)
{
...
}
else
{
...
}

Ma table "ReferencementBases" est comme ceci:

ID nomBase nomResp prenomResp mailResp motDePasse
01 ma première voiture Chaintrier Erwan xxx@xxx.com xxxxxxx

Si je met autre chose comme ...WHERE 'nomDansMaTable' = 'pasErwan'
le resultat est quand meme vrai!


avez vous une idée?

j'utilise free comme hebergeur.


merci!

++

10 réponses

En fait, qu'il y ait un résultat ou non, il me semble qu'il y a de toute manière quelque chose stocké dans la variable $result. Pour savoir s'il a réellement trouvé un résultat ou non, on peut lui demander combien de résultat il a trouvé en utilisant mysql_num_rows($result) : cela reverra 0 s'il n'y a pas de résultat...
0
Matio
Messages postés
671
Date d'inscription
mardi 6 mars 2007
Statut
Membre
Dernière intervention
25 janvier 2011
298
14 janv. 2008 à 18:09
Salut,
Essaye ça

$query="SELECT prenomResp FROM ReferencementBases WHERE prenomResp = 'Erwan' ";
ou
$query="SELECT prenomResp FROM ReferencementBases WHERE prenomResp Like 'Erwan' ";
0
mister3d
Messages postés
297
Date d'inscription
samedi 20 janvier 2007
Statut
Membre
Dernière intervention
21 avril 2021
22
14 janv. 2008 à 18:25
Rebonjour

merci de vous pencher sur le probleme

voici mes resultats de test:


echo "SELECT prenomResp FROM ReferencementBases WHERE prenomResp = 'Erwan' ";
$query="SELECT prenomResp FROM ReferencementBases WHERE prenomResp = 'Erwan' ";
=> donne resultat: 1 mot trouvé

echo "SELECT prenomResp FROM ReferencementBases WHERE prenomResp = 'pasErwan' ";
$query="SELECT prenomResp FROM ReferencementBases WHERE prenomResp = 'pasErwan' ";
=> donne resultat: 1 mot trouvé

echo "SELECT prenomResp FROM ReferencementBases WHERE prenomResp Like 'Erwan' ";
$query="SELECT prenomResp FROM ReferencementBases WHERE prenomResp Like 'Erwan' ";
=> donne resultat: 1 mot trouvé


echo "SELECT prenomResp FROM ReferencementBases WHERE prenomResp Like 'pasErwan' ";
$query="SELECT prenomResp FROM ReferencementBases WHERE prenomResp Like 'pasErwan' ";
=> donne resultat: 1 mot trouvé


sachant que pour ta reponse zerifah, j'ai fait

$essai=mysql_num_rows($result);
echo "resultat: $essai";

puis le test qui m'a donné mot trouvé:

$result = @mysql_query($query) or die("Erreur = ".mysql_error());
if($result)
{
echo "mot trouvé<br>";
}
else
{
echo "<center><font color=\"red\">Informations non valides.</font></center><br><br>";
}


voila!!!

j'ai meme refermé firefox à quaque fois pour vérifier qu'il ne garde pas de variable en memoire...

des idées??? ;)

moi je seche tjs!
0
Matio
Messages postés
671
Date d'inscription
mardi 6 mars 2007
Statut
Membre
Dernière intervention
25 janvier 2011
298
14 janv. 2008 à 18:31
Envoie peut être le code qui précède l'erreur est peut être plus haut et enlève @ pour voir les erreurs éventuelles
0

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

Posez votre question
Qu'est-ce que ça fait si tu essaies: $essai=mysql_num_rows($result);
echo "resultat: $essai";

ça affiche toujours 1?

Puis, pour le test, l'idée serait de faire :

if($essai>'1')
{
echo "mot trouvé<br>";
}
else
{
echo "<center><font color=\"red\">Informations non valides.</font></center><br><br>";
}

Qu'est-ce que ça donne?
Sinon, tu es sûr que tu fais bien la requête que tu veux? Tu n'as pas d'autres requêtes dans les parage qui aurait pu être prise à la place de la tienne?
0
mister3d
Messages postés
297
Date d'inscription
samedi 20 janvier 2007
Statut
Membre
Dernière intervention
21 avril 2021
22
14 janv. 2008 à 19:05
ok voila le code de la fonction en entier:





<?php
session_start();
include("header.php");
include("connect/connect.php");
if ($authorised == "1")
{
?>
<h1>Supprimer un projet</h1>
<?php

$envoye=(isset($_POST['envoye'])) ? $_POST['envoye'] : Null;
$projetOK = "0";
//SI LE FORMULAIRE VIENT D'ETRE ENVOYE
if ($envoye)
{
$nomBase=(isset($_POST['nomBase'])) ? $_POST['nomBase'] : Null;
$nomResp=(isset($_POST['nomResp'])) ? $_POST['nomResp'] : Null;
$prenomResp=(isset($_POST['prenomResp'])) ? $_POST['prenomResp'] : Null;

//traiter variable
include("traitementChar.php");
$nomBase=traitementChar($nomBase);
$nomResp=traitementChar($nomResp);
$prenomResp=traitementChar($prenomResp);

if ($nomBase AND $nomResp AND $prenomResp)
{
//chercher mail responsable

//echo "SELECT prenomResp FROM ReferencementBases WHERE prenomResp = 'Erwan' ";
//$query="SELECT prenomResp FROM ReferencementBases WHERE prenomResp = 'Erwan' "; // resultat: 1 -fintrouvé

echo "SELECT prenomResp FROM ReferencementBases WHERE prenomResp = 'pasErwan' ";
$query="SELECT prenomResp FROM ReferencementBases WHERE prenomResp = 'pasErwan' "; // resultat: 1 -fintrouvé


//echo "SELECT prenomResp FROM ReferencementBases WHERE prenomResp Like 'Erwan' ";
//$query="SELECT prenomResp FROM ReferencementBases WHERE prenomResp Like 'Erwan' "; // resultat: 1 -fintrouvé


//echo "SELECT prenomResp FROM ReferencementBases WHERE prenomResp Like 'pasErwan' ";
//$query="SELECT prenomResp FROM ReferencementBases WHERE prenomResp Like 'pasErwan' "; // resultat: 1 -fintrouvé


$essai=mysql_num_rows($result);
echo "<br> Resultat: $essai - ";

$result = @mysql_query($query) or die("Erreur = ".mysql_error());
if($result)
{
/*while($ligne=mysql_fetch_array($result))
{
$mailResp=$ligne['mailResp'];
$motDePasse1=$ligne['motDePasse'];
$numInterneResp=$ligne['numInterneResp'];
$numPersoResp=$ligne['numPersoResp'];
}
*/
echo "mot trouvé<br>";
//$projetOK = "1";
}
else
{
echo "<center><font color=\"red\">Informations non valides.</font></center><br><br>";
}


}
else
{
echo "<center><font color=\"red\">Veuillez remplire les trois champs svp.</font></center><br><br>";
}
}
// fin création page web







!!!!
0
mister3d
Messages postés
297
Date d'inscription
samedi 20 janvier 2007
Statut
Membre
Dernière intervention
21 avril 2021
22
14 janv. 2008 à 19:08
zerifah> ca fait la même, rien a faire!!!!

le test est égal à 1, donc il me met non trouvé à chaque test!
0
CEla fait quoi si tu exécutes les codes suivants? Qu'est-ce qui s'affiche?

$query="SELECT prenomResp FROM ReferencementBases WHERE prenomResp = 'Erwan' ";
$result = @mysql_query($query):
$essai=mysql_num_rows($result);
echo "<br> Resultat Erwan: $essai - ";

$query="SELECT prenomResp FROM ReferencementBases WHERE prenomResp = 'pasErwan' ";
$result = @mysql_query($query):
$essai=mysql_num_rows($result);
echo "<br> Resultat Pas Erwan: $essai - ";
0
mister3d
Messages postés
297
Date d'inscription
samedi 20 janvier 2007
Statut
Membre
Dernière intervention
21 avril 2021
22
14 janv. 2008 à 19:18
re!

j'ai refait un test apres avoir fermer tout (transfert ftp, firefox), et ai refai les tests:


1) SELECT prenomResp FROM ReferencementBases WHERE prenomResp = 'Erwan'
2) SELECT prenomResp FROM ReferencementBases WHERE prenomResp = 'pasErwan'
3) SELECT prenomResp FROM ReferencementBases WHERE prenomResp Like 'Erwan'
4) SELECT prenomResp FROM ReferencementBases WHERE prenomResp Like 'pasErwan'

Resultat1: 1
Resultat2: 0
Resultat3: 1
Resultat4: 0


plutot concluant!
il devai y avoir des variables qui trainaient quelquepart...i don't know!

merci de vos recherche, c'est cool de voir votre motiv ;)

bonne soirée!
0
mister3d
Messages postés
297
Date d'inscription
samedi 20 janvier 2007
Statut
Membre
Dernière intervention
21 avril 2021
22
14 janv. 2008 à 19:25
voila ma solution.

je trouve ca bizzare quand meme. mais bon, ca marche:



echo "1) SELECT prenomResp FROM ReferencementBases WHERE prenomResp = '".$prenomResp."' <br>";
$query1="SELECT prenomResp FROM ReferencementBases WHERE prenomResp = '".$prenomResp."' ";

$result1 = mysql_query($query1) or die("Erreur 1 = ".mysql_error());
$result1=mysql_num_rows($result1);


if($result1)
{
while($ligne=mysql_fetch_array($result))
{
$mailResp=$ligne['mailResp'];
$motDePasse1=$ligne['motDePasse'];
$numInterneResp=$ligne['numInterneResp'];
$numPersoResp=$ligne['numPersoResp'];
}

echo "mot trouvé<br>";
//$projetOK = "1";
}
else
{
echo "<center><font color=\"red\">Informations non valides.</font></center><br><br>";
}

++


Erwan
0