#1 5. August 2010 Postition ermitteln Ich habe in der Datenbank eine Tabelle a'la: Code: id name wert 1 bla 7 2 bla7lö 8 3 fghfhj 78 4 gfhhj 795 5 gfhmhj 742 6 zuzug 749 7 ghjhgj 763 8 fdgdfhf 747 9 fdgdg 735 10 ghdfg 925 11 fdgdf 735 Wenn man die Tabelle nach der Spalte wert sortieren würde, wie würde ich dann mit php herausfinden, auf welcher Position z.B. der name bla7lö ist? + Multi-Zitat Zitieren
#2 5. August 2010 AW: Postition ermitteln weiß jetzt nicht, ob es dafür schon ne bestimmte abfrage gibt, ansonsten würde ich sql abfrage machen, die mir den wert von "bla7lö" zurückgibt, dass dann mit der gesamten tabelle joinen, wo wert von bla7lö > oder gleich den restlichen werten ist. somit bekommst du alle einträge die <= dem wert von "bla7lö" sind. nun noch mysql_num_rows($sql) speichern und du hast die position + Multi-Zitat Zitieren
#3 5. August 2010 AW: Postition ermitteln Denke ja mal, dass du das mit PHP realisieren willst.. PHP: $query = mysql_query ( 'SELECT * FROM tabellen_name ORDER BY wert' ); $array = mysql_fetch_array ( $query , MYSQL_NUM ); $pos = array_search ( 'bla7lö' , $array )+ 1 ; Ist ungetestet.. In $pos sollte dann die Position stehen.. Das +1 ist, da ja das Array mit dem Schlüssel 0 beginnt und du ja die echte Position willst und nicht die im Array! MfG + Multi-Zitat Zitieren
#4 5. August 2010 AW: Postition ermitteln Wenn das auch gleich in der MySql abfrage funktioniert mach ich es auch gleich in der MySql Abfrage.. Hab mir das irgendwie komplizierter vorgestellt.. + Multi-Zitat Zitieren
#5 5. August 2010 AW: Postition ermitteln einfach: PHP: <? php $query = mysql_query ( ' SELECT `id`, `name`, `wert` FROM `tabelle` ORDER BY `wert` DESC' ); $users = array(); $rank = 0 ; while( $user = mysql_fetch_qssoc ( $query )) $users [] = array_merge ( $user , array( 'rank' => ++ $rank )); mysql_free_result ( $query ); // ausgabe foreach( $users as $user ) print "name: { $user [ 'name' ]} <br /> wert: { $user [ 'wert' ]} <br />rang: { $user [ 'rank' ]} <br />----<br />" ; komplexer (und vermutlich langsamer) PHP: <? php $query = mysql_query ( ' SELECT u.`id`, u.`name`, u.`wert`, ( SELECT COUNT(j.`id`) + 1 FROM `tabelle` j WHERE j.`wert` > u.`wert` ) `rank` FROM `tabelle` u' ); $users = array();while( $user = mysql_fetch_qssoc ( $query )) $users [] = $user ; mysql_free_result ( $query ); // ausgabe foreach( $users as $user ) print "name: { $user [ 'name' ]} <br /> wert: { $user [ 'wert' ]} <br />rang: { $user [ 'rank' ]} <br />----<br />" ; beim zweiten beispiel kannst du auch direkt auf einzelne user zugreifen und musst nicht immer erst alle auslesen. WHERE u.`id` = 1234 + Multi-Zitat Zitieren