Höchsten und niedrigsten Wert ermitteln

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Fähnchen
Ehemaliges Teammitglied
Beiträge: 2124
Registriert: 14.08.2004 23:38

Höchsten und niedrigsten Wert ermitteln

Beitrag von Fähnchen »

Guten morgen,

ich programmiere gerade ein Portal für Internetdienstleistungs-Vermittlung.

Nun stehe ich aber vor einem kleinen Problem für das ich noch keine Lösung gefunden habe.

Auf der Seite können Benutzer Aufträge ausschreiben und Dienstleister ihr Angebot abgeben. Nun möchte ich aus einer Spalte der MySQL-Tabelle das preislich höchste Angebot und das niedrigste Angebot ermitteln.

Leider funktioniert es nicht so ganz. Ich versuche es auf die folgende Weise:

Code: Alles auswählen

$sql = mysql_query("SELECT MAX(kosten) FROM angebote WHERE post_id = '$ausschreibungs_id'");
$max = mysql_fetch_object($sql);
$maximal = $max->kosten;
Der Wert wird dann einem Platzhalter zugeordnet und im Template ausgegeben.

Nur leider erscheint dort wo der Wert stehen soll gar nichts.

Ich habe schon hin und her probiert und nicht funktionierte.
Entweder wurde nur der Preis der zuletzt abgegeben Angebotes ausgegeben oder gar nichts.

Nun habe ich schon die tollsten Sachen hinbekommen und scheitere an so einer Kleinigkeit. :oops: Ich wäre dankbar wenn ein erfahrenen Programmierer mir dabei auf die Sprünge helfen kann.

EDIT

Nun habe ich doch eine Lösung gefunden:

Code: Alles auswählen

$sql = mysql_query("SELECT * FROM angebote WHERE post_id = '$ausschreibungs_id' ORDER BY kosten ASC LIMIT 1");
$min = mysql_fetch_object($sql);
$niedrig = $min->kosten;

$sql = mysql_query("SELECT * FROM angebote WHERE post_id = '$ausschreibungs_id' ORDER BY kosten DESC LIMIT 1");
$max = mysql_fetch_object($sql);
$maximal = $max->kosten;
Was mir daran noch nicht so gefällt sind 2 Datenbankabfragen zu diesem Zweck. vielleicht weiss ja noch jemand eine optimalere Lösung.

Hauptsache das Script tut ersteinmal das was ich will. :P
Die Signatur hat Urlaub.
Benutzeravatar
itst
Ehrenadmin
Beiträge: 7418
Registriert: 21.08.2001 02:00
Wohnort: Büttelborn bei Darmstadt
Kontaktdaten:

Re: Höchsten und niedrigsten Wert ermitteln

Beitrag von itst »

Code: Alles auswählen

$sql = mysql_query("SELECT MAX(kosten) AS maxkosten, MIN(kosten) AS minkosten FROM angebote WHERE post_id = '$ausschreibungs_id'");
$max = mysql_fetch_object($sql);
$maximal = $max->maxkosten;
$minimal = $max->minkosten;
So sollte es tun. Wenn Du Aggregat-Funktionen benutzt, solltest Du auch AS benutzen, um dem Ergebis einen 'richtigen' Namen zuzuweisen.

Wenns so auch nicht geht, poste mal hier die Struktur der Tabelle.

Edit:
Ich seh grad '$ausschreibungs_id' - wieso denn Anführungszeichen? Ist die ID nicht nur numerisch?
Sascha A. Carlin,
phpBB.de Ehrenadministrator
:o
Fähnchen
Ehemaliges Teammitglied
Beiträge: 2124
Registriert: 14.08.2004 23:38

Beitrag von Fähnchen »

:D Hey, das funktioniert einwandfrei! Danke.
itst hat geschrieben:Ich seh grad '$ausschreibungs_id' - wieso denn Anführungszeichen? Ist die ID nicht nur numerisch?
Doch, eigentlich schon.
Das ist das erste grössere Script das ich programmieren will.
Dran merkt man wohl dass ich auch noch einiges zu lernen habe in diesem Zuge.
Die Signatur hat Urlaub.
Antworten

Zurück zu „Coding & Technik“