PHP/SQL le SELECT et les noms...

Résolu
mister3d Messages postés 316 Statut Membre -  
mister3d Messages postés 316 Statut Membre -
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

  1. zerifah
     
    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
  2. Matio Messages postés 684 Statut Membre 300
     
    Salut,
    Essaye ça

    $query="SELECT prenomResp FROM ReferencementBases WHERE prenomResp = 'Erwan' ";
    ou
    $query="SELECT prenomResp FROM ReferencementBases WHERE prenomResp Like 'Erwan' ";
    0
  3. mister3d Messages postés 316 Statut Membre 22
     
    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
  4. Matio Messages postés 684 Statut Membre 300
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. zerifah
     
    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
  7. mister3d Messages postés 316 Statut Membre 22
     
    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
  8. mister3d Messages postés 316 Statut Membre 22
     
    zerifah> ca fait la même, rien a faire!!!!

    le test est égal à 1, donc il me met non trouvé à chaque test!
    0
  9. zerifah
     
    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
  10. mister3d Messages postés 316 Statut Membre 22
     
    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
  11. mister3d Messages postés 316 Statut Membre 22
     
    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