Jump to content
Sign in to follow this  
k00ni

db.inc.php: Anmerkung zur fetch_array-Funktion

Recommended Posts

Erstmal hier die Funktion:

 

query($query) ) {

           $rows=0;

   		while ( $row = @mysql_fetch_array($this->result) ) {

   			$result[$rows]=$row;

   			$rows++;

   		}

   		return $result;

	} else {

	  return false;

       }

   }
?>

 

Habe eine ähnliche Funktion in Gebrauch und möchte nochmal was dazu schreiben. Da hier kein Modus für mysql_fetch_array angegeben wird, legt er sowohl einen nummerischen Index, als auch einen assoziativen an.


Was das heißt? Hier mal ein Beispiel:

 

 id | name
1    foo 
2    bar

 

Frage ich diese Tabelle mittels

 

SELECT id FROM xyz;

 

ab, so bekomme ich folgendes Array:


Array

- [0] = 1

- ['id'] = 1


- [1] = 2

- ['id'] = 2


Man hat statt der gewünschten 2 Einträge (wie's laut Tabelle sein soll), nun 4 Einträge.


Holt man sich also mit dieser Funktion ein Array aus einer Abfrage, so muss man aufpassen, wie man die Einträge "anspricht", ob nun per Nummer oder String. Ich selbst würde hier gern noch einen Typ angeben können: MYSQL_NUM, MYSQL_ASSOC oder (als default eingestellt) MYSQL_BOTH.


Dies verringert nicht nur den Speicherverbrauch, da nun jedes Element nur einmal vorkommt, sondern man vermeidet später eventuelle Problem.


Ich selbst hatte nämlich gerade mittels

 

{html_options values=$A_pass_type_ids output=$A_pass_type_names selected=$I_type}

 

eine Liste von Typen darstellen wollen (id und name) und er zeigte mir alles 2 mal an.

Share this post


Link to post
Share on other sites
Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...