[RESOLU] Problème php while()

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Problème php while()

Re: [RESOLU] Problème php while()

par Dsynx » 10 juin 2022, 10:42

Ezuker pour une meilleur lisibilité tu dois apprendre à parsé selon les règles imposé par PHP
pour une meilleur lisibilité si tu ne le fais pas les personnes qui sont reprendre ton code pour de la
maintenance vont ou se moqué de toi ou supprimer ton code et tout recommencer.
je sais, je sais.. je dis pas cela contre toi c'est plus comme les bonnes manière ou bonne pratique
je t'ai donc mis convenablement l'aspect esthétique pour que tu puisse bien voir dans le futur si
tu veux faire bien ça permet un grande lisibilité et c'est beaucoup plus simple pour le repérage des erreurs
faire ce petit effort petit à petit te permettra en transparence dans l'avenir de le faire sans même y penser
ça te sera naturel, évident et agréable à la lecture. je t'invite donc à comparer et voir les différences.

    /**
     * @name  requete
     * @version 1.0
     * @param $forme Formule explication
     * @param $valeur Valeurs explication
     * @param $table Tableau explication
     * @param $action Action explication
     * @param $ordre Ordre explication
     * @return bool|\mysqli_result|void
     */
    function requete($forme, $valeur, $table, $action, $ordre)
    {
        $host = "localhost";
        $base = "agenda";
        $login = "root";
        $passe = "";
        $link = mysqli_connect($host, $login, $passe, $base) or die("connection impossible $base");
        $select_base = mysqli_select_db($link, $base);
        $result = mysqli_query($link, "SELECT DATABASE()");
        if ($forme == "select") {
            $sql = "SELECT $valeur FROM $table $action $ordre";
        }
        if ($forme == "delete") {
            $sql = "DELETE FROM $table $action";
        }
        if ($forme == "update") {
            $sql = "UPDATE $table SET $valeur $action";
        }
        if ($forme == "insert") {
            $sql = "INSERT INTO $table VALUES ($valeur)";
        }
        $result = mysqli_query($link, $sql) or die('Erreur : ' . mysqli_error($result));
        return $result;
    }
et dernier info quand tu as plus de 3 if sur une variable à tester
utilise switch , 3 ou moins de 3 if des elseif et else parfois pour la lisibilité des elseif seront bien mieux "parfois".
je t'ai mis le code avec les switch. pourquoi un switch ? c'est simple tu as la zone defaut donc tu peux gerer
le cas de figurer imprévue ou standar et les exceptions avec case.
et aussi on utilise pas les "" à tous vas. les double cote en PHP sont là pour contenir du texte qui peut contenir des variables donc il y a une préanalyse du contenu alors si on fait d'autre language comme java je sais c'est chiant. mais
en php le mieux est de privilégier les simple cote '' quand tu as du texte sans variable l'interpréteur ne perdra pas de temps à vérifier s'il y a un contenu à interpréter comme une variable. donc simple cote c'est une chaine de caractère pure et double cote une chaine de caractère exotique pouvant contenir des éléments à interpréter donc on évite mais plus bas tu utilise correctement les double cote avec : $sql = "SELECT $valeur FROM $table $action $ordre"; <<- gg
et ici $host = "localhost"; <<- c'est pas une erreur mais ce n'est pas nécessaire les doubles cote.
    /**
     * @name  requete
     * @param $forme Formule explication
     * @param $valeur Valeurs explication
     * @param $table Tabkeau explication
     * @param $action Action explication
     * @param $ordre Ordre explication
     * @return bool|\mysqli_result|void
     * @version 1.0
     */
    function requete($forme, $valeur, $table, $action, $ordre)
    {
        $host = "localhost";
        $base = "agenda";
        $login = "root";
        $passe = "";
        $link = mysqli_connect($host, $login, $passe, $base) or die("connection impossible $base");
        $select_base = mysqli_select_db($link, $base);
        $result = mysqli_query($link, "SELECT DATABASE()");

        switch ($forme) {
            case 'select':
                $sql = "SELECT $valeur FROM $table $action $ordre";
                break;
            case 'delete':
                $sql = "DELETE FROM $table $action";
                break;
            case 'update':
                $sql = "UPDATE $table SET $valeur $action";
                break;
            case 'insert':
                $sql = "INSERT INTO $table VALUES ($valeur)";
            default:
                // si il y a un cas de figure inconnu 
                // on peut le gerer ici ou pas
        }

        $result = mysqli_query($link, $sql) or die('Erreur : ' . mysqli_error($result));
        return $result;
    }
mise à part c'est petits détails ton code est propre visuellement.

Re: Problème php while()

par Ezuker » 09 juin 2022, 16:44

<?php
// Fonction requetes
// requete(forme,valeurs,table,les where,l'ordre)
function requete($forme,$valeur,$table,$action,$ordre){
	$host="localhost";
	$base="agenda";
	$login="root";
	$passe=""; 
	$link = mysqli_connect($host,$login,$passe,$base) or die("connection impossible $base");
	$select_base= mysqli_select_db($link,$base); 
	$result = mysqli_query($link, "SELECT DATABASE()"); 
	if($forme=="select"){ 
		$sql="SELECT $valeur FROM $table $action $ordre";
	}
	if($forme=="delete"){ 
		$sql="DELETE FROM $table $action";
	}
	if($forme=="update"){ 
		$sql="UPDATE $table SET $valeur $action";       
	}
	if($forme=="insert"){ 
		$sql = "INSERT INTO $table VALUES ($valeur)";
	}
	$result = mysqli_query($link,$sql) or die('Erreur : '.mysqli_error($result));
	return $result;
}
?>
ça c'est ma fonction requete()
et mysqli_fetch_array semble pas faire de print

Re: Problème php while()

par Spols » 09 juin 2022, 16:35

si tu commente ton print, tu obtient toujours le "08:00:0000"

vu que tu utilise requete(...) tu utilise donc une librairie pour tes requète, vérifie que mysqli_fetch_array ne fait pas un echo / print non désiré

Re: Problème php while()

par Ezuker » 09 juin 2022, 16:18

Lui il retourne juste "<center> - </center>"
Et quand on l'enlève, rien ne change pour le problème il y a toujours "08:00:0000"

Re: Problème php while()

par or 1 » 09 juin 2022, 16:14

et agenda4() ?

Re: Problème php while()

par Ezuker » 09 juin 2022, 16:11

function heure($heure){
	list($h,$m)=explode(":",$heure);
	$h = $h*1;
	return $h." H ".$m;
}

Re: Problème php while()

par or 1 » 09 juin 2022, 16:06

que fait la fonction heure() ?

Problème php while()

par Ezuker » 09 juin 2022, 16:00

Bonjour à tous,
Voici mon code :
<?php
  $result=requete("select","*","heure","","order by heure_temps");
  while($res=mysqli_fetch_array($result)){
	 print("<tr><td align='center'>".heure($res['heure_temps'])."</td><td align='left'>".agenda4($res['heure_num'],$personne)."</td></tr>\n");
  }
  ?>
Et voici le résultat en html
08:00:0000<tr><td align='center'>8 H 00</td><td align='left'><center> - </center></td></tr>
08:15:0015<tr><td align='center'>8 H 15</td><td align='left'><center> - </center></td></tr>
08:30:0030<tr><td align='center'>8 H 30</td><td align='left'><center> - </center></td></tr>
08:45:0045<tr><td align='center'>8 H 45</td><td align='left'><center> - </center></td></tr>
09:00:0000<tr><td align='center'>9 H 00</td><td align='left'><center> - </center></td></tr>
09:15:0015<tr><td align='center'>9 H 15</td><td align='left'><center> - </center></td></tr>
Je ne comprends pas pourquoi il me fous un "08:00:0000"...