BullGuard Antivirus Sale - 60% Off with openElement !
Accueil Forum Accueil Forum >

openElement

> OE dynamique - bases de données etc.
  Nouveaux messages Nouveaux messages Fil RSS  - Affichage avec requete php
  FAQ FAQ  Rechercher dans le Forum   Inscription Inscription  Connexion Connexion

Affichage avec requete php

 Répondre Répondre
Auteur
Message
nico38 allez vers le bas
Senior Member
Senior Member


Depuis le: 18 Jan 2014
Status: Inactif
Points: 3967
Options des messages Options des messages   Thanks (0) Thanks(0)   Citer nico38 Citer  RépondreRéponse Lien Direct à ce Post Sujet: Affichage avec requete php
    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"
Haut de la page
Dmit OE allez vers le bas
Admin Group
Admin Group


Depuis le: 31 Mai 2012
Status: Inactif
Points: 13971
Options des messages Options des messages   Thanks (0) Thanks(0)   Citer Dmit OE Citer  RépondreRéponse Lien Direct à ce Post Envoyé : 03 Nov 2016 à 23:50
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.
Haut de la page
nico38 allez vers le bas
Senior Member
Senior Member


Depuis le: 18 Jan 2014
Status: Inactif
Points: 3967
Options des messages Options des messages   Thanks (0) Thanks(0)   Citer nico38 Citer  RépondreRéponse Lien Direct à ce Post Envoyé : 04 Nov 2016 à 19:11
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"
Haut de la page
Dmit OE allez vers le bas
Admin Group
Admin Group


Depuis le: 31 Mai 2012
Status: Inactif
Points: 13971
Options des messages Options des messages   Thanks (0) Thanks(0)   Citer Dmit OE Citer  RépondreRéponse Lien Direct à ce Post Envoyé : 04 Nov 2016 à 20:53
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
Haut de la page
nico38 allez vers le bas
Senior Member
Senior Member


Depuis le: 18 Jan 2014
Status: Inactif
Points: 3967
Options des messages Options des messages   Thanks (0) Thanks(0)   Citer nico38 Citer  RépondreRéponse Lien Direct à ce Post Envoyé : 05 Nov 2016 à 10:50
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"
Haut de la page
Dmit OE allez vers le bas
Admin Group
Admin Group


Depuis le: 31 Mai 2012
Status: Inactif
Points: 13971
Options des messages Options des messages   Thanks (0) Thanks(0)   Citer Dmit OE Citer  RépondreRéponse Lien Direct à ce Post Envoyé : 05 Nov 2016 à 12:14
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
Haut de la page
 Répondre Répondre
  Partagez ce sujet   

Aller au Forum Permissions du forum allez vers le bas

Forum Software by Web Wiz Forums® version 12.04
Copyright ©2001-2021 Web Wiz Ltd.

Cette page a été affichée en 0.078 secondes.