PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Höchsten Wert in einer Tabelle auslesen ?



Masterphil
12.05.2008, 13:39
Hallo, hab mal wieder eine Frage, ich möchte den höchsten Wert einer Tabelle auslesen, um meinen Gästen zu zeigen wieviel der beste Banner/Mail/Textlink wert ist.

Leider hab ich von MySQL keinen Plan weiter, deshlab hoffe ich doch mir kann jemand ein Beispiel posten.

Ich sag schon mal danke und wünsche euch noch einen erholsamen Pfingstmontag.

MfG

EarlofMidnight
12.05.2008, 13:42
ORDER BY NamederTabelle in die Abfrage mit Einfügen

Gruß

EarlofMidnight

Masterphil
12.05.2008, 14:00
Nadann probier ich es mal mit diesem Tip, vielleicht hat der tatsächlich schon als DenkAnstoss gereicht. Wenn ich es hinbekomme gibts hier natürlich die Lösung.

MfG

Edit: Habe nun mal gebastelt, leider ohne Erfolg.



<?php
$bestbanner = mysql_fetch_array(db_query("SELECT * AS bestbann FROM ".$db_prefix."_gebuchte_werbung ORDER BY verdienst DESC LIMIT 1");

echo '('.$bestbanner['bestbann'].')';
?>


Wenn ich das so einbaue zeigt er mir mein reches Menü nicht mehr an, wo der code hinsoll, wie gesagt meine MySQL Kenntniss sind sehr beschränkt und ich weiß nun nicht was an meinen Code nicht stimmt, hoffe mal jemand siehrt den Fehler oder hat eine nochelegantere Lösung.

MfG

schulz3000
12.05.2008, 15:58
Dein Fehler liegt hier: SELECT * AS bestbann
Du willst alle Spalten als bestbann ausgeben.
Du musst aber nur ganz einfach die Spalten wählen die du angezeigt haben willst und die kannst du dann ja auch ausgeben.
Bsp:


query("SELECT verguetung FROM ".$db_prefix."_gebuchte_werbung ORDER BY verdienst DESC LIMIT 1

Dann kannst du dir die höchste Vergütung ausgeben lassen.

alexx
12.05.2008, 16:18
So ist es besser!

SELECT MAX(verdienst) AS mverdienst FROM vms_gebuchte_werbung LIMIT 1

Masterphil
12.05.2008, 19:06
Erstmal danke euch für die Lösungsvorschläge, aber welcher ist nun wirklich besser?

MfG

Benutzer1699
12.05.2008, 23:36
Query nehmen, ein bisschen öfter z.B. in einer Schleife ausführen und mal die durchschnittliche Laufzeit ermitteln die das Query braucht =) Eventuell auf den Index achten...

Masterphil
17.05.2008, 12:01
So hab mich nun nochmal rangemacht und etwas gebastelt, kann es selbst kaum glauben, aber nach langen hin und her hab ich es nun doch noch hinbekommen.

Der Code zum auslesen und ausgeben des höchsten Wertes in einer DB (in meinem Fall der Verdienst in Gebuchte Werbung) lautet z.B. :



<? $bbb1 = mysql_fetch_array(db_query("SELECT verdienst FROM ".$db_prefix."_gebuchte_werbung ORDER BY verdienst DESC LIMIT 1")); ?>
<?=@number_format($bbb1['verdienst'] ,2,",",".");?>


So, nun würde ich das ganze aber gerne noch aufteilen für Banner, Mails und Co.

Habe es mal selbst probiert, aber das will einfach gar nicht klappen.

Kann da mal einer, damit ich sehe wie und wo es hinkommt, noch ein "where werebeart=forcedbanner" reinbasteln, so dass es auch klappt?

Die ganzen Begrenzungszeichen machen einen noch verrückt.

MfG

EarlofMidnight
17.05.2008, 12:10
Probier es mal mit: and werbeart = 'forcedbanner'
Anstatt: "where werebeart=forcedbanner"

Masterphil
17.05.2008, 13:35
Habs nun so:



<? $bbb1 = mysql_fetch_array(db_query("SELECT verdienst FROM ".$db_prefix."_gebuchte_werbung ORDER BY verdienst DESC LIMIT 1 where werbeart = 'forcedbanner'")); ?>


und so:


<? $bbb1 = mysql_fetch_array(db_query("SELECT verdienst FROM ".$db_prefix."_gebuchte_werbung ORDER BY verdienst DESC LIMIT 1 and werbeart = 'forcedbanner'")); ?>


probiert. Leider steht dann in der anzeige nur noch 0,00 sprich, es klappt so nicht.

Ahh, nen bisschen hin und hergeschoben und nun klappt es endlich.

Also hier für alle der Code zum Auslesen/Ausgeben des höchstvergütesten Forcedbanners:



<? $bbb1 = mysql_fetch_array(db_query("SELECT verdienst FROM ".$db_prefix."_gebuchte_werbung where werbeart = 'forcedbanner' ORDER BY verdienst DESC LIMIT 1")); ?>
<?=@number_format($bbb1['verdienst'] ,2,",",".");?>


Anhand dieser Vorlage ist es nun für alle sehr einfach die anderen Felder auszulesen.
Also, ich bedanke mich nochmal bei allen die hier geholfen haben.

Und mache dann zu da erledigt.

MfG