Position actuelle: Accueil> Derniers articles> [mysqli_result :: fetch_fields Comment utiliser mysqli_fetch_assoc pour implémenter des requêtes complexes?

[mysqli_result :: fetch_fields Comment utiliser mysqli_fetch_assoc pour implémenter des requêtes complexes?

gitbox 2025-08-16
<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// Ce n&#39;est pas lié au contenu de l&#39;articlePHPSection de code,Peut être n&#39;importe quel code d&#39;initialisation ou de configuration</span></span><span>
</span><span><span class="hljs-variable">$servername</span></span><span> = </span><span><span class="hljs-string">"localhost"</span></span><span>;
</span><span><span class="hljs-variable">$username</span></span><span> = </span><span><span class="hljs-string">"root"</span></span><span>;
</span><span><span class="hljs-variable">$password</span></span><span> = </span><span><span class="hljs-string">""</span></span><span>;
</span><span><span class="hljs-variable">$dbname</span></span><span> = </span><span><span class="hljs-string">"test_db"</span></span><span>;

</span><span><span class="hljs-variable">$conn</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">mysqli</span></span><span>(</span><span><span class="hljs-variable">$servername</span></span><span>, </span><span><span class="hljs-variable">$username</span></span><span>, </span><span><span class="hljs-variable">$password</span></span><span>, </span><span><span class="hljs-variable">$dbname</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$conn</span></span><span>-&gt;connect_error) {
    </span><span><span class="hljs-keyword">die</span></span><span>(</span><span><span class="hljs-string">"Échec de la connexion: "</span></span><span> . </span><span><span class="hljs-variable">$conn</span></span><span>-&gt;connect_error);
}

</span><span><span class="hljs-variable">$query</span></span><span> = </span><span><span class="hljs-string">"SELECT users.id, users.name, orders.order_date, orders.amount FROM users LEFT JOIN orders ON users.id = orders.user_id"</span></span><span>;
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-variable">$conn</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">query</span></span><span>(</span><span><span class="hljs-variable">$query</span></span><span>);
</span><span><span class="hljs-meta">?&gt;</span></span><span>

&lt;hr&gt;

</span><span><span class="hljs-meta">&lt;?php</span></span><span>
<span class="hljs-comment">/*
 * mysqli_result::fetch_fields() et mysqli_fetch_assoc() Utilisation conjointe
 * Utilisé pour implémenter le traitement dynamique des résultats de requête complexes
 *
 * Requête complexe,Il peut y avoir de nombreux noms de champ,Et il y a des doublons ou des alias,utiliserfetch_fieldsPeut obtenir des méta-informations sur le terrain,
 * Combinéfetch_assocLes données peuvent être lues en ligne par ligne dans un tableau associatif,Obtenir des opérations de données plus flexibles。
 */</span>

</span><span><span class="hljs-comment">// 1. Obtenir des informations sur le terrain</span></span><span>
</span><span><span class="hljs-variable">$fields</span></span><span> = </span><span><span class="hljs-variable">$result</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">fetch_fields</span></span><span>();

</span><span><span class="hljs-comment">// 2. Imprimer tous les noms de champs(Utilisation de la démonstration)</span></span><span>
</span><span><span class="hljs-variable">$fieldNames</span></span><span> = [];
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$fields</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$field</span></span><span>) {
    </span><span><span class="hljs-variable">$fieldNames</span></span><span>[] = </span><span><span class="hljs-variable">$field</span></span><span>-&gt;name;
}
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Les champs de requête ont: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">implode</span></span><span>(</span><span><span class="hljs-string">", "</span></span><span>, </span><span><span class="hljs-variable">$fieldNames</span></span><span>) . </span><span><span class="hljs-string">"&lt;br&gt;&lt;br&gt;"</span></span><span>;

</span><span><span class="hljs-comment">// 3. Obtenez des données ligne par ligne et organisez des tableaux avec des noms de champ comme des clés</span></span><span>
</span><span><span class="hljs-keyword">while</span></span><span> (</span><span><span class="hljs-variable">$row</span></span><span> = </span><span><span class="hljs-variable">$result</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">fetch_assoc</span></span><span>()) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"utilisateurID: "</span></span><span> . </span><span><span class="hljs-variable">$row</span></span><span>[</span><span><span class="hljs-string">'id'</span></span><span>] . </span><span><span class="hljs-string">"&lt;br&gt;"</span></span><span>;
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"utilisateur名: "</span></span><span> . </span><span><span class="hljs-variable">$row</span></span><span>[</span><span><span class="hljs-string">'name'</span></span><span>] . </span><span><span class="hljs-string">"&lt;br&gt;"</span></span><span>;
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Date de commande: "</span></span><span> . (</span><span><span class="hljs-variable">$row</span></span><span>[</span><span><span class="hljs-string">'order_date'</span></span><span>] ?? </span><span><span class="hljs-string">'Pas de commande'</span></span><span>) . </span><span><span class="hljs-string">"&lt;br&gt;"</span></span><span>;
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Montant de commande: "</span></span><span> . (</span><span><span class="hljs-variable">$row</span></span><span>[</span><span><span class="hljs-string">'amount'</span></span><span>] ?? </span><span><span class="hljs-string">'Aucune quantité'</span></span><span>) . </span><span><span class="hljs-string">"&lt;br&gt;"</span></span><span>;
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"&lt;hr&gt;"</span></span><span>;
}

</span><span><span class="hljs-comment">// 4. Fermer la connexion</span></span><span>
</span><span><span class="hljs-variable">$result</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">free</span></span><span>();
</span><span><span class="hljs-variable">$conn</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">close</span></span><span>();
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>