Affichage avec requete php |
Répondre |
Auteur |
Sujet Recherche Options des sujets
|
nico38
Senior Member Depuis le: 18 Jan 2014 Status: Inactif Points: 3967 |
Options des messages
Thanks(0)
Envoyé : 03 Nov 2016 à 22:09 |
bonjour,
je suis plutôt un habitué de mysqli donc niveau syntaxe de connexion avec sqlite3 je flanche : si je me connecte à la base avec un chemin écrit à la main je peux afficher ce que contient la table : $bdd = new PDO('sqlite:D:/Documents/openElement/Blog/Data/Local_previs_DB/oedb.db', '', ''); ... while ($donnees = $reponse->fetch()) { echo $donnees['html']; //ça marche j'affiche le contenu de la table } Mais si j'utilise dirname(__FILE__) j'ai un message d'erreur : $bdd = new PDO('sqlite:'.dirname(__FILE__).'/oedb.db'); while ($donnees = $reponse->fetch()) { echo $donnees['html']; } message d'erreur : Fatal error: Call to a member function fetch() on a non-object in D:\Documents\..... j'ai essayé avec " $_SERVER[HTTP_HOST]" et autres mais sans succès |
|
Un lien vers ton site tu enverras | Problème d'affichage ? ---> CTRL+F5 | Couleur des liens --> "Styles des liens"
|
|
Dmit OE
Admin Group Depuis le: 31 Mai 2012 Status: Inactif Points: 13971 |
Options des messages
Thanks(0)
|
Bonsoir,
1) d'ou vient $reponse? 2) Pas besoin d'utiliser dirname(__FILE__), utilisez __DIR__ pour le meme resultat 3) Faites var_dump(__DIR__) pour voir ce que ca donne come chemin. C'est le dossier ou se trouve le script contenant le code (et non la page qui l'inclut, sauf si le code est directement dans la page evidemment), et j'imagine qu'il faut ajouter quelque chose pour construire le chemin vers oedb.db.
|
|
nico38
Senior Member Depuis le: 18 Jan 2014 Status: Inactif Points: 3967 |
Options des messages
Thanks(0)
|
J'ai mis le code php dans un bloc visuel (pour l'instant)
1) $reponse vient de : $bdd = new PDO('sqlite:D:/Documents/openElement/Blog/Data/Local_previs_DB/oedb.db', '', ''); $reponse = $bdd->query('SELECT html, name FROM oe_bk01_html ORDER BY random() LIMIT 3'); while ($donnees = $reponse->fetch()) { var_dump(__DIR__); } var_dump(__DIR__) renvoie (sans utiliser DIR dans la connexion à la BDD) : string(49) "D:\Documents\openElement\Blog\articles\categorie1" si j'utilise : $bdd = new PDO('sqlite:'.__DIR__.'/oedb.db'); j'ai le message d'erreur suivant : Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 1 no such table: oe_bk01_html' in D:\Documents\openElement\Blog\articles\categorie1\article-10.php:394 Stack trace: #0 D:\Documents\openElement\Blog\articles\categorie1\article-10.php(394): PDO->query('SELECT html, na...') #1 {main} thrown in D:\Documents\openElement\Blog\articles\categorie1\article-10.php on line 394 PS : le code entier pour me connecter <?php try { $bdd = new PDO('sqlite:D:/Documents/openElement/Blog/Data/Local_previs_DB/oedb.db', '', ''); $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(Exception $e) { die('Erreur : '.$e->getMessage()); } $reponse = $bdd->query('SELECT html, name FROM oe_bk01_html ORDER BY random() LIMIT 3'); while ($donnees = $reponse->fetch()) { echo '<article>'; echo $donnees['html'] . '<br />'; echo '</article>'; } $reponse->closeCursor(); ?> Edité par nico38 - 04 Nov 2016 à 19:12 |
|
Un lien vers ton site tu enverras | Problème d'affichage ? ---> CTRL+F5 | Couleur des liens --> "Styles des liens"
|
|
Dmit OE
Admin Group Depuis le: 31 Mai 2012 Status: Inactif Points: 13971 |
Options des messages
Thanks(0)
|
Le chemin vers le fichier BDD est:
D:/Documents/openElement/Blog/Data/Local_previs_DB/oedb.db __DIR__.'/oedb.db' donne D:\Documents\openElement\Blog\articles\categorie1/oedb.db qui est bien evidemment mauvais Il faut faire __DIR__.'/../../Data/Local_previs_DB/oedb.db' Le probleme c'est que ca marchera uniquement en local. Il faut par exemple mettre une condition sur $_SERVER['HTTP_HOST'] pour choisir le bon chemin selon si c'est en local (strpos($_SERVER['HTTP_HOST'], 'localhost') !== false) ou en ligne
|
|
nico38
Senior Member Depuis le: 18 Jan 2014 Status: Inactif Points: 3967 |
Options des messages
Thanks(0)
|
déjà si je mets le site en ligne et que je mets l'url totale ça ne marche pas :
$bdd = new PDO('sqlite:http://mon_site.fr/Data/SQLite_DB/oedb.db','',''); Il y a un mot de passe ou login à entrer ?
Erreur : SQLSTATE[HY000] [14] unable to open database file |
|
Un lien vers ton site tu enverras | Problème d'affichage ? ---> CTRL+F5 | Couleur des liens --> "Styles des liens"
|
|
Dmit OE
Admin Group Depuis le: 31 Mai 2012 Status: Inactif Points: 13971 |
Options des messages
Thanks(0)
|
Il ne faut pas confondre les chemins physiques sur le disque du serveur (ex. __DIR__ . "/....") et l'URL pour acceder en HTTP. Vous ne pouvez pas acceder au fichier BDD en utilisant un URL (http://...).
Edité par Dmit OE - 05 Nov 2016 à 12:15 |
|
Répondre | |
Tweet
|
Aller au Forum | Permissions du forum Vous ne pouvez pas écrire un nouveau Sujet Vous ne pouvez pas répondre aux Sujets Vous ne pouvez pas effacer vos messages Vous ne pouvez pas éditer vos messages Vous ne pouvez pas créer des sondages Vous ne pouvez pas voter dans les sondages |