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 :

mysqli num rows() [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre habitué
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    429
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 429
    Points : 135
    Points
    135
    Par défaut mysqli num rows()
    Bonjour tout le monde,
    Alors voila j'ai creer un tableau avec des listes deroulantes qui permettent d'effectuer une recherche dans la liste du tableau present sur la page.
    Je voudrais compter et afficher le nombre de lignes de resultats présents.
    J'ai regardé sur le net et j'ai vu plusieurs doc sur mysqli_num_rows, le truc c'est que la syntaxe est qu'il faut mettre dans le if la requete mais ma requete est un peu particuliere et je ne sais pas comment integrer cette fonction dans mon code voila ma requete :
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    <?php
    //Connexion a la base de donnée
    connectMaBase();
     
    // on crée la requête SQL 
    $sql = 'SELECT *,DATE_FORMAT(`DATE`,\'%d-%m-%Y\') AS date_fr FROM `intervention` WHERE 1=1 ';
     
    if (!empty($_POST['tech']))
       $sql.= " AND `Nom` LIKE '".mysql_real_escape_string($_POST['tech'])."' "; 
     
    if (!empty($_POST['machine']))
       $sql.= " AND `Machine` LIKE '".mysql_real_escape_string($_POST['machine'])."' "; 
     
    if (!empty($_POST['technique']))
       $sql.= " AND `Technique` LIKE '".mysql_real_escape_string($_POST['technique'])."' "; 
     
    if (!empty($_POST['LouK']))
       $sql.= " AND `Traitement` LIKE '".mysql_real_escape_string($_POST['LouK'])."' "; 
     
    if (!empty($_POST['Colleuse']))
       $sql.= " AND `Traitement` LIKE '".mysql_real_escape_string($_POST['Colleuse'])."' "; 
     
    if (!empty($_POST['mecanique']))
       $sql.= " AND `Traitement` LIKE '".mysql_real_escape_string($_POST['mecanique'])."' "; 
     
    if (!empty($_POST['dosage']))
       $sql.= " AND `Traitement` LIKE '".mysql_real_escape_string($_POST['dosage'])."' "; 
     
    if (!empty($_POST['date']))  {
    $date = $_POST['date'];
    $date = explode("-", $date);
    $newsdate=$date[2].'-'.$date[1].'-'.$date[0];
    echo $newsdate; 
      $sql.= " AND `DATE` LIKE '".mysql_real_escape_string($newsdate)."' ";  }
     
    // on envoie la requête 
    $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
     
    while($result = mysql_fetch_array($req)) {
     
    if ($result['Nom'] == "") {
    	$result['Nom'] = "Non Specifie" ;
    }
    if ($result['Machine'] == "") {
    	$result['Machine'] = "Non Specifie" ;
    }
    if($result['Technique'] == "") {
    	$result['Technique'] = "Non Specifie" ;
    }
    if($result['Traitement'] == "") {
    	$result['Traitement'] = "Non Specifie" ;
    }
    if($result['Commentaire'] == "") {
    	$result['Commentaire'] = "Non Specifie" ;
    }
     
    echo '<TR>' ;
     
    echo'<TD>'.$result['Nom'].'</TD>';
    echo'<TD>'.$result['Machine'].'</TD> ';
    echo'<TD>'.$result['Technique'].'</TD> ';
    echo'<TD>'.$result['Traitement'].'</TD> ';
    echo'<TD></TD> ';
    echo'<TD></TD> ';
    echo'<TD></TD> ';
    echo'<TD>'.$result['Commentaire'].'</TD> ';
    echo'<TD>'.$result['date_fr'].'</TD> ';
    echo'<TD>'.$result['Heure'].'</TD>';
     
    echo'</TR> ';
    }
    Et voila ce que j'ai tenter de faire avec la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $ligne=mysqli_num_rows($req,$result) ;
    if ($ligne > 0) {
    echo'Resultat de votre recherche : '.$ligne.' de lignes.';
    } 
    else{
    echo'<div class="alert alert-danger">Aucun résultat ne correspond a votre recherche.</div>';
    }
    Et j'ai ce message d'erreur en retour qui me dit qu'il me manque un parametre :
    Warning: mysqli_num_rows() expects exactly 1 parameter, 2 given in C:\wamp\www\LCEsa\recap.php on line 471
    Si quelqu'un peut m'aider a trouver une solution a mon probleme j'accepte le coup de patte
    bisous bisous

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Si tu mélanges mysql-* et mysqli-*, ça risque pas trop de fonctionner correctement...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre habitué
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    429
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 429
    Points : 135
    Points
    135
    Par défaut
    coucou bovino =)
    merci de ta reponse et quelle rapidité c'est cool

    Oui j'ai cru que c'était ca !on erreur mais non ..
    Warning: mysql_num_rows() expects exactly 1 parameter, 2 given in C:\wamp\www\LCEsa\recap.php on line 471
    ligne 571 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ligne=mysql_num_rows($req,$result) ;
    --------------

    Cette fonction est obsolete et sur internet il dise qu'il faut la remplacer par ceci :
    int mysqli_stmt_num_rows ( mysqli_stmt $stmt )
    Mais en fait je ne vois pas comment utiliser ces focntions avec mon type de requete

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Déjà, c'est bien dommage entre mysql-* et mysqli-* de choisir celle qu'il faut éviter...

    Ensuite, si tu prends mysql-*, il ne faut pas indiquer le paramètre $req (enfin... je ne fais que paraphraser le message d'erreur...)

    Franchement, ton premier réflexe avant de poster, ça devrait être de regarder la doc et essayer de corriger toi même.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Membre habitué
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    429
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 429
    Points : 135
    Points
    135
    Par défaut
    A eviter ?
    Pourquoi dont ..

    C'est ce que j'essaie de faire depuis 12h mais je bloque :/

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    il dise qu'il faut la remplacer
    Il faut remplacer toutes les fonctions de type mysql_* par mysqli_* !
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  7. #7
    Membre habitué
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    429
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 429
    Points : 135
    Points
    135
    Par défaut
    Euh ouais ok tu m'explique pourquoi ne pas juste ajouter un i ? lol

    ----------
    En faisant cela ca fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $ligne=mysql_num_rows($req) ;
    if ($ligne > 0) {
    echo'Resultat de votre recherche : '.$ligne.' lignes.';
    }
    POurquoi est ce qu'il tout mettre avec mysqli ?

  8. #8
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Il n'y a pas juste à ajouter un "i" aux fonctions mysql. Il faut aussi, dans certains cas, passer l'identifiant de connexion dans la fonction. Et cela est valable en particulier pour la fonction mysqli_real_escape_string, comme dans l'exemple 'style procédural' du mode d'emploi de la fonction.

    Il vaut mieux éviter d'utiliser l'extension mysql, c'est expliqué ici. Et en plus c'est en rappel en entête de toutes les fonctions mysql comme par exemple mysql_num_rows, mysql_real_escape_string, etc.

    Tu devrais avoir plus de curiosité pour le manuel php, c'est la bible

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

Discussions similaires

  1. mysql num rows
    Par laure07 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 18/05/2012, 23h14
  2. [MySQL] Probleme mysql num rows
    Par kev484 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 19/11/2008, 22h52
  3. [VB6] Avec num. de semaine, savoir le 1er et der. jour ouvrable?
    Par lololefada dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 23/01/2004, 13h07
  4. Row lock
    Par cassandra dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 09/04/2003, 16h07

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