Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
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 20/03/2011, 11h19   #1
Invité régulier
 
Homme
Debutant
Inscription : mars 2011
Messages : 24
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Debutant

Informations forums :
Inscription : mars 2011
Messages : 24
Points : 9
Points : 9
Par défaut beug de mon code pour afficher des donnes BDD a partir de l'id transmise

Bonjour,

mon probleme est le suivant: je cree un systeme de blog, et je veux ouvrir un page commune article.php pour tous les articles et je veux envoyer avec GET l'id de l'article concerné et en profité, une fois sur la page article.php pour recuperer toutes les autres donnes correspondant a cet ID et aussi les commentaires par la suite.
1erement je preferais faire un lien permanent par aticle mais j'ai pas encore compris lURL rewriting
2emement j'ai du mal a resoudre mes erreurs pcq meme si la formation du siteduZero etait interessante, elle ne me permet pas de bien comprendre les fonctions ni le les manier ou meme d'en choisir de plus adaptes.

Voici dont mes codes:

le lien pour afficher l'article dans une page specifique sur index.php:
Code :
<a href="article.php?id=<?php echo $donnees['id'] ?>">commentaire ()</a>
et le code de article.php:
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
		<?php
 
			if (isset($_GET['id']))
			{
				try
				{
					$bdd = new PDO('mysql:host=localhost;dbname=citations', 'root' , '');
					$req=$bdd->exec('SELECT id, titre, categorie, article, DATE_FORMAT(date_art, \'%d/%m/%Y à %Hh%imin\') AS date_art_fr FROM billet WHERE id = ' . $_GET['id']);
 
						while ($donnees = $req->fetchAll())
					{
		?>
 
		<div class="articles">
 
			<span id="titre"><?php echo $donnees['titre']; ?></span><br />
			<span id="date"><?php echo $donnees['date_art_fr']; ?><br />
			Catégorie : </span><span id="categorie"><?php echo $donnees['categorie']; ?></span>
 
			<div id="article"><?php echo nl2br($donnees['article']); ?></div>
 
 
		</div>
 
		<?php
					}
 
					$req->closeCursor();
				}
 
				catch(Exception $e)
				{
				die('Erreur : '.$e->getMessage());
				}
			}
		?>

voila je pense que mon probleme vient de l'utilisation de if et de try/while, le probleme c'est que je ne connais pas d'alternative.

L'erreur qui m'apparait et la suivante :
Fatal error: Call to a member function fetchAll() on a non-object in C:\wamp\www\citations\article.php on line 39
line 39 etant la fonction while

Merci de votre aide
gael-abdelhadi est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 20/03/2011, 11h49   #2
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Relisez la documentation, exec ne renvoie pas un objet PDOStatement et ne convient pas à une requête SELECT. C'est la méthode query qu'il faudrait utiliser en non-préparé.

(belle injection, au passage)
julp est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 20/03/2011, 12h11   #3
Invité régulier
 
Homme
Debutant
Inscription : mars 2011
Messages : 24
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Debutant

Informations forums :
Inscription : mars 2011
Messages : 24
Points : 9
Points : 9
Merci deja de votre reponse super rapide et aussi de m'avoir bebeuge ce fatal error et de m'avoir appris la difference entre query et exec.

Pour l'injection je dois remercier m4riachi qui me l'a apprise.


Maintenant j'ai un nouveau probleme puisque ca ne semlbe pas réussir a appeler les donnes correspondantes a l'ID tramsise ca me donne ca pour chaque donnees appeler :

Notice: Undefined index: titre in C:\wamp\www\citations\article.php on line XX
gael-abdelhadi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2011, 12h24   #4
Membre régulier
 
Inscription : juin 2008
Messages : 105
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 105
Points : 84
Points : 84
Salut, c'est probablement qu'il ne trouve le champ titre dans ta bd, regarde s'il est présent et s'il n'est pas en majuscule par ex.

Alpha.
alpha232 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2011, 12h41   #5
Invité régulier
 
Homme
Debutant
Inscription : mars 2011
Messages : 24
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Debutant

Informations forums :
Inscription : mars 2011
Messages : 24
Points : 9
Points : 9
c'est vrai que le titre est en majuscule et avec des espace, mais cette erreur apparait aussi pour la categorie, la date, le contenu, pour toutes les donnees que j'appelle en fait.
gael-abdelhadi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2011, 12h56   #6
Invité régulier
 
Homme
Debutant
Inscription : mars 2011
Messages : 24
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Debutant

Informations forums :
Inscription : mars 2011
Messages : 24
Points : 9
Points : 9
ouf! j'ai fini par resoudre le probleme.

Pour ceux que ca peux interesser j'ai simplement enlever la fonction while pour le laisser que :

$donnees = $req->fetch();

voila donc apparement la fonction while n'avait pas sa place ici.

Merci a julp pour l'eclaircissement sur l'utilisation de 'exec' et de 'query'.
Mais une petite question malgre tout, j'ai vu 'prepare' aussi, quelle est la difference avec query ?
gael-abdelhadi est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



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


 
 
 
 
Partenaires

Hébergement Web