URL: https://www.overclockers.at/coding-stuff/php_frage_gtmysql_53258/page_2 - zur Vollversion wechseln!
Zitat von Maxx666select max(id) from dvd;
oder
select * from dvd
order by id desc limit 1;
wennst die datensätze nicht auch wieder rauslöschst, sodass löcher entstehen und diese wieder befüllt werden.
Zitat von watchout...
kuckt mal:
habe ein verschachteltes select gemacht, das eigentlich genau das anzeigt, was ich brauche:
$aktuell=(mysql_query("select titel from dvd where id=(SELECT max(id) FROM dvd)"));
und dann ein:
printf ("%s",$aktuell);
Aber da tut sich goar nüscht!
Schon wieder was vergessen?
((hast du ein datum-feld gemacht? nein - dass wette ichZitat von Maxx666also bei meiner mysql datenbank entstehen löcher...die auch wieder, nach einen noch nicht genauer gecheckten modi, befüllt werden.
vielleicht ists ja auch einstellungssache. hab mich noch nie genauer damit beschäftigt. egal.
ein datumsfeld, eliminiert allerdings die problematik...schon richtig
btw: deine erste abfrage funktioniert nicht!
Wie schon einmal in diesem Thread beschrieben, liefert mysql_query ein Result, das du dann erst z.B. mit mysql_fetch_array auslesen musst.
Das habe ich mittlerweile schon versucht. Hier mein Versuch:
$result = mysql_query("select titel from dvd where id=(SELECT max(id) FROM dvd)");
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
printf ("Aktuellster Film: %s", $row);
}
Ich krieg aber trotzdem eine Fehlermeldung. Sorry, daß ich Euch hier so lange auf die Nerven damit gehe, aber ich komme eher aus der C-Richtung und tu noch nicht so lange in PHP.
Zitat von grOOvekill@Das habe ich mittlerweile schon versucht. Hier mein Versuch:
$result = mysql_query("select titel from dvd where id=(SELECT max(id) FROM dvd)");
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
printf ("Aktuellster Film: %s", $row);
}
Ich krieg aber trotzdem eine Fehlermeldung. Sorry, daß ich Euch hier so lange auf die Nerven damit gehe, aber ich komme eher aus der C-Richtung und tu noch nicht so lange in PHP.
Mann, ich werd' noch bekloppt! Das haut einfach nicht hin. Hab schon fast jede erdenkliche Variante ausprobiert.
Nachdem ich dachte, daß es möglicherweise am MYSQL_NUM liegt (gibt ja angeblich nur numerische Indezes aus) , habe ich es mit MYSQL_ASSOC probiert. Geht auch nicht.
Wie genau muß ich ein Array auslesen? Ich hab's genauso probiert wie auf php.net beschrieben, ohne Erfolg. Langsam wird das eine Prinzipsache hier. Ich befürchte, ich kann heute nacht nicht einschlafen, wenn ich nicht auf die Lösung komme.
Trotzdem bin ich weiterhin dankbar für jeden Rat.
Hier übrigens meine letzte Version:
$result = mysql_query("select titel from dvd where id=(SELECT max(id) FROM dvd)");
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
printf ("Aktuellster Film: %s", $row[0]);
}
hast du die query schon ausgeführt und gesehen das was rauskommt?
Ja. Genau das, was ich brauche. Die innere Abfrage bekommt die id mit der größten zahl. Die äußere vergleicht die id's und zeigt automatisch den Titel des Filmes an, der diese id hat, also automatisch der letzte Eintrag. Hab's testhalber sogar im Access ausprobiert. Sogar dort hat's hingehauen.
zeig mal mit echo die result-ressource anZitat von grOOvekill@Ja. Genau das, was ich brauche. Die innere Abfrage bekommt die id mit der größten zahl. Die äußere vergleicht die id's und zeigt automatisch den Titel des Filmes an, der diese id hat, also automatisch der letzte Eintrag. Hab's testhalber sogar im Access ausprobiert. Sogar dort hat's hingehauen.
afiak werden subselects bei mysql erst ab version 4.1 unterstützt. versuch doch lieber die version mit ... ORDER BY id DESC LIMIT 1.
korrekt:Zitat von atroxafiak werden subselects bei mysql erst ab version 4.1 unterstützt. versuch doch lieber die version mit ... ORDER BY id DESC LIMIT 1.
ZitatMySQL Server currently only supports nested queries of the form INSERT ... SELECT ... and REPLACE ... SELECT .... You can, however, use the function IN() in other contexts. Subselects are currently being implemented in the 4.1 development tree.
subselects> seit jahren überfällig bei mysql... ausserdem auf meiner wishlist:
*) tree-walking
*) constrains
*) views
*) unions
man könnte sagen "dann nimm doch gleich oracle" - nur braucht das mindestens 32mb + 16mb pro database [oder irgendwie so - ist schon lang her dass ich mir das durchgelesen habe]
Verstehe, verstehe. Tja, da kann ich's mit einem Subselect lang versuchen. Man sollte halt vorher nachsehen, bevor man sich dumm und dämlich ärgert. Wie auch immer, ich hab es mittlerweile mit Watchout's Variante: select * from dvd
order by id desc limit 1; geschafft, daß der letzte Eintrag angezeigt wird.
Tausend Dank an alle, die sich Gedanken um mein Problem gemacht haben!
Ich liebe Euch!!!
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025