| SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden. |
 |
|

17-11-2004, 15:23
|
|
bub0815
Newbie
|
|
Registriert seit: Nov 2004
Beiträge: 8
|
|
Zuletzt eingefügten DS bearbeiten.
Moin!
Dies ist mein erstes Posting hier. Mir ist klar, dass Probleme dieser Art hier schon etliche Male besprochen wurden (MAX(), Sortieren und obersten Satz auslesen usw.).
Mein Problem ist aber, dass ich die Umsetzung in PHP mit MySQL nicht hinbekomme. PHP-Version ist 5.0.1.
PHP-Code:
$Sqlstring = "UPDATE `newsletter` SET
`event` = '$Event',
`date` = '$Date',
`editor` = '$Editor'
WHERE `index` = '9'"; // Anstatt 9 höchster Index
$Result = mysql_query($Sqlstring);
Ich möchte irgendwie an der Stelle wo jetzt die 9 steht den Index des zuletzt eingegebenen Datensatzes zur Verfügung haben.
Das Indexfeld der Tabelle ist ein Auto-Increment-Feld.
Hoffe, die Fragestellung ist so genehem ;-)
Vielen Dank !
|

17-11-2004, 15:40
|
|
mrhappiness
PHP Guru
|
|
Registriert seit: Oct 2002
Beiträge: 14.890
|
|
wenn du vorher einen datensatz einfügst, schau dir mal mysql_insert_id an
wenn nicht, dann musst du wohl oder übel den höchsten datensatz vorher auslesen
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
|

17-11-2004, 15:59
|
|
bub0815
Newbie
|
|
Registriert seit: Nov 2004
Beiträge: 8
|
|
mysql_insert_id funzt glaube ich nicht. Der Datensatz wird in einem anderen Php-File erzeugt. Deshalb habe ich schon damit gerechnet, den höchsten DS auslesen zu müssen. Also zurück zur Frage... :-)
|

17-11-2004, 16:01
|
|
mrhappiness
PHP Guru
|
|
Registriert seit: Oct 2002
Beiträge: 14.890
|
|
Zitat:
Original geschrieben von mrhappiness
wenn nicht, dann musst du wohl oder übel den höchsten datensatz vorher auslesen
|
damit wären wir wieder bei SELECT und MAX
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
|

17-11-2004, 16:08
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
wenn du wirklich sicher bist, dass du immer den datensätz mit der höchsten ID updaten willst - warum dann nicht einfach auf WHERE verzichten, und stattdessen ORDER BY id DESC LIMIT 1 verwenden ...?
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

17-11-2004, 17:35
|
|
bub0815
Newbie
|
|
Registriert seit: Nov 2004
Beiträge: 8
|
|
Ist alles einfach gesagt. Ich bin absoluter Newbie in PHP. Bin noch am experimentieren und melde mich dann wieder.
|

17-11-2004, 17:50
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.190
|
|
Zitat:
|
Ich bin absoluter Newbie in PHP.
|
Kein Problem. Ist ja auch SQL
schattenbaum.net hilft dir Grundlagen aufzubauen...
|

17-11-2004, 17:53
|
|
bub0815
Newbie
|
|
Registriert seit: Nov 2004
Beiträge: 8
|
|
Also, wenn ich das richtig verstanden habe seht ihr zwei Möglichkeiten:
PHP-Code:
$query = mysql_query("SELECT Max(index) AS Maxindex FROM newsletter");
// oder
$query = mysql_query("SELECT index FROM newsletter ORDER BY index DESC LIMIT 1");
Habe alles versucht mit mysql_result irgendwie zu einem Wert zu kommen. Offensichtlich stehe ich auf dem Schlauch.
Zum besseren Verständnis: Ich habe keine Ahnung wie ich jetzt auf eine Variable komme, die ich an besagter Stelle (s.oben) aufrufen kann.
Habt ihr eine Idee (ideal wäre natürlich auch der entsprechende Code...)
|

17-11-2004, 17:54
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.190
|
|
joar. guck dir mal die grundlagen auf schattenbaum.net an.
|

17-11-2004, 18:54
|
|
bub0815
Newbie
|
|
Registriert seit: Nov 2004
Beiträge: 8
|
|
Jou, habe es folgendermaßen probiert:
PHP-Code:
$ergebnis = mysql_query($query);.
Meinem Verständnis nach müsste dann der höchste Wert der Spalte index in der Variablen $ergebnis stehen. Tut er aber nicht (überprüft mit echo).
|

17-11-2004, 19:01
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.190
|
|
mysql_query haste das mal gelesen? Was steht das gibt die funktion zurück?
|

17-11-2004, 19:20
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Zitat:
Original geschrieben von bub0815
Also, wenn ich das richtig verstanden habe seht ihr zwei Möglichkeiten:
[...]
$query = mysql_query("SELECT index FROM newsletter ORDER BY index DESC LIMIT 1");
|
nein, ich meinte eigentlich das schon direkt mit UPDATE kombiniert.
UPDATE newsletter SET ... ORDER BY index DESC LIMIT 1
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

17-11-2004, 19:59
|
|
bub0815
Newbie
|
|
Registriert seit: Nov 2004
Beiträge: 8
|
|
@ wahsaga
PHP-Code:
$Sqlstring2 = "UPDATE `newsletter` SET
`event` = '$Event',
`date` = '$Date',
`editor` = '$Editor'
ORDER BY index DESC LIMIT 1";
$Result2 = mysql_query($Sqlstring2);
Also so funzt es nicht.
|

17-11-2004, 20:08
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.190
|
|
|

17-11-2004, 20:11
|
|
bub0815
Newbie
|
|
Registriert seit: Nov 2004
Beiträge: 8
|
|
Sorry! Soll heißen, dass nichts passiert. Keine Fehlermeldung aber auch kein Update der Daten. Da es funzt wenn ich eine feste Zahl als Argument für die Where-Anweisung angebe, liegt es, denke ich, am Order By, oder?
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|