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

Langage PHP Discussion :

PHP/MySQL , équivalence


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2011
    Messages : 67
    Par défaut PHP/MySQL , équivalence
    Bonjour tout le monde !

    Voila mon bout de code :

    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
    <?php
     
    class ExempleUrl
    {
        private $hash;
        private $urlBrowser;
        private $redirect;
     
        public function generateExempleKey($nbcar)//Génère une clé alléatoire 
        {
                    $string = "";
                    $chaine = "abcdefghijklmnopqrstuvwxyzABCDEFGJHIJKLMNOPQRSTUVWXYZ0123456789";//les caractères autorisés dans la clé.
                    srand((double)microtime()*1000000);
     
                    for($i = 0; $i < $nbcar; $i++) 
                    {
                     $string .= $chaine[rand() % strlen($chaine)];
                    }
                    $this->hash=$string;
                    return $string;
     
        }
     
        public function getExempleUrl()
        {
            $this->urlBrowser = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
            echo '<br>'.$this->urlBrowser;              
        }
     
        public function WriteDataBase()
        {
            $resultat=executeRequeteSQL("INSERT INTO tinyurl (url_utilisateur , url_reduite) VALUES('$this->urlBrowser' , '$this->hash')", 'Error : Exemple Url Not write in database ');
            return $resultat;
        }
     
        public function redirect()
        {
            $redirect=executeRequeteSQL('SELECT url_utilisateur , url_reduite FROM tinyurl WHERE url_reduite="'.$this->hash.'"', 'Error : Connexion database ');
            ######################################
     
        }
    }
    ?>
    Je voudrais récupérer tout les valeurs (il ne devrait en avoir qu'un seul de toute façon ) égales a la variable $hash. (au niveau des ###########)
    Et stocker dans une autre variable le résultat.

    Le truc c'est que je ne voudrais pas me servir de PDO ...
    Je n'est pas trouver l'équivalent en mysql .. Je sais que j'ai besoin de fetch mais je ne trouve pas une syntaxe qui me convient .. =)

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    mysql_fetch_*

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2011
    Messages : 67
    Par défaut
    Haaa j'comprend pas comment sa fonctionne tellement eu l'habitude de me servir de PDO...

    mysql_fetch_array par exemple , me retourne un tableau de la ligne que je veux

    Mais elle va m'afficher les deux champ ?

    Exemple : si $this->hash est égale a Hl8N71 , il me retourne Hl8N71 et le champ url_utilisateur qui correspond ?

  4. #4
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    248
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 248
    Par défaut
    il me semble que fetch array va te renvoyer un tableau avec autant de lignes que de résultat de ta requete ...

    ah les joies de bosser sur les projets codés à la papa par les autres ...

    enfin je peux parler, j'ai fais de ces trucs de merde moi aussi ... lol

    Mais maintenant je me soigne
    ++

  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par blinkman04 Voir le message
    Haaa j'comprend pas comment sa fonctionne tellement eu l'habitude de me servir de PDO...

    mysql_fetch_array par exemple , me retourne un tableau de la ligne que je veux

    Mais elle va m'afficher les deux champ ?

    Exemple : si $this->hash est égale a Hl8N71 , il me retourne Hl8N71 et le champ url_utilisateur qui correspond ?
    sous PDO y'a aussi fetch ça reviens exactement au même

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2011
    Messages : 67
    Par défaut
    Oui mais j'arrive pas a y intégré dans mon code en faite.

    J'ai une Fatal error: Call to a member function prepare() on a non-object in (je crois que c'était celle la ..j'en ait tellement rencontrées .. xD )

    Parce que la fonction executeRequeteSQL que j'appel contient sa enfaite :

    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
    function executeRequeteSQL($requete, $messageErreur) {
     
        $CI = & get_instance();
    //    $modeSQL = $CI->config->item('modeSQL');
        $modeSQL = $CI->config->item('mode');
     
        if (strcmp($modeSQL, 'dev') === 0) {
            $resultatRequete = mysql_query($requete) or trace($messageErreur . mysql_error()); //die($messageErreur . mysql_error());
            return $resultatRequete;
        } else {
            $resultatRequete = mysql_query($requete);
            if ($resultatRequete === false) {
                header("Location: index.php?erreur");
            } else {
                return $resultatRequete;
            }
        }
    }

  7. #7
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    montre tout ton code pas des bout que tu modifie a la voler, y'a pas prepare dans ce que tu montres, soit plus précis

  8. #8
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2011
    Messages : 67
    Par défaut
    Oui c'est vrai c'est pas très clair =p

    Alors mon code (class .. fucntion ect ...)

    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
    <?php
     
    class ExempleUrl
    {
        private $hash;
        private $urlBrowser;
        private $redirect;
     
        public function generateExempleKey($nbcar)//Génère une clé alléatoire 
        {
                    $string = "";
                    $chaine = "abcdefghijklmnopqrstuvwxyzABCDEFGJHIJKLMNOPQRSTUVWXYZ0123456789";//les caractères autorisés dans la clé.
                    srand((double)microtime()*1000000);
     
                    for($i = 0; $i < $nbcar; $i++) 
                    {
                     $string .= $chaine[rand() % strlen($chaine)];
                    }
                    $this->hash=$string;
                    return $string;
     
        }
     
        public function getExempleUrl()
        {
            $this->urlBrowser = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
            echo '<br>'.$this->urlBrowser;              
        }
     
        public function WriteDataBase()
        {
            $resultat=executeRequeteSQL("INSERT INTO tinyurl (url_utilisateur , url_reduite) VALUES('$this->urlBrowser' , '$this->hash')", 'Error : Exemple Url Not write in database ');
            return $resultat;
        }
     
        public function redirect()
        {
            $resultat2=executeRequeteSQL('SELECT url_utilisateur , url_reduite FROM tinyurl WHERE url_reduite="'.$this->hash.'"', 'Error : Connexion database ');
     
        }
    }
    ?>
    Mon contrôleur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    function index() {
     
            $this->load->library('ExempleUrl');
            echo $this->exempleurl->generateExempleKey(6);
            echo $this->exempleurl->getExempleUrl();
            echo $this->exempleurl->writeDataBase(3);
            echo $this->exempleurl->redirect();
            die();
    ?>
    Et en gros je veux que ma fonction "redirect" cherche dans le champs "url_reduite" (que je vais renommer clé plus tard ...) de ma table "tinyurl" la valeur qui est égale a $this->hash (qui est une clé aléatoire ).
    En sachant que mon champ "url_reduite" est ma clé primaire donc pas de doublons possible donc je récupère un seul résultat =)


    EDIT : la j'ai pas d'erreur , parce que j'ai enlever se que j'vais essayer , histoire de voir si j'avais pas tout chamboulé...

    Mais en gros dans mon procédural de test j'avais écris sa :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $reponse = $bdd->query('SELECT url_utilisateur , url_reduite FROM tinyurl WHERE url_reduite="'.$cle.'"');//Sélectionne tous les champs de la table tynirul lorsque le champ url_reduite est égal à YRfz3Z
     
              while ($donnees = $reponse->fetch())
                   {
                    echo '<br>'.'la cle est ' . $donnees['url_reduite'] . ' et l\'adresse correspondante est :'.$donnees['url_utilisateur'].'<br />';
                    $redirection=$donnees['url_utilisateur'];
                   }
                   $reponse->closeCursor();
    Voila se que je veux obtenir .. mais en mettant sa tel quel sa marche pas ... (sa serais trop facile xD )

  9. #9
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    c'est pareil avec mysql_* ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $reponse = mysql_query('SELECT url_utilisateur , url_reduite FROM tinyurl WHERE url_reduite="'.$cle.'"');//Sélectionne tous les champs de la table tynirul lorsque le champ url_reduite est égal à YRfz3Z
     
              while ($donnees = mysql_fetch_array($reponse))
                   {
                    echo '<br>'.'la cle est ' . $donnees['url_reduite'] . ' et l\'adresse correspondante est :'.$donnees['url_utilisateur'].'<br />';
                    $redirection=$donnees['url_utilisateur'];
                   }

  10. #10
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2011
    Messages : 67
    Par défaut
    Oh purée ...

    C'était si simple que sa ?! J'y crois pas .. a force de chercher j'ai pas regarder le plus simple ..

    Merci en tout cas !

    Encore merci de m'avoie éclairer ! Je cherchais vraiment pas dans la bonne direction !

  11. #11
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    pourquoi passer de PDO à mysql_* ?

  12. #12
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2011
    Messages : 67
    Par défaut
    Ben oui en faite j'ai apris que avec PDO .. et sa me paraissait tellement plus compliqué sans .. xD

  13. #13
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par blinkman04 Voir le message
    Ben oui en faite j'ai apris que avec PDO .. et sa me paraissait tellement plus compliqué sans .. xD
    j'ai éditer mon message, c'est pourquoi ?

  14. #14
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2011
    Messages : 67
    Par défaut
    Ha autant pour moi =p

    Ben je sais pas j'arrivais pas a intégré PDO dans ma classe ... Plein d'erreurs.. de variables soit disant pas définient ..

  15. #15
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par blinkman04 Voir le message
    Ha autant pour moi =p

    Ben je sais pas j'arrivais pas a intégré PDO dans ma classe ... Plein d'erreurs.. de variables soit disant pas définient ..
    fallait ouvrir un sujet la dessus, au lieu d'utilise une vielle libre,
    crée un sujet on va regardé ça

  16. #16
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2011
    Messages : 67
    Par défaut
    Toujours dans syntaxe ?

    J'avoue que je ne serais pas contre une explication =)

    Parce que PDO je trouve sa tellement plus intuitif !

  17. #17
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par blinkman04 Voir le message
    Toujours dans syntaxe ?

    J'avoue que je ne serais pas contre une explication =)

    Parce que PDO je trouve sa tellement plus intuitif !
    oui un autre sujet on en reparle

  18. #18
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2011
    Messages : 67
    Par défaut
    Oui je veux bien ! Mais j'suis a court d'idée pour le réaliser .. xD

    Le titre ect .. xD

    "Intégration PDO dans une class ? "

  19. #19
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par blinkman04 Voir le message
    Oui je veux bien ! Mais j'suis a court d'idée pour le réaliser .. xD

    Le titre ect .. xD

    "Intégration PDO dans une class ? "
    très bien

Discussions similaires

  1. [MySQL] Optimisation de scripts PHP/MySQL
    Par DgG dans le forum PHP & Base de données
    Réponses: 368
    Dernier message: 20/11/2013, 18h59
  2. [php][mysql]Enlever message d'erreur
    Par Destampy dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 31/05/2005, 10h19
  3. [MySQL] [Script]Optimisation de scripts Php/MySQL (2)
    Par copy dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 27/08/2004, 08h33
  4. [php / mysql] pb if ( mysql_query() )
    Par dkmatt dans le forum Requêtes
    Réponses: 5
    Dernier message: 12/01/2004, 20h07

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