• 08.06.2024, 21:55
  • Register
  • Login
  • You are not logged in.

 

Dear visitor, welcome to Aqua Computer Forum. If this is your first visit here, please read the Help. It explains how this page works. You must be registered before you can use all the page's features. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

PHP Datenbankabfragefunktion

Thursday, February 11th 2010, 2:19pm

Hi,

ich habe vor eine Funktion zu entwickeln, die eine Datenbankabfrage ausführt und als array ausgibt.
Hier mal der Code zur Funktion.

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//Abfrage
function dbQuery($SQL_COMMAND)
{
	$connection = mysql_connect (MYSQL_SERVER, MYSQL_USER, MYSQL_PASSWORD);
	mysql_select_db(MYSQL_TABLE);
	$query = mysql_query($SQL_COMMAND);
	
	while($result = mysql_fetch_assoc($query))
	{
		$out = $result;
	};
	mysql_close($connection);
	
	return $out;
};


Dann frage ich so ab:

Source code

1
2
3
$result = array(dbQuery("SELECT * FROM mailboxes;"));

print_r($result);


Wieso gibt der mir nich das ganze Array aus, sondern nur den letzten Eintrag?

Grüße Maritn

Thursday, February 11th 2010, 3:55pm

Source code

1
$out = $result;

weil du mit der Zeile den Wert von $out immer überschreibst und nicht $result anhängst.
wenn ich mich richtig erinnere muesste das so aussehen

Source code

1
$out[] = $result;

This post has been edited 1 times, last edit by "palme|kex`" (Feb 11th 2010, 3:56pm)

Thursday, February 11th 2010, 5:21pm

Du bist mein Held für Heute :)

Habs noch ein wenig modifiziert, dass die Datensätze bei 1 beginnen.

PHP Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//Abfrage
function dbQuery($SQL_COMMAND)
{
    $connection mysql_connect (MYSQL_SERVERMYSQL_USERMYSQL_PASSWORD);
    mysql_select_db(MYSQL_TABLE);
    $query mysql_query($SQL_COMMAND);
    $out['num_rows'] = mysql_num_rows($query);
    
    $i 1;
    
    while($result mysql_fetch_assoc($query))
    {
        $out[$i] = $result;
        $i++;
    };
    
    mysql_close($connection);
    
    unset($i);
    
    return $out;
};


Grüße

Sunday, February 14th 2010, 3:46pm

Ich habe seinerzeit mal eine hübsche Abstraktionsschicht gebaut, die hilft dir vermutlich auch weiter. Für Abfragen schaue dir die Dokumentation zu den `get*()`-Methoden an.

This post has been edited 1 times, last edit by "Y0Gi" (Jan 22nd 2013, 3:57am)

cuto8

Full Member

Sunday, February 14th 2010, 4:48pm

Ich habe seinerzeit mal eine hübsche Abstraktionsschicht gebaut, die hilft dir vermutlich auch weiter. Für Abfragen schaue dir die Dokumentation zu den `get*()`-Methoden an.
Meinst du soetwas wie das von mehreren Entwicklern gewartet und mittlerweile sehr stabile und zuverlässige MDB2 aus der PEAR-Bibliothek , das sich selbst auf den einfachsten Webhostern installieren lässt?

:D :P

Tuesday, February 16th 2010, 10:58pm

Das Teil habe ich 2003 geschrieben, weil es um die Installierbarkeit von Pear-Paketen ohne Shell da meiner Auffassung nach nicht zum Besten stand. Davon ab ist das eine hübsche Klasse, die man schnell mal bei einem Release mitliefern kann um dem Anwender eben genau das Pear-Geraffel nicht abverlangen zu müssen. So manche erfreute und dankende Zuschrift per elektronischer Post bestätigt, dass zumindest einige davon profitieren konnten.

cuto8

Full Member

Wednesday, February 17th 2010, 11:30am

;)

War ja nicht böse gemeint!

Nur ist mittlerweile PEAR in der Standardinstallation integriert und da würde ich halt doch eher auf was setzen, bei dem eine mehr oder weniger große Community hinter steht.

Thursday, February 18th 2010, 10:33pm

Hast ja grundsätzlich auch Recht. Allerdings würde *ich* mittlerweile auch sehr empfehlen, auf etwas anderes als PHP zu setzen ;) Einfach mal quer durch die Bank: Sinatra, Django, Play. Aber ich möchte hier auch nicht *unbedingt* eine Grundsatzdiskussion anzetteln ;)

Thursday, February 18th 2010, 11:46pm

Ach, hab dich nicht so Yogi. Grundsatzdiskussionen über PHP sind immer wieder spannend :D

cuto8

Full Member

Friday, February 19th 2010, 8:26am

Geht so - alle sind sich einig, dass PHP eigentlich besch***** ist, aber trotzdem wird es weiter verwendet :D

Friday, February 19th 2010, 10:37am

Da sind sich eben nicht alle einig :)

Mich graust es immer wieder, wenn ich an unseren Onlineshop etwas ändern muss.

Monday, February 22nd 2010, 8:52pm

Ach, hab dich nicht so Yogi. Grundsatzdiskussionen über PHP sind immer wieder spannend :D




Geht so - alle sind sich einig, dass PHP eigentlich besch***** ist, aber trotzdem wird es weiter verwendet :D
Ja, aber meist von anderen als denen, die es gemerkt haben ;)

This post has been edited 1 times, last edit by "Y0Gi" (Feb 22nd 2010, 8:54pm)