Heim >Datenbank >MySQL-Tutorial >Warum erhalte ich doppelte Ergebnisse, wenn ich „mysql_fetch_array' verwende?
Doppelte Ergebnisse in Arrays mit mysql_fetch_array
Beim Abrufen von Daten aus einer MySQL-Datenbank mit mysql_fetch_array kann es zu doppelten Ergebnissen kommen. Dies liegt daran, dass mysql_fetch_array standardmäßig sowohl assoziative als auch numerische Indizes für jede Zeile im Array zurückgibt.
Betrachten Sie den folgenden Code:
<code class="php">$query_result_array = mysql_fetch_array($query_result);</code>
In diesem Beispiel enthält $query_result_array sowohl numerische Indizes und assoziative Indizes. Infolgedessen erhalten Sie eine doppelte Ausgabe, wenn Sie über das Array iterieren:
<code class="php">foreach($table as $table_var) { echo "<td>" . $table_var . "</td>"; } </code>
Um dies zu vermeiden, können Sie die Art der zurückgegebenen Indizes einschränken, indem Sie den zweiten Parameter von mysql_fetch_array verwenden:
<code class="php">// Numeric keys only $query_result_array = mysql_fetch_array($query_result, MYSQL_NUM); // Associative keys only $query_result_array = mysql_fetch_array($query_result, MYSQL_ASSOC);</code>
Alternativ können Sie die Funktionen mysql_fetch_row und mysql_fetch_assoc verwenden, um nur numerische bzw. assoziative Schlüssel abzurufen:
<code class="php">// Numeric keys only $query_result_array = mysql_fetch_row($query_result); // Associative keys only $query_result_array = mysql_fetch_assoc($query_result);</code>
Mit diesen Techniken können Sie sicherstellen, dass Ihre Arrays nur die gewünschte Art von Indizes enthalten , um doppelte Ergebnisse beim Iterieren zu verhindern.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich doppelte Ergebnisse, wenn ich „mysql_fetch_array' verwende?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!