Séparation php et html

Petit nouveau ! | 7 Messages

01 août 2010, 12:50

Bonjour,

Ma question est la suivante :
J'ai une requête basique en PDO
<?php require_once('connect.php'); ?>
<?php
try
{

$sql="SELECT * from test ";
$qid=$cnx->prepare($sql);
$qid->execute();

while($row=$qid->fetch(PDO::FETCH_OBJ))
{
	echo $row->titre.' '.$row->contenu.'<br />';
}

$qid->closeCursor();

$cnx = null;
}


catch (PDOException $e) 
{	
echo 'N∞ : '.$e->getCode().'<br />';
die ('Erreur : '.$e->getMessage().'<br />');
}
?>
Un select qui récupère des données dans la BDD.
Ensuite un while qui boucle mon résultat et je l'affiche avec un echo.
Ce que je souhaiterais c'est afficher le résultat de cette boucle en dessous dans une partie HTML tout simplement.
Merci d'avance.

Petit nouveau ! | 7 Messages

01 août 2010, 13:03

Une solution que j'ai trouvée:
<?php require_once('connect.php'); ?>
<?php
try
{

$sql="SELECT * from tutoriel ";
$qid=$cnx->prepare($sql);
$qid->execute();

while($row=$qid->fetch(PDO::FETCH_OBJ))
{
	?>
	
		
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <title>Sharetuts</title>
    <style>
    .test{margin-left:155px;}
    </style>
</head>
<body>
	<div class='test'>
    <? echo $row->titre.' '.$row->contenu.'<br />'; ?>
    </div>
</body>
</html>


<?php
/*/On ferme la boucle/*/
}
?>


<?php
/*/	On ferme la connexion	/*/
$qid->closeCursor();
$cnx = null;
}

catch (PDOException $e) 
{	
echo 'N∞ : '.$e->getCode().'<br />';
die ('Erreur : '.$e->getMessage().'<br />');
}
?>



Est-ce une bonne méthode pour intégrer du php dans du HTML?
Merci.

ViPHP
ViPHP | 5462 Messages

01 août 2010, 16:56

non c'est pas bon tu boucle tout le html la

ne met que la connexion dans le try...catch, active la gestion d'erreur en warring, ta pas besion de faire un try..catch sur ta requête, ta requete preparer est inutile ici aussi, utilise query a la place :wink:

<?php
    require_once('connect.php');
    $sql="SELECT * from tutoriel ";
    $qid=$cnx->prepare($sql);
    $qid->execute();
?>     
               
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <title>Sharetuts</title>
    <style>
    .test{margin-left:155px;}
    </style>
</head>
<body>
        <div class='test'>
    <?php
    while($row=$qid->fetch(PDO::FETCH_OBJ))
    {
        echo $row->titre.' '.$row->contenu.'<br />'; 
    }
    ?>
    </div>
</body>
</html>


Petit nouveau ! | 7 Messages

01 août 2010, 17:57

D'accord, voici mon résultat
<?php require_once('connect.php'); ?>
<?php
try
{

$sql="SELECT * from tutoriel ";
$qid=$cnx->prepare($sql);
$qid->execute();

while($row=$qid->fetch(PDO::FETCH_OBJ))
{
    $tutos[] = $row; 
}

/*/  On ferme la connexion  /*/
$qid->closeCursor();
$cnx = null;
}

catch (PDOException $e) 
{  
echo 'N∞ : '.$e->getCode().'<br />';
die ('Erreur : '.$e->getMessage().'<br />');
}
?>
  
    
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
	<meta http-equiv="content-type" content="text/html; charset=utf-8" />
  <head>
      <title>Sharetuts</title>
      <style>
      .test{margin-left:155px;}
      </style>
  </head>
  <body>
    <div class='test'>
      <?php foreach($tutos as $v): ?>
               <p><?php echo $v->titre; ?></p>
            <?php endforeach; ?>
      </div>
  </body>
  </html>

ViPHP
ViPHP | 5462 Messages

01 août 2010, 19:50

while($row=$qid->fetch(PDO::FETCH_OBJ))
{
    $tutos[] = $row;
}
c'est inutile dans ce cas la utilise fetchAll

Petit nouveau ! | 7 Messages

02 août 2010, 18:13

Ok merci beaucoup :)