[RESOLU] Fonction en php (mysqli_fetch_array())

Eléphanteau du PHP | 45 Messages

17 juin 2022, 16:23

Bonjour, je voudrais savoir si on peut mettre comme argument une fonction lorsque l'on fait une boucle contenant la fonction "mysqli_fetch_array()"
Merci d'avance pour vos conseils et vos aides.

function executeRequest($request, $debug = false, $insert = false) {
		$valeurARetourner = false;
		if ($debug) $valeurARetourner = $request;
		else {
			$con = bddConnect();
			$res = mysqli_query($con, $request); //retourne "false" si la requête échoue
			//si la requête échoue, on affiche la requête
			//A COMMENTER LORS DU PASSAGE EN PRODUCTION !!!
			if($res == false) echo $request."<br><br>";
			else {
				if($insert == true) $valeurARetourner = mysqli_insert_id($con);
				else $valeurARetourner = $res;
			}
		}
		return $valeurARetourner;
	}
function getBddVilles(){
            $req = "SELECT *
                    FROM ville
                    ORDER BY anneeDebutAS DESC,
                    nomVille ASC";
            return executeRequest($req);
        }
?>
<?php
while ($enreg=mysqli_fetch_array())
        // Mettre à la place de $resultat -> executeRequest()
        {
    ?>
            <!-- Le milieu du tableau -->
            <tbody>
                <tr>
                    <!-- affichage des données de la BDD dans les colonnes du tableau -->
                    <td><?php echo $enreg["cpVille"];?></td>
                    <td><?php echo $enreg["nomVille"];?></td>
                    <td><?php echo $enreg["anneeDebutAS"];?></td>
                    <td><input type="checkbox" name="idVilles[]" value=<?php echo $enreg['idVille'];?>></td>
                </tr>
            </tbody>
    <?php } ?>
        <!-- Fermeture de la condition "while" -->
        </table>]

Mammouth du PHP | 1967 Messages

18 juin 2022, 10:32

l'expression dans le while(...) va être interoggé à chaque fin de loop et si cela retourne true (attention au équivalence inter type) la boucle refait un tour. cette expression peut être une fonction, ou une attribution de valeur à une variable tout dépend du retour de l'expression. Dans le cas d'une attribution de variable, cela retourne true si l'attribution c'est faite. si mysqli_fetch_array n'a plus rien à retourner, l'attribution retournera false et la boucle s'arrète.

Si tu met dans ta boucle $resultat -> executeRequest() la requète sera éxécuté à chaque boucle ce qui n'est pas ce que tu veux. de plus executeRequest est une fonction, pas une méthode
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Eléphanteau du PHP | 45 Messages

20 juin 2022, 11:14

Donc je ne pourrais pas faire ça :
<?php
      while ($enreg=mysqli_fetch_array(executeRequest($truc)))
      // ...
      {
?>

Mammouth du PHP | 1967 Messages

20 juin 2022, 13:43

tu aura une boucle infinie je pense.
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Eléphanteau du PHP | 45 Messages

23 juin 2022, 12:03

C'est bon, j'ai résoudre mon problème. Merci pour ton aide !