Den höchsten Wert zu einer ID aus der DB ermitteln

Divo1984

Erfahrenes Mitglied
Hallo,

ich habe da ein Problem! Ich habe eine Datenbank . die wie folgt ausschaut:

DB.jpg


Zur Erklärung:

id ist ja klar- Primary Key:)
gebot: ne Dezimalzahl
uid: md5 verschlüsselte ID, dient zur gesicherten Kennung
user: Username - lach
zeit: Timestamp - der besagt wann der Eintrag vorgenommen wurde

Das Ganze gehört zu einem Auktionsscript - welches ich grad entwickle.

Nun möchte ich da natürlich viel mehr Einträge drin haben;) Wie kann ich zu der entsprechenden uid - den höchshten Wert per PHP ermitteln?

Oder wäre es nicht sogar sinnvoller - für jede uid bei Erstellung der "Auktion" sogar eine eigene Tabelle anzulegen?

Bin für jeden Ratschlag dankbar!
 
Das ist ne ganz simple SQL-Abfrage, z.B.:

SQL:
SELECT max(gebot) FROM tabelle WHERE uid = 'IRGENDEINE_UID';

Pro uid eine Tabelle ist überflüssig, wozu gibt es denn SQL**** :)

Gruß
Matt
 
Zuletzt bearbeitet von einem Moderator:
Danke für deine schnelle Antwort! Habe folgendes probiert:

PHP:
$uid=get("uid");
$sql="SELECT max('gebot') FROM auctions WHERE uid='$uid'";
$$abfrage=mysql_query($sql);
$rows=mysql_fetch_assoc($abfrage);

echo"".$rows['gebot']."";

Geht nur leider net:(
 
was sollen die ' um den Feldnamen? Weg damit. Es ist ein Feldname und kein konstanter String. Matt297 hat es doch vorgeschrieben. Einfach übernehmen und den WHERE-Teil anpassen.

Ansonsten:
Da die diese Art von Fragen sehr oft kommt, habe ich mal ein Tutorial geschrieben wie man am besten auf Fehlersuche geht.
PHP MySQL Debug Queries
Geh es doch mal durch und falls du die Lösung nicht findest, poste mal das ausgegebe SQL-Statement ins Forum.
 
Hallo Yaslaw,

vielen Dank für deine Antowrt - so habe ich rausbekommen das ich nen Fehler in meinem SQL Befehl hatte!

mein Code sieht jetzt so aus:

PHP:
$uid=get("uid");
$sql="SELECT max(gebot) FROM bets WHERE uid='$uid'";
$$abfrage=mysql_query($sql);
$rows=mysql_fetch_array($abfrage);
$maxgebot=$rows['gebot'];

echo mysql_affected_rows();
echo"<br><br>";
echo "{$sql}<br />\n";
mysql_query($sql) or die(mysql_error());


echo "Der letzte eintrag ist: ".$maxgebot; 
echo"".max(gebot)."";

bekomme folgende Ausgabe:

SELECT max(gebot) FROM bets WHERE uid='42010f003b5cdceb40ad4df75f0b9e64'
Der letzte eintrag ist:
Notice: Use of undefined constant gebot - assumed 'gebot' in ...
Warning: Wrong parameter count for max() in ...

Komisch ist nur, dass es im PHPMyAdmin geht:(
 
So ich habe das Ganze jetzt anders gelöst:

PHP:
$uid=get("uid");
$sql="SELECT * FROM bets WHERE uid='$uid' ORDER BY gebot DESC LIMIT 1";
$abfrage=mysql_query($sql);
while($rows=mysql_fetch_assoc($abfrage))
{

echo "".$rows['gebot']."";
}
 
Zurück