par
two3d » 14 juil. 2020, 10:06
Quelques astuces et remarques:
Ton code est faux avec tes fermetures de liste HTML (ul), lors d'une decalration de liste, tu a l'ouverture: <ul> et la fermeture: </ul> et là ton code dès qu'il fait une boucle, tu lui dit de mettre une fermeture (</ul>) tu pux l'enlever car la fermeture ce passe après toutes les boucles (il est présent en bas de ton code donc c'est bon mais il te faut l'ouvrir en haut de ton code, là tu as un paragraphe (<p>)

)
Tu peux raccourcir ton PHP, exe: quand tu fait des conditions, tu si tu prends juste le if, tu na pas besoin de mettre else {} <- rien, ça sert à rien, tu peux l’omettre.
Dans ce même exemple, les accolades ne sont pas nécessaires si tu à qu'une seule ligne après ta condition, ton code deviendrait:
if(condition) echo "quelque chose";
//et plus:
if(condition){echo "quelque chose";} else {}
Des caractères en moins, plus des caractères en moins ça fait un code plus rapide et moins lourd au final
Ton incrémentation de la variable $i peut être raccourcie:
$i=$i+1;
//devient:
$i++;
Dernière chose, tu devrais passer à mysqli et oublier mysql car l'extension est supprimée en PHP 7.
<?php
// on se connecte à notre base
$base = mysql_connect ('************','*********', '***********');
mysql_select_db ('***********', $base) ;
?>
<?php
$sql = "
SELECT
`TBLInscritsEnt`.IDBD,
`TBLInscritsEnt`.HO,
`TBLInscritsEnt`.Souhait,
`TBLInscritsEnt`.PRENOMS,
`TBLInscritsEnt`.NOMS,
`TblOuverture`.IDBD,
DATE_FORMAT(`TblOuverture`.DateOuv, '%d-%m-%Y') as DateOuv,
`TblOuverture`.Jour,
DATE_FORMAT(`TblOuverture`.Horaire,'%H:%i') as Horaire,
DATE_FORMAT(`TblOuverture`.HoraireF,'%H:%i') as Horairea,
`TblOuverture`.HoraireF,
`TblOuverture`.Encadrant,
`TblOuverture`.Type,
`TblOuverture`.Description,
`TblOuverture`.Qualification
FROM
`TblOuverture`
LEFT JOIN
`TBLInscritsEnt`
ON
`TblOuverture`.IDBD=`TBLInscritsEnt`.IDBD
WHERE `DateOuv`BETWEEN DATE(NOW() - INTERVAL WEEKDAY(now()) DAY)
AND DATE(NOW() + INTERVAL 15 DAY)
ORDER by `TblOuverture`.DateOuv,`TblOuverture`.Horaire,`TBLInscritsEnt`.HO asc
";
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$old=" ";
$i=0;
$oldH=" ";
$iH=0;
while($data = mysql_fetch_assoc($req))
{
if($data['IDBD'] != $old)
{
if($i != 0) {echo "</ul>";}
else
{}
if($data['HO'] != $oldH)
{
if($iH != 0) {echo "</ul>";}
else
{}
echo "<p><strong>" . $data['Jour']. " ". $data['DateOuv']. ", " .$data['Type'] . " à " .$data['Horaire'] .", " .$data['Encadrant'] ."(".$data['Qualification'] .") ".$data['Description']." </strong></p>" // titre de la liste
. "<ul>"
. "<li value=$i>" . $data['HO'] . " : " . $data['NOMS'] . " " . $data['PRENOMS'] ." - " . $data['Souhait'] . "</li>"; // liste des évenements
$old = $data['IDBD'] ;
}
}
else
//{
echo "<li>" . $data['HO'] . " : " . $data['NOMS'] . " " . $data['PRENOMS'] ." - " . $data['Souhait'] . "</li>";
//}
$iH=$iH+1;
$i=$i+1;
}
echo "</ul>";
mysql_free_result ($req);
mysql_close ();
?>
Quelques astuces et remarques:
Ton code est faux avec tes fermetures de liste HTML (ul), lors d'une decalration de liste, tu a l'ouverture: <ul> et la fermeture: </ul> et là ton code dès qu'il fait une boucle, tu lui dit de mettre une fermeture (</ul>) tu pux l'enlever car la fermeture ce passe après toutes les boucles (il est présent en bas de ton code donc c'est bon mais il te faut l'ouvrir en haut de ton code, là tu as un paragraphe (<p>) ;) )
Tu peux raccourcir ton PHP, exe: quand tu fait des conditions, tu si tu prends juste le if, tu na pas besoin de mettre else {} <- rien, ça sert à rien, tu peux l’omettre.
Dans ce même exemple, les accolades ne sont pas nécessaires si tu à qu'une seule ligne après ta condition, ton code deviendrait:
[PHP]if(condition) echo "quelque chose";
//et plus:
if(condition){echo "quelque chose";} else {}[/PHP]
Des caractères en moins, plus des caractères en moins ça fait un code plus rapide et moins lourd au final ;)
Ton incrémentation de la variable $i peut être raccourcie:
[PHP]$i=$i+1;
//devient:
$i++;[/PHP]
Dernière chose, tu devrais passer à mysqli et oublier mysql car l'extension est supprimée en PHP 7.
[php]
<?php
// on se connecte à notre base
$base = mysql_connect ('************','*********', '***********');
mysql_select_db ('***********', $base) ;
?>
<?php
$sql = "
SELECT
`TBLInscritsEnt`.IDBD,
`TBLInscritsEnt`.HO,
`TBLInscritsEnt`.Souhait,
`TBLInscritsEnt`.PRENOMS,
`TBLInscritsEnt`.NOMS,
`TblOuverture`.IDBD,
DATE_FORMAT(`TblOuverture`.DateOuv, '%d-%m-%Y') as DateOuv,
`TblOuverture`.Jour,
DATE_FORMAT(`TblOuverture`.Horaire,'%H:%i') as Horaire,
DATE_FORMAT(`TblOuverture`.HoraireF,'%H:%i') as Horairea,
`TblOuverture`.HoraireF,
`TblOuverture`.Encadrant,
`TblOuverture`.Type,
`TblOuverture`.Description,
`TblOuverture`.Qualification
FROM
`TblOuverture`
LEFT JOIN
`TBLInscritsEnt`
ON
`TblOuverture`.IDBD=`TBLInscritsEnt`.IDBD
WHERE `DateOuv`BETWEEN DATE(NOW() - INTERVAL WEEKDAY(now()) DAY)
AND DATE(NOW() + INTERVAL 15 DAY)
ORDER by `TblOuverture`.DateOuv,`TblOuverture`.Horaire,`TBLInscritsEnt`.HO asc
";
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$old=" ";
$i=0;
$oldH=" ";
$iH=0;
while($data = mysql_fetch_assoc($req))
{
if($data['IDBD'] != $old)
{
if($i != 0) {echo "</ul>";}
else
{}
if($data['HO'] != $oldH)
{
if($iH != 0) {echo "</ul>";}
else
{}
echo "<p><strong>" . $data['Jour']. " ". $data['DateOuv']. ", " .$data['Type'] . " à " .$data['Horaire'] .", " .$data['Encadrant'] ."(".$data['Qualification'] .") ".$data['Description']." </strong></p>" // titre de la liste
. "<ul>"
. "<li value=$i>" . $data['HO'] . " : " . $data['NOMS'] . " " . $data['PRENOMS'] ." - " . $data['Souhait'] . "</li>"; // liste des évenements
$old = $data['IDBD'] ;
}
}
else
//{
echo "<li>" . $data['HO'] . " : " . $data['NOMS'] . " " . $data['PRENOMS'] ." - " . $data['Souhait'] . "</li>";
//}
$iH=$iH+1;
$i=$i+1;
}
echo "</ul>";
mysql_free_result ($req);
mysql_close ();
?>[/php]