une ignorance dans la recherche ds ma base sql

pascal denn
Invité n'ayant pas de compte PHPfrance

17 oct. 2005, 11:16

merci je modifie et je reviens.

pour le passe - merci mais il vas changer dans la version finale.

merci

pascal denn
Invité n'ayant pas de compte PHPfrance

17 oct. 2005, 11:21

re,

j'ai une erreur :

Fatal error: Call to undefined function: mysql_fetch_result() in /xxx/index.php on line 26

merci

pascal denn
Invité n'ayant pas de compte PHPfrance

17 oct. 2005, 15:01

je n'arrive pas a corriger l'erreur.

merci

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

17 oct. 2005, 15:54

remplace par mysql_fetch_field car mysql_fetch_result n'existe pas
L'instruction lit la valeur d'un champ donné.

Corrige dans ton programme, cette fonction lit le champ n° 0 de la requête (le champ count() en loccurence) et le compare à 1 :
....
if(mysql_fetch_field($req, 0) == 1) 
    { 
        $_SESSION['login001'] = $loginperso02; 
        $page = "./membre.php"; 
    } 
    else 
    { 
        $page = "./pasmembre.php"; 
    }
....
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Invité
Invité n'ayant pas de compte PHPfrance

17 oct. 2005, 16:47

merci
mais le faite de renseigner un bon ou mauvais login et passe me retourne tjrs vers la mm page 'pasmembre.php'

merci
<?php 
session_start (); 

/* Paramètres de connexion */ 
$hotedb='xxxxx';
$basedb='xxxxx';
$userdb='xxxxx';
$passdb='xxxxx'; 

/* Récupération des valeurs envoyées du formulaire */ 
$loginperso02 = isset($_POST['login']) ? $_POST['login'] : ""; 
$passeperso02 = isset($_POST['passe']) ? $_POST['passe'] : ""; 

/* On vérifie qu'on a bien des valeurs */ 
if(!empty($loginperso02) && !empty($passeperso02)) 
{ 
    /* Établissement de la connexion avec le serveur MySQL */ 
    $cnx = mysql_connect($hotedb,$userdb,$passdb); 
    mysql_select_db("$basedb",$cnx); 

    /* Création de la requête SQL */ 
    $sql="SELECT COUNT(*) FROM membres WHERE loginperso01='". $loginperso02 ."' AND passeperso01='". $passeperso02 ."' "; 
    /* Exécution de la requête */ 
    $req = mysql_query($sql,$cnx); 

if(mysql_fetch_field($req, 0) == 1) 
    { 
        $_SESSION['login001'] = $loginperso02; 
        $page = "./membre.php"; 
    } 
    else 
    { 
        $page = "./pasmembre.php"; 
    }  
} 
else 
{ 
    $page = "./pasmembre.php"; 
} 
header("location:". $page); 
?>

Mammouth du PHP | 19672 Messages

17 oct. 2005, 17:36

Bon, autant pour moi, le mysql_fetch_result est un oubli de ma part en faisant mal une correction: la même corrigée:
<?php
session_start ();

/* Paramètres de connexion */
$hotedb = 'xxxxx';
$basedb = 'xxxxx';
$userdb = 'xxxxxx';
$passdb = '7dAZqGjv';

/* Récupération des valeurs envoyées du formulaire */
$loginperso02 = isset($_POST['login']) ? $_POST['login'] : "";
$passeperso02 = isset($_POST['passe']) ? $_POST['passe'] : "";

/* On vérifie qu'on a bien des valeurs */
if(!empty($loginperso02) && !empty($passeperso02))
{
    /* Établissement de la connexion avec le serveur MySQL */
    $cnx = mysql_connect($hotedb,$userdb,$passdb);
    mysql_select_db("$basedb",$cnx);

    /* Création de la requête SQL */
    $sql="SELECT COUNT(*) FROM membres WHERE loginperso01='". $loginperso02 ."' AND passeperso01='". $passeperso02 ."' ";
    /* Exécution de la requête */
    $req = mysql_query($sql,$cnx);

    if(mysql_result($req, 0) == 1)
    {
        $_SESSION['login001'] = $loginperso02;
        $page = "./membre.php";
    }
    else
    {
        $page = "./pasmembre.php";
    }
}
else
{
    $page = "./pasmembre.php";
}
header("location:". $page);
?>
À tout hasard, fais afficher la requête et essaye la diretement dans phpMyAdmin pour vérifier que tu btiens bien le résultat attendu.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

17 oct. 2005, 17:40

En fait c'est mysql_fetch_field qui va pas car elle pointe sur un champ et non sur une ligne, elle ne retourne pas de valeur mais un objet de type champ.
Elle est utilisée surtout pour accèder aux propriétés d'un champ et non à sa valeur.

Pour corriger, il faut d'abord faire une lecture de ligne pour accèder à la valeur retournée dans les champs.
Dans ton cas une ligne ou rien existe dans $req, pourcela il suffit d'écrire :

$ligne = mysql_fetch_assoc($req);
if ($ligne[0] == 1) {

....

ou bien :
if (mysql_result($req, 0, 0) ==1 ){ //valeur de la ligne 0 du champ 0
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène