Bonjour,

Je débute dans php et cherche à afficher mes données dans un tableau.
Dans la table 0_form_import il y a 4 enregistrements, pourtant un seul s'affiche.

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = mysqli_connect("localhost", "root", "", "test");

$query = "SELECT * FROM 0_form_import";
$result = mysqli_query($mysqli, $query);

$form_array = array(array('id' => '-', 'text' => "Sélectionner", 'ref' => ''));
$row = mysqli_fetch_array($result, MYSQLI_BOTH);
    $form_array[] = array('id' => $row["id"],
                           'text' => $row["name"],
                           'ref' => $row["ref"]
                           );
    echo "test echo<br>" . $form_array;
    echo "test print_r<br>" . print_r($form_array);

Ce qui affiche :
a écrit :

test echo
ArrayArray
(
[0] => 1
Smiley id => 1
[1] => SELLSY ventes
Smiley name => SELLSY ventes
[2] => VEP
Smiley ref => VEP
)
test print_r
1

Pouvez-vous me filer un coup de code ? Smiley biggrin
Merci !
Merci Mathieuu,
C'est beaucoup mieux ^^
Par contre, je ne comprends pas pourquoi la tableau s'affiche avant l'echo "test print_r" et pourquoi après "test_print_r" le chiffre 1 s'affiche.
Pourriez-vous m'expliquer ?

Merci!!

Le code suivant :

$form_array = array(array('id' => '-', 'text' => "Sélectionner", 'ref' => ''));
while ($row = mysqli_fetch_array($result, MYSQLI_BOTH)) {
    $form_array[] = array('id' => $row["id"],
                           'text' => $row["name"],
                           'ref' => $row["ref"]
                           );
}
    echo "test print_r<br>" . print_r($form_array);


Affiche maintenant :

Array
(
    [0] => Array
        (
            [id] => -
            [text] => Sélectionner
            [ref] => 
        )

    [1] => Array
        (
            [id] => 1
            [text] => SELLSY ventes
            [ref] => VEP
        )

    [2] => Array
        (
            [id] => 2
            [text] => SELLSY rglt
            [ref] => REP
        )

    [3] => Array
        (
            [id] => 3
            [text] => PRESTASHOP
            [ref] => VEW
        )

    [4] => Array
        (
            [id] => 4
            [text] => TACTILL
            [ref] => VEC
        )

)
test print_r
1  
Tu ne peux pas concaténer print_r sur un echo, globalement print_r se suffit à lui même pour afficher directement un truc.

Généralement je rajoute des balises pre avant et après un print_r :

echo "<pre>";
print_r($form_array);
echo "</pre>";


Edit pour être précis (après avoir lu la doc Smiley lol https://www.php.net/manual/fr/function.print-r.php ) : Tu peux concaténer print_r sur un echo si tu rajoutes un paramètre pour lui dire de retourner une valeur au lieu de juste l'afficher :

 echo "test print_r<br>" . print_r($form_array, true);

Modifié par Mathieuu (23 Sep 2022 - 11:05)
Mes respects Mathieuu pour ces réponses précises !
Je ne te cache pas que php.net est aussi une référence dont je me sers, mais j'ai vraiement du mal à tout piger...
Mais petit à petit... ^^

Merci et une belle journée à toi !
Modifié par Umable (23 Sep 2022 - 11:13)