Page 1 of 1

nächste oder voherige id einer mysql abfrage

Posted: 2003-09-03 13:00
by wookie_23
Hallo, ich habe ein script-snippet welches mit eine voherige id einer mysqlabfrage liefert:

Code: Select all

function voherige_id($id,$name){
    $query = mysql_query("SELECT id FROM produkte WHERE name = '$name");
    while($row = mysql_fetch_array($query)){
		if($row[id] == $id){
			$gefunden = 1;
		}
		if(!$gefunden){
			$voherige_id = $row[id];
		}
    }
    return $voherige_id;
}
jetzt meine frage dazu:
geht das auch in einer einfacheren art und weise? evtl mit einer etwas komplizierteren mysqlabfrage oder so? Ich erhoffe mir dadurch ein wenig mehr performance. das die ausführung dieser Funktion sehr oft im script vorkommt.

Vielen Dank für eure Infos ;)

Grüße aus dem Schwarzwlad, wookie :)

Re: nächste oder voherige id einer mysql abfrage

Posted: 2003-09-03 13:03
by suntzu
Hi,

ich weiß nicht ganz, was genau du jetzt meinst, aber wenn du die id der vorhergehenden INSERT-Operation suchst:
http://de.php.net/manual/de/function.my ... ert-id.php

HTH,
Dominik

Re: nächste oder voherige id einer mysql abfrage

Posted: 2003-09-03 13:44
by [nix]pepe
wie wär's damit:

Code: Select all

$query = mysql_query("SELECT id FROM produkte WHERE name = '$name' AND id < $id ORDER BY id DESC LIMIT 0,1");
$out_sql_id = mysql_fetch_array($query);
Solltes tun :)

DAAAANKE aber

Posted: 2003-09-03 13:49
by wookie_23
die voherige id muss nicht umbedingt kleiner sein.
Es gibt aber noch eine spalte "sortierung" nach dem alle einträge in der Tabelle sortiert werden.

das wäre ja geil:

:?

Code: Select all

SELECT NEXT(id) FROM produkte WHERE id = $id ORDER BY sortierung LIMIT 1;
oder
SELECT PREV(id) FROM produkte WHERE id = $id ORDER BY sortierung  LIMIT 1;
aber sowas gibts ja leider nicht, vielleicht langts aber das problem damit zu verdeutlichen.