Pages : 1
#1 Le 26/10/2014, à 18:12
- thenofx68
[RESOLU] Erreur PHP-MySQL d'affichage
Bonjour,
J'ai récemment installé un serveur LAMP sur ma partition Ubuntu 13.10.
Tout fonctionne pour le mieux, il gère sans problème HTML, CSS, PHP etc... mais j'ai un problème lorsque je tente de récupérer le contenu d'une base de données MySQL hébergée sur la même partiton que mon serveur.
Voici le script qui ne marche pas, si j'enlève toute la partie qui touche à MySQL, la page s'affiche correctement.
<html>
<head>
<title>Test MySQL</title>
</head>
<body>
<center><h1> Test MySQL</h1></center>
<center>
<?php
echo 'patate'
try {
$bdd = new PDO('mysql:host=localhost;dbname=apache2','root','passwd');
}
catch(Exception $e) {
die('ERREUR : '.$e-getMessage());
}
$reponse = $bdd->query('SELECT title, text, link FROM news ORDER BY ID DESC LIMIT 0, 10');
while($donnees=$reponse->fetch()) {
echo '<table border="2"> <tr> <td>'.$donnees['title'].'</td></tr> <tr> <td>'.$donnees['text'].'</td></tr></table>'
}
$reponse->closeCursor();
?>
</center>
</body>
</html>
Lien du screen de ma fenêtre Firefox : http://imageshack.com/a/img661/1391/RdVQjj.png
La même page, toute la partie MySQL enlevée :
<html>
<head>
<title>Test MySQL</title>
</head>
<body>
<center><h1> Test MySQL</h1></center>
<center>
<?php
echo 'patate'
?>
</center>
</body>
</html>
Lien du screen de ma fenètre firefox : http://imageshack.com/a/img661/9973/qj826v.png
Info 1 : La page tourne bien sous windows, avec wampserver.
Info 2 : le "echo 'patate' " est là seulement pour tester.
Si quelqu'un a une solution, pourrait-il la partager? merci !
Dernière modification par thenofx68 (Le 27/10/2014, à 14:50)
Hors ligne
#2 Le 27/10/2014, à 09:31
- bruno
Re : [RESOLU] Erreur PHP-MySQL d'affichage
Bonjour,
Si tu utilises ta machine à des fins de développement il faut que tu actives l’affichage des erreurs dans le navigateur en mettant la directive display_errors = on dans le fichier /etc/php5/apache2/php.ini. Ou alors tu gardes une console ouverte qui affiche en temps réel les logs d'erreurs d'Apache, mais c'est moins pratique.
Dans le code que tu donnes, il manque un point-virgule à la fin de l'instruction echo. Ceci va forcément générer une erreur fatale de PHP, ensuite s'il y a un souci avec la connexion à la base de données il faudra regarder l'erreur retournée.
Dernière modification par bruno (Le 27/10/2014, à 09:32)
Hors ligne
#3 Le 27/10/2014, à 12:53
- thenofx68
Re : [RESOLU] Erreur PHP-MySQL d'affichage
Dans le code que tu donnes, il manque un point-virgule à la fin de l'instruction echo. Ceci va forcément générer une erreur fatale de PHP
En effet, je l'avais oublié, merci!
Si tu utilises ta machine à des fins de développement il faut que tu actives l’affichage des erreurs dans le navigateur en mettant la directive display_errors = on dans le fichier /etc/php5/apache2/php.ini.
J'utilise en effet un serveur local pour ne pas avoir à réup la page à chaque modification, je vais changer ça merci !
Au moment où j'écris ce message, je suis sous windows donc je ne peux pas tester, mais je ferai ça dès que je retournerai sous linux.
En tout cas, merci beaucoup.
Hors ligne
#4 Le 27/10/2014, à 13:19
- Morgiver
Re : [RESOLU] Erreur PHP-MySQL d'affichage
Il manque un ";" à la fin de ton echo (dans les deux exemples que tu donnes).
echo 'patate';
edit : Faut pas oublier de terminer tes instructions par un ";"
edit 2 : d'ailleurs si tu regardes ton deuxième echo dans ta boucle, il manque également un ";".
Le ";" peut être manquant à partir du moment où c'est la dernière instruction de ton bloc.
http://php.net/manual/fr/language.basic … ration.php
Comme en C ou en Perl, PHP requiert que les instructions soient terminées par un point-virgule à la fin de chaque instruction. La balise fermante d'un bloc de code PHP implique automatiquement un point-virgule ; vous n'avez donc pas besoin d'utiliser un point-virgule pour terminer la dernière ligne d'un bloc PHP. La balise fermante d'un bloc inclura immédiatement un caractère de nouvelle ligne si un est présent.
Dernière modification par Morgiver (Le 27/10/2014, à 13:38)
Hors ligne
#5 Le 27/10/2014, à 13:54
- mazarini
Re : [RESOLU] Erreur PHP-MySQL d'affichage
La première chose à faire est de modifier le php.ini qui est de base prévu pour de la production et non pour du développement. Remplacer display_error = Off par displai_error = On (/etc/php5/apache2/php.ini). Ca permet de voir les messages d'erreur à l'écran facilement, autrement, les message sont dans le fichier log de php.
S'il existait une école de la politique, les locaux devraient être édifiés rue de la Santé. Les élèves pourraient s'habituer. (Pierre Dac)
Hors ligne
#6 Le 27/10/2014, à 14:17
- Rufus T. Firefly
Re : [RESOLU] Erreur PHP-MySQL d'affichage
Salut,
Il y a un truc qui m'étonne un peu : dbname=apache2
Tu as effectivement une base qui se nomme apache2 ? Moi j'essayerais d'éviter ce genre de noms sauf nécessité logique (et encore).
Edit : dans php.ini tu peux aussi inactiver les ShortOpenTags, qui peuvent poser problème avec certaines en-têtes xml...
Le seul inconvénient c'est que ça t'oblige à commencer avec <?php et non pas avec seulement <?
Dernière modification par Rufus T. Firefly (Le 27/10/2014, à 14:26)
La provocation est une façon de remettre la réalité sur ses pieds. (Bertolt Brecht)
Il n'y a pas de route royale pour la science et ceux-là seulement ont chance d'arriver à ses sommets lumineux qui ne craignent pas de se fatiguer à gravir ses sentiers escarpés. (Karl Marx)
Il est devenu plus facile de penser la fin du monde que la fin du capitalisme
Hors ligne
#7 Le 27/10/2014, à 14:46
- thenofx68
Re : [RESOLU] Erreur PHP-MySQL d'affichage
Déjà merci à tous pour vos réponses, problême résolu.
Dans le code que tu donnes, il manque un point-virgule à la fin de l'instruction echo
Il manque un ";" à la fin de ton echo (dans les deux exemples que tu donnes).
Oui en effet, je l'avais oublié.
Il y a un truc qui m'étonne un peu : dbname=apache2
Tu as effectivement une base qui se nomme apache2 ? Moi j'essayerais d'éviter ce genre de noms sauf nécessité logique (et encore).
Je tiens à préciser que ce nom est temporaire, que je l'ai mis car je ne savais pas quoi mettre, et qu'il ne sert qu'aux tests.
Pour moi, c'est résolu.
Hors ligne
Pages : 1