IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

mysql_num_rows() et test de valeur [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 57
    Par défaut mysql_num_rows() et test de valeur
    Bonjour,

    Je souhaite récupérer le plus grand id de ma table, et le traiter ainsi :
    - Si il n'y en a pas je le met à 1
    - Si il y en a un je l'incrémente de 1
    Pour tester sa présence, j'utilise la fonction "mysql_num_rows()" et la teste grâce à un if.
    Voici mon code php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    		mysql_connect("pouet", "pouet", "pouet");
    		mysql_select_db("pouet");
    		$reqcycleM="SELECT MAX(IdCycle) AS IdCycle FROM Horaire";
    		$max=mysql_query($reqcycleM);
    		$testvaleur=mysql_num_rows($max);
    		if (!$testvaleur)
    		{
    			$idcycleInc=1;
    		}
    		else
    		{
    			$idcycleC=mysql_fetch_assoc($max);
    			$idcycleInc=$idcycleC['IdCycle']+1;
    		}
    		mysql_close();
    Lorsque je teste j'ai une erreur :
    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in ...pouet.php on line 23.

    En faisant des recherches sur internet j'ai vu que la fonction mysql_num_rows() retournait false si le chanmps était vide.

    Si vous pouvez m'éclairer ce serait super.

    Cordialement.

  2. #2
    Membre chevronné Avatar de defcon_suny
    Homme Profil pro
    Non pas trop...
    Inscrit en
    Décembre 2006
    Messages
    441
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Non pas trop...
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 441
    Par défaut
    Salut!

    Je crois que ton code est bon... il faudrait que tu vérifies tes paramètres de connexion à la DB. Teste les connections et exécute le die si besoin.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    $link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
    if (!$link) {
       die('Impossible de se connecter : ' . mysql_error());
    }
     
    // Rendre la base de données foo, la base courante
    $db_selected = mysql_select_db('foo', $link);
    if (!$db_selected) {
       die ('Impossible de sélectionner la base de données : ' . mysql_error());
    }
    ++

  3. #3
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 964
    Par défaut
    Essaie de tester si la requête que tu joue s'excute correctement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $max=mysql_query($reqcycleM) or die("Problème dans la requête");
    D'ailleurs rajoute un or die derrière ta connexion et ta sélection de base de donnée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    mysql_connect("pouet", "pouet", "pouet") or die("Connexion impossible");
    mysql_select_db("pouet") or die("Base non trouvée");
    Tu peux aussi vérifier que ta requête fonctionne en la lançant directement dans l'administration SQL.

    Si tu teste en local, il faut utiliser

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_connect("127.0.0.1", "root", "")  or die("Connexion impossible");

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 57
    Par défaut C'est ok
    En effet le problème a été localisé (BDD) et résolu merci pour votre aide et pour la combine des or die c'est bien pratique pour localiser l'erreur.

    Merci encore.

  5. #5
    Membre chevronné Avatar de defcon_suny
    Homme Profil pro
    Non pas trop...
    Inscrit en
    Décembre 2006
    Messages
    441
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Non pas trop...
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 441
    Par défaut
    De rien...

    bon dev!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Objet] Test de valeur null
    Par Mister Nono dans le forum Struts 1
    Réponses: 4
    Dernier message: 16/03/2007, 09h03
  2. [vba-access] Test sur valeur des champs puis publipostage
    Par realthunderbolt dans le forum Access
    Réponses: 1
    Dernier message: 01/08/2006, 16h38
  3. pb de test si valeur nulle
    Par taurus dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 08/10/2005, 12h16
  4. Réponses: 8
    Dernier message: 11/08/2005, 09h32
  5. test la valeur d'une date dans une requete
    Par TuxP dans le forum Requêtes
    Réponses: 2
    Dernier message: 07/01/2004, 14h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo