Inclure dans le HTML le resultat de requetes PHP
Résolu
Bonjour,
Je travaille avec une base de données sqlite3, j'aimerais créer une page contenant des présentations de différentes personnes. Pour cela je souhaiterais faire appel à ma base de données.
Voici mon morceau de code :
<?php
try { $bdd = new sqlite3('Base/bibliotheque.db'); }
catch (Exception $e) { die('Erreur : ' . $e->getMessage()); }
?>
<?php
$reponse = $bdd->query('SELECT nomAuteur, prenomAuteur FROM AUTEUR');
for ($i=0;$i<lenght(reponse);$i++)
{$auteur=reponse(i);
$nom = auteur(0);
$prenom = auteur(1);
echo "<div id='sections'>
<p id='titre'>" .$nom." ".$prenom." </p>
</div>"
}
?>
Seulement ce code ne fonctionne pas et je n'arrive pas à voir pourquoi.
Pourriez vous m'aider ?
Je travaille avec une base de données sqlite3, j'aimerais créer une page contenant des présentations de différentes personnes. Pour cela je souhaiterais faire appel à ma base de données.
Voici mon morceau de code :
<?php
try { $bdd = new sqlite3('Base/bibliotheque.db'); }
catch (Exception $e) { die('Erreur : ' . $e->getMessage()); }
?>
<?php
$reponse = $bdd->query('SELECT nomAuteur, prenomAuteur FROM AUTEUR');
for ($i=0;$i<lenght(reponse);$i++)
{$auteur=reponse(i);
$nom = auteur(0);
$prenom = auteur(1);
echo "<div id='sections'>
<p id='titre'>" .$nom." ".$prenom." </p>
</div>"
}
?>
Seulement ce code ne fonctionne pas et je n'arrive pas à voir pourquoi.
Pourriez vous m'aider ?
11 réponses
-
Ceci me paraît étrange :
$auteur=reponse(i); $nom = auteur(0); $prenom = auteur(1);
Ce n'est pas plutôt :
$auteur=reponse[i]; $nom = auteur[0]; $prenom = auteur[1];
?
après ta boucle me paraît aussi bizarre, mais ça viens peut-être de ta base de donnée que je n'utilise pas.
J'ai plus l'habitude de voir ça :while($auteur=mysql_fetch_row($reponse)){ $nom = $auteur[0]; $prenom = $auteur[1]; } -
Effectivement, je n'avais pas fait attention aux parenthèses.
Ce qui m'étonne le plus c'est ce que j'obtiens sur ma page :
getMessage()); } ?> query('SELECT nomAuteur, prenomAuteur FROM AUTEUR'); for ($i=0;$i
" .$nom." ".$prenom."
" } ?> -
for ($i=0;$i<lenght(reponse);$i++)
en php ce ne serait pas plutot:
for ($i=0;$i<sizeof($reponse);$i++)
et
$nom = $auteur[0]; $prenom = $auteur[1];
tu as tendance a oublier le $ devant les varaibles -
J'ai effectivement tendance à oublier les $ devant les variables dans le deuxième terme des égalités.
Malgré ces corrections je ne parviens pas à obtenir ce que je souhaite :s -
Vraiment personne n'a d'idée de potentielle solution ? :s
-
salut essayes comme ça:
et verifies le chemin vers ta bdd Base/bibliotheque.db<?php function sqlite_open($location) { $handle = new SQLite3($location); return $handle; } function sqlite_query($dbhandle,$query) { $array['dbhandle'] = $dbhandle; $array['query'] = $query; $result = $dbhandle->query($query); return $result; } function sqlite_fetch_array($result,$type) { #Get Columns $i = 0; while ($result->columnName($i)) { $columns[ ] = $result->columnName($i); $i++; } $resx = $result->fetchArray(SQLITE3_ASSOC); return $resx; } $bdd=sqlite_open('Base/bibliotheque.db'); $query="SELECT nomAuteur, prenomAuteur FROM AUTEUR"; $reponse=sqlite_query($bdd,$query); $array=sqlite_fetch_array($reponse); for ($i=1;$i<=sizeof($array);$i++) { $nom = $array['nomAuteur']; $prenom = $array['prenomAuteur']; echo "<div id='sections'>"; echo 'Auteur n°: '.$i; echo "<p id='titre'>" .$nom." ".$prenom." </p> </div>" } -
Tout d'abord merci de votre aide :)
J'ai bien vérifié le chemin d'accès à la base de données, ce n'est pas de là que vient le problème.
Après modification la page me renvoie :
query($query); return $result; } function sqlite_fetch_array($result,$type) { #Get Columns $i = 0; while ($result->columnName($i)) { $columns[ ] = $result->columnName($i); $i++; } $resx = $result->fetchArray(SQLITE3_ASSOC); return $resx; } $bdd=sqlite_open('Base/bibliotheque.db'); $query="SELECT nomAuteur, prenomAuteur FROM AUTEUR"; $reponse=sqlite_query($bdd,$query); $array=sqlite_fetch_array($reponse); for ($i=1;$i<=sizeof($array);$i++) { $nom = $array['nomAuteur']; $prenom = $array['prenomAuteur']; echo ""; echo 'Auteur n°: '.$i; echo "
" .$nom." ".$prenom."
" }
J'avoue n'y rien comprendre ... -
moi non plus je ne comprend pas trop, je ne connais pas du tout sqlite3.
On a l'impression qu'à partir d'un certain moment ($result = $dbhandle->) le php n'est plus interprété ? -
C'est également l'impression que cela me donne mais je ne comprend absolument pas pourquoi.
-
essayes comme ça:
<?php try { $bdd = new PDO('sqlite:Base/bibliotheque.db'); $reponse = $bdd->query('SELECT nomAuteur, prenomAuteur FROM AUTEUR'); for ($i=1;$i<=sizeof($reponse);$i++) { $nom = $reponse['nomAuteur']; $prenom =$reponse['prenomAuteur']; echo "<div id='sections'>"; echo 'Auteur n°: '.$i; echo "<p id='titre'>" .$nom." ".$prenom." </p> </div>" } // close the database connection $bdd = NULL; } catch(PDOException $e) { echo 'Exception : '.$e->getMessage(); } ?> -
C'est bon, j'ai réussi à régler le problème en employant une boucle while. Merci de votre aide :)