[PHP] Postition ermitteln

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Firefox User, 5. August 2010 .

Schlagworte:
  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?
     
  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
     
  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
     
  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..
     
  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
     
  6. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.