Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/09/2011, 14h55   #1
Invité de passage
 
Homme
Inscription : septembre 2011
Messages : 31
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : septembre 2011
Messages : 31
Points : 0
Points : 0
Par défaut PHP/MySQL , équivalence

Bonjour tout le monde !

Voila mon bout de code :

Code :
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 .. =)
blinkman04 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 16h44   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
mysql_fetch_*
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 17h10   #3
Invité de passage
 
Homme
Inscription : septembre 2011
Messages : 31
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : septembre 2011
Messages : 31
Points : 0
Points : 0
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 ?
blinkman04 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 18h28   #4
Membre du Club
 
Inscription : janvier 2007
Messages : 236
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 236
Points : 62
Points : 62
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
++
CaviarNAS est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 29/09/2011, 18h46   #5
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
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
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 10h01   #6
Invité de passage
 
Homme
Inscription : septembre 2011
Messages : 31
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : septembre 2011
Messages : 31
Points : 0
Points : 0
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 :
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;
        }
    }
}
blinkman04 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 10h40   #7
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
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
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 10h52   #8
Invité de passage
 
Homme
Inscription : septembre 2011
Messages : 31
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : septembre 2011
Messages : 31
Points : 0
Points : 0
Oui c'est vrai c'est pas très clair =p

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

Code :
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 :
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 :
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 )
blinkman04 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 11h07   #9
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
c'est pareil avec mysql_* ...

Code :
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'];
               }
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 30/09/2011, 11h14   #10
Invité de passage
 
Homme
Inscription : septembre 2011
Messages : 31
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : septembre 2011
Messages : 31
Points : 0
Points : 0
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 !
blinkman04 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 11h18   #11
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
pourquoi passer de PDO à mysql_* ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 11h41   #12
Invité de passage
 
Homme
Inscription : septembre 2011
Messages : 31
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : septembre 2011
Messages : 31
Points : 0
Points : 0
Ben oui en faite j'ai apris que avec PDO .. et sa me paraissait tellement plus compliqué sans .. xD
blinkman04 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 11h45   #13
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
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 ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 11h57   #14
Invité de passage
 
Homme
Inscription : septembre 2011
Messages : 31
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : septembre 2011
Messages : 31
Points : 0
Points : 0
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 ..
blinkman04 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 12h06   #15
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
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
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 12h28   #16
Invité de passage
 
Homme
Inscription : septembre 2011
Messages : 31
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : septembre 2011
Messages : 31
Points : 0
Points : 0
Toujours dans syntaxe ?

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

Parce que PDO je trouve sa tellement plus intuitif !
blinkman04 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 12h30   #17
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
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
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 12h44   #18
Invité de passage
 
Homme
Inscription : septembre 2011
Messages : 31
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : septembre 2011
Messages : 31
Points : 0
Points : 0
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 ? "
blinkman04 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 13h01   #19
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
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
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h53.


 
 
 
 
Partenaires

Hébergement Web