[PHP&Mysql]Pb de connexion

Fermé
Buzzz - 21 juin 2004 à 10:55
ventresh Messages postés 5 Date d'inscription lundi 23 avril 2007 Statut Membre Dernière intervention 1 septembre 2008 - 24 avril 2007 à 10:05
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ô!! :-)
A voir également:

12 réponses

esox_ch Messages postés 770 Date d'inscription mardi 28 janvier 2003 Statut Membre Dernière intervention 14 mars 2007 49
21 juin 2004 à 11:02
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
Utilisateur anonyme
21 juin 2004 à 11:09
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
esox_ch Messages postés 770 Date d'inscription mardi 28 janvier 2003 Statut Membre Dernière intervention 14 mars 2007 49
21 juin 2004 à 11:10
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
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
Utilisateur anonyme
21 juin 2004 à 11:18
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

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

Posez votre question
Utilisateur anonyme
21 juin 2004 à 11:17
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
Utilisateur anonyme
21 juin 2004 à 11:17
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
Utilisateur anonyme
21 juin 2004 à 11:20
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
Merci pour ces reponses aussi rapide, il y a toujours quelques erreurs mais j'y suis presque :-)
A la prochaine
0
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
Utilisateur anonyme
21 juin 2004 à 16:07
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
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
Utilisateur anonyme
21 juin 2004 à 16:22
hum le champ Chti n existe pas :/
par contre le champ nom existe :)
0
ventresh Messages postés 5 Date d'inscription lundi 23 avril 2007 Statut Membre Dernière intervention 1 septembre 2008 1
24 avril 2007 à 10:05
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