[PHP&Mysql]Pb de connexion

Buzzz -  
ventresh Messages postés 5 Statut Membre -
Salut,
essayer de créer un formulaire afin d'identifier un utilisateur mais j'ai une erreur au niveau de mysql_fetch_row (je pense)
voici le code:

formulaire.php:
<?php
 if (!isset($_COOKIE['college'])){
//creation formulaire
else{
    $tab=explode('#',$_COOKIE['max']);
    include 'requete.php';
    connection();
    verifcode($tab[0],$tab[1],$tab[2],$tab[3]);
    mysql_close();
  }

requete.php:
function connection(){
// Déclaration des paramètres de connexion
  $host   = 'localhost';
  $user   = 'root';
  $bdd    = 'college';
  $passwd = 'godevin';
// Connexion au serveur
  mysql_connect($host,$user,$passwd)
  or die("erreur de connexion au serveur:". mysql_error());
  mysql_select_db($bdd)
  or die("erreur de connexion a la base de donnees");
}

function verifcode($nom,$prenom,$classe,$code){
  $result=mysql_query("SELECT nom,prenom,classe,motdepasse FROM t_eleve
  WHERE nom=$nom
  AND WHERE prenom=$prenom
  AND WHERE classe=$classe
  AND WHERE motdepasse=$code");
//Verification des resultats
  if ($row=mysql_fetch_row($result)){
    setcookie('college','',0,'/','127.0.0.1',0);
    echo "<script language=\"javascript\" type=\"text/javascript\">
    window.open(\"formulaireeleve.php\",\"_self\")</script>";
  }
  else {
    echo "<script language=\"javascript\" type=\"text/javascript\">
    window.open(\"ChoixNotes.php\",\"_self\")</script>";
  }
}

voila si quelqu'un voit mon erreur je lui serait reconnaissant
Tchô!! :-)

12 réponses

  1. esox_ch Messages postés 770 Statut Membre 49
     
    Tu dois effectuer la rekete avant d'extraire le resultat :

    $result=mysql_query("SELECT nom,prenom,classe,motdepasse FROM t_eleve
    WHERE nom=$nom
    AND WHERE prenom=$prenom
    AND WHERE classe=$classe
    AND WHERE motdepasse=$code");
    // Envoie de la rekete
    $query = mysql_query($result);
    //Verification des resultats
    if ($row=mysql_fetch_row($query)){...

    Eternel Questionneur. Seul et Unique membre de la : SPdLM
    => Société Protectrice des Langages Maltraités
    0
  2. Utilisateur anonyme
     
    la requete est envoyée ici déjà
    $result=mysql_query("SELECT nom,prenom,classe,motdepasse FROM t_eleve
    WHERE nom=$nom
    AND WHERE prenom=$prenom
    AND WHERE classe=$classe
    AND WHERE motdepasse=$code") :)

    par contre un seul where suffit
    et je mettrai des ' autour des variables '$prenom'
    0
  3. esox_ch Messages postés 770 Statut Membre 49
     
    Zut je c mm plu lire... et bein c bien parti ...et dire que cet aprem j'ai un examen de phisique ...
    Esox

    Eternel Questionneur. Seul et Unique membre de la : SPdLM
    => Société Protectrice des Langages Maltraités
    0
  4. Buzzz
     
    Ca ne change rien j'ai tjrs un problème avec mysql_fetch_row
    ca me marque:
    Warning: mysql_fetch_row(): supplied argument is not valid MySQL result resource in ...\requete.php on line 34
    (l.34-> if ($row=mysql_fetch_row($result)){...
    A+
    0
    1. kalamit
       
      C'est normal, la fonction mysql_fetch_row ne s'utilise pas comme ca.
      Cela peut vouloir dire également que ta requete ne te retourne aucun résultat.

      Kalamit,
      5 jours avant le soleil, la mer et les mouettes. :)
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Utilisateur anonyme
     
    apres ta requete rajoute or die(mysql_error());

    $result=mysql_query("SELECT nom,prenom,classe,motdepasse FROM t_eleve
    WHERE nom='$nom'
    AND prenom='$prenom'
    AND classe='$classe'
    AND motdepasse='$code'") or die (mysql_error());
    0
  7. kalamit
     
    Salut,
    Tu utilises mal mysql_fetch_row.
    Theoriquement, il faudrait que tu fasses ca:

    function verifcode($nom,$prenom,$classe,$code){
    	$result=mysql_query("SELECT nom,prenom,classe,motdepasse FROM t_eleve
    	WHERE nom=".$nom."
    	AND WHERE prenom=".$prenom."
    	AND WHERE classe=".$classe."
    	AND WHERE motdepasse=".$code);
    
    	//Récuperation des résultat de la requete.
    	while ($row = mysql_fetch_row($result)){
    		$nom_req = $row[0];
    		$prenom_req = $row[1];
    		$classe_req = $row[2];
    		$mdp_req = $row[3];
    
    		if (($nom == $nom_req) and ($prenom == $prenom_req) and ($classe == $classe_req) and ($code == $mdp_req)) {
    
    			//L'identification est réussie
    		}
    		else {
    			//L'identification a échoué
    		}
    
    	}
    }

    }
    Kalamit,
    5 jours avant le soleil, la mer et les mouettes. :)
    0
  8. Utilisateur anonyme
     
    utlise mysql_num_rows($result)

    si ca retourne 0 ca veut dire qu'il existe pas dans la base
    sinon c'est qu'il existe
    0
  9. Buzzz
     
    Merci pour ces reponses aussi rapide, il y a toujours quelques erreurs mais j'y suis presque :-)
    A la prochaine
    0
  10. Buzzz
     
    Salut c moi que revoila!
    j'ai un autre probleme avec ma base, voila j'ai essayer de rentrer des infos dans mon formulaire (ex: nom:Chti prenom:mat ...) c'est données sont presente dans ma base mais ça ne fonctionne pas j'ai fait après ma requete:
    mysql_query(...) or die(mysql_error()); et j'obtient une erreur:
    Champ 'Chti' inconnu dans where clause.
    Et Tant qu'on y est une ptite question: Est-ce que les majuscules/minuscules ont une importance?
    Merci d'avance!
    0
    1. kalamit
       
      Oui les majuscule minuscule ont une importance, c'est probablement pourquoi ca ne fonctionne pas. :)

      Kalamit,
      5 jours avant le soleil, la mer et les mouettes. :)
      0
  11. Buzzz
     
    Merci pour ta reponse
    mais mon problème ne viens pas de là, j'ai recopié exactement comme dans ma base mais j'ai la mçme erreur que si j'avait avec des données bidon! !-(((
    Bonne Fête de la musique! et remplissez vos oreilles de bon son !-)
    0
  12. Utilisateur anonyme
     
    hum le champ Chti n existe pas :/
    par contre le champ nom existe :)
    0
  13. ventresh Messages postés 5 Statut Membre 1
     
    Je n'ai pas regardé ton problème en détail mais je peux déjà te corriger ta requête SQL :

    $result=mysql_query("SELECT nom,prenom,classe,motdepasse FROM t_eleve
    WHERE nom=$nom
    AND WHERE prenom=$prenom
    AND WHERE classe=$classe
    AND WHERE motdepasse=$code");

    est à remplacer par :
    $requete="SELECT nom, prenom, classe,motdepasse";
    $requete.=" FROM t_eleve";
    $requete.=" WHERE nom='".$nom."'";
    $requete.=" and prenom='".$prenom."'";
    $requete.=" and classe='".$classe."';
    $requete.=" and motdepasse='".$code."';
    $result=mysql_query($requete);

    Je te conseille de toujours dissocier l'écriture de la requête (dans une variable $requete de son exécution avec mysql_query. Cela te permettra de vérifier la syntaxe de ta requête en ajoutant une instruction : echo $requete;

    Elle doit te renvoyer le texte suivant :
    SELECT nom, prenom,classe,motdepasse FROM t_eleve WHERE nom='tonnom' and prenom='tonprenom' and classe='taclasse' and motdepasse='tonmotdepasse'

    Il ne peut y avoir plusieurs WHERE dans une requête SQL, les différents critères sont effectivement à séparer par des and mais au sein d'une même instruction WHERE.
    0