• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Array aus Datenbankabfrage übergeben

  • Ersteller Ersteller ohrflieger
  • Erstellt am Erstellt am
O

ohrflieger

Guest
Array aus Datenbankabfrage übergeben [gelöst]

Hallo,
wie kann man ein zweidimensionales Array, welches mit mysql_fetch_assoc() aus einer Datenbankabfrage generiert wurde, übergeben?
Ich lasse die Datenbankabfrage von einer Funktion (bzw. Klasse) erledigen und möchte dieses Array als Ergebnis via return zurückgeben. Die direkte Übergabe mit return mysql_fetch_assoc($result) geht nicht.
Ich hab schon folgendes probiert:

PHP:
//... Datenabfrage ...
	function get_data($table, $feld, $wert, $order = false, $array = false)
	{
		$daten_db = new datenbank(); //verbindung herstellen
		if($order) $type = ' ORDER BY datum DESC';
		else $type ='';
		$this->daten = $daten_db->query("SELECT * FROM ".$table." WHERE ".$feld." = '".$wert."'".$type);
		unset($daten_db);
		if($array) {
			while($array_row = mysql_fetch_array($this->daten)) {
				$count = 0;
				if(is_array($array_row)) {
					foreach($array_row as $rnam => $rval) {
						$array_return[$count][$rnam] = $rval;
					}
					$count++;
				} else {
					if($count > 0) return $array_return;
					return $array_row;
				}
			}
			return $array_return;
		}

Funktionsabruf:
PHP:
$portfolio = get_data('entrys','kategorie',7,true,true);

Es wird aber nur ein Tabelleneintrag übergeben, obwohl mehrere vorhanden sind.
Hab ich da irgendwo einen Logikfehler?

lg
ohrflieger

EDIT:
Problem gelöst, wenn man statt mysql_fetch_array() mysql_fetch_object() nimmt...
 
Zuletzt bearbeitet von einem Moderator:
so richtig verstehe ich die funktione eigentlich nicht, mag eigentlich auch nicht suchen, daher einfach mal eine funktion, die ein mehrdimensionales array aus eine sql-db liest un zurück gibt:

PHP:
function myfetch_all($result)
{
    $x = 1;
    // array 0 ist feldname...
    for($r = 0; $r < mysql_num_fields($result); $r++)
    {
        $ergebnis[0][$r] = mysql_field_name($result,$r);
    }

    // ab arry 1 werden die daten gelesen
    while ($row = mysql_fetch_row($result))
    {
        for($a = 0; $a < mysql_num_fields($result); $a++)
        {
            $ergebnis[$x][$a] = utf8_decode($row[$a]);
        }
        $x++;
    }
    return $ergebnis;
}

$myselect = 'dein_selsct_befehl'
$result = dbquery($myselect);
$results = myfetch_all_field($result);

print_r($results);
 
Zurück
Oben