Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks
Bibliothèques et frameworks Forum d'entraide sur les frameworks, templates, bibliothèques de code (PDFLib, eZPdf, JpGraph, Artichow, PEAR, etc). Avant de poster : FAQ bibliothèques, toutes les FAQ PHP et cours bibliothèques
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 18/02/2007, 21h20   #1
Invité de passage
 
Inscription : octobre 2006
Messages : 12
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 12
Points : 2
Points : 2
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 :
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 :
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 :
AND Id_langue = '.$id_langue;
Pourriez vous m'aider?

Merci
weeber est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/02/2007, 21h30   #2
Membre éprouvé
 
Avatar de goodpz
 
Inscription : février 2007
Messages : 475
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 475
Points : 474
Points : 474
WHERE Id_page = '.$id_page '

C'est plutôt ceci que tu veux:

WHERE Id_page = '.$id_page.'
goodpz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/02/2007, 21h39   #3
Invité de passage
 
Inscription : octobre 2006
Messages : 12
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 12
Points : 2
Points : 2
Oui tu avais raison! mais maintenant il me met:
Code :
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
weeber est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/02/2007, 21h52   #4
Membre éprouvé
 
Avatar de goodpz
 
Inscription : février 2007
Messages : 475
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 475
Points : 474
Points : 474
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é.
goodpz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/02/2007, 22h48   #5
Invité de passage
 
Inscription : octobre 2006
Messages : 12
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 12
Points : 2
Points : 2
Code :
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 :
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';
weeber est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/02/2007, 23h03   #6
Membre éprouvé
 
Avatar de goodpz
 
Inscription : février 2007
Messages : 475
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 475
Points : 474
Points : 474
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
goodpz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/02/2007, 23h07   #7
Invité de passage
 
Inscription : octobre 2006
Messages : 12
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 12
Points : 2
Points : 2
C'est bon trouvé!
Code :
$id_langue = $_SESSION['language_id'];
est ce qu'il y aurais quelqu'un qui pourrais vérifier mon code quand j'aurais fini?
weeber est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2007, 11h27   #8
Invité de passage
 
Inscription : octobre 2006
Messages : 12
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 12
Points : 2
Points : 2
Bonjour,
je me permet à nouveau de demander de l'aide car convertir ce tutorial me tient à coeur, apres de nombreux essais, j'en vien a demander ceci:
Une personne connaissant bien PDO et MySQL pourrait'elle me convertir la requete PDO suivante en requete Mysql?
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
	global $db;
 
	$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();
 
	$_ENV['mots_cles'] = $tabl_result['Mots_cles'];
	$_ENV['description'] = $tabl_result['Description'];
	$_ENV['titre'] = $tabl_result['Titre'];
	$_ENV['contenu'] = $tabl_result['Contenu'];
	$_ENV['id_parent'] = $tabl_result['Id_parent'];
Merci d'avance
weeber 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 04h20.


 
 
 
 
Partenaires

Hébergement Web