Inclure dans le HTML le resultat de requetes PHP [Résolu/Fermé]

Signaler
Messages postés
122
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
29 mai 2016
-
Messages postés
122
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
29 mai 2016
-
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 ?

11 réponses

Messages postés
840
Date d'inscription
vendredi 2 novembre 2012
Statut
Membre
Dernière intervention
20 décembre 2015
117
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]; 
}
Messages postés
122
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
29 mai 2016
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."

" } ?>
Messages postés
5374
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
873
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
Messages postés
122
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
29 mai 2016
1
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
Messages postés
122
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
29 mai 2016
1
Vraiment personne n'a d'idée de potentielle solution ? :s
Messages postés
5374
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
873
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>" 
}  
Messages postés
122
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
29 mai 2016
1
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 ...
Messages postés
43
Date d'inscription
mardi 11 décembre 2012
Statut
Membre
Dernière intervention
5 juin 2013

Dites, il n'y aurai pas un problème au niveau des guillemets ? Je vais chercher...
Messages postés
43
Date d'inscription
mardi 11 décembre 2012
Statut
Membre
Dernière intervention
5 juin 2013

:/ Rien trouvé du côté des guillemets, pourtant ça ressemble à cela quand on ne oublie une des fois.
Messages postés
5374
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
873
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é ?
Messages postés
122
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
29 mai 2016
1
C'est également l'impression que cela me donne mais je ne comprend absolument pas pourquoi.
Messages postés
5374
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
873
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();
	}
 
 
?>
Messages postés
122
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
29 mai 2016
1
C'est bon, j'ai réussi à régler le problème en employant une boucle while. Merci de votre aide :)