Inclure dans le HTML le resultat de requetes PHP

Résolu
hiddan Messages postés 127 Statut Membre -  
hiddan Messages postés 127 Statut Membre -
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

  1. Nhay Messages postés 838 Date d'inscription   Statut Membre Dernière intervention   126
     
    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]; 
    }
    0
  2. hiddan Messages postés 127 Statut Membre 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."

    " } ?>
    0
  3. Alain_42 Messages postés 5413 Statut Membre 904
     
    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
    0
  4. hiddan Messages postés 127 Statut Membre 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
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. hiddan Messages postés 127 Statut Membre 1
     
    Vraiment personne n'a d'idée de potentielle solution ? :s
    0
  7. Alain_42 Messages postés 5413 Statut Membre 904
     
    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>" 
    }  
    
    0
  8. hiddan Messages postés 127 Statut Membre 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 ...
    0
    1. eliepse Messages postés 47 Statut Membre
       
      Dites, il n'y aurai pas un problème au niveau des guillemets ? Je vais chercher...
      0
    2. eliepse Messages postés 47 Statut Membre
       
      :/ Rien trouvé du côté des guillemets, pourtant ça ressemble à cela quand on ne oublie une des fois.
      0
  9. Alain_42 Messages postés 5413 Statut Membre 904
     
    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é ?
    0
  10. hiddan Messages postés 127 Statut Membre 1
     
    C'est également l'impression que cela me donne mais je ne comprend absolument pas pourquoi.
    0
  11. Alain_42 Messages postés 5413 Statut Membre 904
     
    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();
    	}
     
     
    ?>
    0
  12. hiddan Messages postés 127 Statut Membre 1
     
    C'est bon, j'ai réussi à régler le problème en employant une boucle while. Merci de votre aide :)
    0