Partage
  • Partager sur Facebook
  • Partager sur Twitter

Quelque question about PHP

    22 avril 2006 à 12:36:12

    Bijour bijour cher compatriote,
    Voila
    Pouvez vous s'il vous plait m'expliquer un peu la function
    J'ai lu la doc mais moi pas comprendre o_O:p

    Autre chose s'il vous plait
    Je me pose une question c'est comment vérifié q'une valeur d'un champt existe ?

    Et dernier please :D
    Alors j'ai pas tout compris sur la requete MySQL COUNT et AS , pouvez vous m'expliquez les parametre ;)

    Grand Merci :p
    • Partager sur Facebook
    • Partager sur Twitter
      22 avril 2006 à 12:39:59

      je n'utilise pas result mais je sais que tu aura des réponses bientôt après mon post...
      pour ce qui est de COUNT AS:
      Tu compte les entrées de ton champ, et AS lui est différent et te permet d'attribuer un nom de variable à un résultat de MYSQL.
      Ainsi en faisant
      SELECT COUNT(*) FROM table AS var
      tu pourra obtenir apres un fetch_array (ou un mysql_result que je ne connais pas non-plus) ton resultat sous la forme d'une variable appellée var ...
      • Partager sur Facebook
      • Partager sur Twitter
        22 avril 2006 à 13:53:13

        Merci bikou
        Et var sera quoi ?
        Une chaine de character ou un entier relatif ?
        en gros number or letter
        • Partager sur Facebook
        • Partager sur Twitter
          22 avril 2006 à 14:22:05

          Bonjour,


          - Le code suivant
          $retour = mysql_query('SELECT COUNT(*) FROM membres;') or exit(mysql_error());
          $donnees = mysql_fetch_assoc($retour);
          $nbre_membres = $donnees['COUNT(*)'];

          peut s'écrire autrement, et sera plus rapide ainsi :
          $retour = mysql_query('SELECT COUNT(*) FROM membres;') or exit(mysql_error());
          $nbre_membres = mysql_result($retour, 0); // ou mysql_result($retour,0,0) : récupère le premier champ (par défaut) de la première "ligne" (ici la seule) sélectionnée (le premier "0")


          - Pour vérifier qu'il existe (au moins) une entrée dans la table "test" avec la valeur "valeur" pour le champ "champ", utilise COUNT(*) (comme au-dessus), donc une requête du genre
          SELECT COUNT(*) FROM test WHERE champ='valeur';

          Si la valeur renvoyée est > 0, c'est qu'une telle entrée existe :)


          - AS permet de créer un alias, par exemple dans mon premier code on récupère $donnees['COUNT(*)'], car on a en effet sélectionné "COUNT(*)", mais on pourrait faire comme requête
          SELECT COUNT(*) AS nbre_m FROM membres;

          et ensuite utiliser $donnees['nbre_m'] (après le fetch_assoc) (note : l'alias remplace le nom original, donc on ne pourra plus utiliser $donnees['COUNT(*)'])


          Remarque : d'après mes tests, COUNT() renvoie une chaîne, et non un entier comme on pourrait le penser (dans mon premier exemple, si on fait un var_dump($nbre_membres);, cela n'affichera pas (par exemple) int(27) mais string(2) "27")
          • Partager sur Facebook
          • Partager sur Twitter
            22 avril 2006 à 15:05:40

            Je complete els propos de thelittlegui :

            Pour mysql_result, ca donnz, qi on utilise l'alias :
            $nb_rws = mysql_result($req,0,'nbre_m');


            Grosso modo, pour mysql_result, tu dois specifier en 1er argument le résultat d'une requete mysql (c'est à dire le genre $req = mysql_query('...');), en 2nd arguement le x-ième rang (le premier comence à 0, tention), et en 3e (facultatif) la valeur du champ concerné.
            • Partager sur Facebook
            • Partager sur Twitter
            Mon profil Github - Zeste de Savoir, pour la beauté du zeste
              22 avril 2006 à 17:23:23

              Deja merci à toute ces réponses,
              Sinon en gros pour vérifié si le pseudo existe
              on ne cherche pas si la valeur M@teo existe

              Mais on cherche si le nombre de M@teo est supérieur à 0
              ??

              Et donc quel est l'interet de mysql_result ?


              Encore emrci :);)
              • Partager sur Facebook
              • Partager sur Twitter
                22 avril 2006 à 17:27:49

                Plus rapide :) (à l'exécution, comme à l'écriture ^^)
                (enfin, dans le cas où il y a une seule donnée à récupérer)
                • Partager sur Facebook
                • Partager sur Twitter
                  22 avril 2006 à 17:33:56

                  Mais puis je savoir simplement à quoi il sert
                  Car dans la doc je pige R-I-E-N lol
                  Je suis un peu débile mais bon faite comme si vous le saviez pas ;)

                  Sinon encore encore merci ;)
                  • Partager sur Facebook
                  • Partager sur Twitter
                    22 avril 2006 à 17:35:53

                    Par exemple, mysql_fetch_array est plus apide lorsque tu as besoin d'exploiter plusieurs rangs / lignes (rows). Mais mysql_result est plus rapide si tu n'a besoin du résultat que d'une seule et me^me ligne, genre de comparer si le nombre de resulta est oui ou non superieur ou égal à tel chiffre.
                    • Partager sur Facebook
                    • Partager sur Twitter
                    Mon profil Github - Zeste de Savoir, pour la beauté du zeste
                      22 avril 2006 à 17:43:24

                      Aaaaa d'accord merki bikou

                      Donc je peux très bien utiliser le fetch_array si je préfére car result c'est par encore ça :)
                      • Partager sur Facebook
                      • Partager sur Twitter
                        22 avril 2006 à 17:49:06

                        non, result, c'est la meme chose que fetch_array, mais en plus rapide si on a besoin que d'une seule ligne. Tu le stocke pareil dans uen varaible, et après tu considere la varaible. Par exemple :

                        $req = mysql_query("SELECT COUNT(*) AS `nb` FROM `table` WHERE `pseudo` = 'mateo';");

                        //pas tres rapide....
                        $nb = mysql_fetch_array($req);

                        if( $nb['nb'] > 0 ){
                        echo 'Déja utilisé';
                        }
                        else {
                        echo 'ok';
                        }

                        // Mais ceci, dans ce cas (par exemple), cay plus rapide
                        $nb = mysql_result($req,0);
                        if( $nb > 0 ) {
                        // ... Vais pas tout réécrire quand même :p
                        }


                        Pourquoi? Car en fait, avec result, tu ne fais que générer une simple valeur, alors qu'avec fetch_*, en plus de générer une varaible, tu genere aussi un array, qui lui contient certaines valeurs

                        Mieux ?
                        • Partager sur Facebook
                        • Partager sur Twitter
                        Mon profil Github - Zeste de Savoir, pour la beauté du zeste
                          22 avril 2006 à 18:10:33

                          Super explication j'ai tout compris ;)
                          Merci beaucoup
                          • Partager sur Facebook
                          • Partager sur Twitter

                          Quelque question about PHP

                          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                          • Editeur
                          • Markdown