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

Bibliothèques et frameworks PHP Discussion :

[PDO] Problème exécution script: "Tutoriel de site dynamique - Classes d'abstraction


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 12
    Par défaut [PDO] Problème exécution script: "Tutoriel de site dynamique - Classes d'abstraction
    Bonjour,
    Ne possèdant pas la classe PDO sur mon hébergement et trouvant ce tutorial intérressant je me suis mis à modifier le code source afin d'enlever la partie PDO et remettre MySQL à la place.
    Cependant je n'ai que des connaissances de bases en MySQL (par exemple je ne sais pas utiliser les jointures...) j'ai quelques difficultés à convertir le code...
    Le code d'origine:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $sql = 'SELECT *
                FROM PAGES AS p
                INNER JOIN PAGES_LANG AS pl ON p.Id_page = pl.Id_page
                WHERE p.Id_page = :id_page
                    AND pl.Id_langue = :id_langue';
     
    	$statement = $db->prepare($sql);
    	$statement->execute(array(':id_page'   => $_ENV['id_page'], ':id_langue' => $_SESSION['language_id']));
    	$tabl_result = $statement->fetch();

    Le code modifié:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    mysql_connect("mysql", "user", "pass")
    	    or die(basename(__FILE__)."<br />".__LINE__."<br />".mysql_error());
    	mysql_select_db("weeberla")
    	    or die(basename(__FILE__)."<br />".__LINE__."<br />".mysql_error());
    	$sql = 'SELECT *
                FROM pages
                WHERE Id_page = '.$id_page '
                AND Id_langue = '.$id_langue;
     
    	$result = mysql_query($sql)
    	    or die(basename(__FILE__)."<br />".__LINE__."<br />".mysql_error());
    $result = $statement->fetch();
    quand j'exécute le code modifié j'ai l'érreur suivante:
    Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in mes-fonctions.php on line 23
    la ligne 23 correspond à:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AND Id_langue = '.$id_langue;
    Pourriez vous m'aider?

    Merci

  2. #2
    Membre chevronné Avatar de goodpz
    Profil pro
    Inscrit en
    Février 2007
    Messages
    475
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 475
    Par défaut
    WHERE Id_page = '.$id_page '

    C'est plutôt ceci que tu veux:

    WHERE Id_page = '.$id_page.'

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 12
    Par défaut
    Oui tu avais raison! mais maintenant il me met:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Notice: Undefined variable: id_page in /home.3/w/e/e/weeberla/www/test/includes/mes-fonctions.php on line 14
     
    Notice: Undefined variable: id_lang in /home.3/w/e/e/weeberla/www/test/includes/mes-fonctions.php on line 15
     
    Notice: Undefined variable: id_page in /home.3/w/e/e/weeberla/www/test/includes/mes-fonctions.php on line 22
     
    Notice: Undefined variable: id_langue in /home.3/w/e/e/weeberla/www/test/includes/mes-fonctions.php on line 23
    mes-fonctions.php
    26
    You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND Id_langue =' at line 4

  4. #4
    Membre chevronné Avatar de goodpz
    Profil pro
    Inscrit en
    Février 2007
    Messages
    475
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 475
    Par défaut
    Dans le code originel, Id_page et Id_langue proviennent de 2 tables différentes. Si tu n'as pas modifié ta structure de table, tu ne peux pas te débarrasser comme ça de la jointure.

    A part ça, php te signale que tu as des problèmes de variables non définies qui entraînent un SQL erroné.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 12
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	$sql = 'SELECT *
                FROM pages AS p
                INNER JOIN pages_lang AS pl ON p.Id_page = pl.Id_page
                WHERE p.Id_page = '.$_ENV["id_page"]. '
                AND pl.Id_langue = '.$_ENV["id_langue"];
    ca fonctionne presque
    mais:
    Notice: Undefined index: id_langue in /home.3/w/e/e/weeberla/www/test/includes/mes-fonctions.php on line 24
    mes-fonctions.php
    et je ne vois pas trop par quoi remplacer??? id_langue?
    sachant que la requetet originale était:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            	$sql = 'SELECT *
                        FROM PAGES AS p
                        INNER JOIN PAGES_LANG AS pl ON p.Id_page = pl.Id_page
                        WHERE p.Id_page = :id_page
                            AND pl.Id_langue = :id_langue';

  6. #6
    Membre chevronné Avatar de goodpz
    Profil pro
    Inscrit en
    Février 2007
    Messages
    475
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 475
    Par défaut
    Apparemment dans le code d'origine, la variable id_langue est substituée par $_SESSION['language_id']

    Tu n'as qu'à remplacer ça par une valeur en dur qui existe déjà dans ta table pour voir si ça fonctionne

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 12
    Par défaut
    C'est bon trouvé!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $id_langue = $_SESSION['language_id'];
    est ce qu'il y aurais quelqu'un qui pourrais vérifier mon code quand j'aurais fini?

Discussions similaires

  1. Probléme exécution d'un script batch
    Par koKoTis dans le forum Windows Vista
    Réponses: 3
    Dernier message: 04/01/2008, 10h18
  2. Réponses: 4
    Dernier message: 27/04/2007, 12h21
  3. Réponses: 10
    Dernier message: 06/04/2007, 10h56
  4. Réponses: 4
    Dernier message: 22/10/2006, 19h01
  5. [Tableaux] Script de recherche pour site dynamique
    Par clemsouz dans le forum Langage
    Réponses: 7
    Dernier message: 12/05/2006, 16h31

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