tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
JA
ANTWORTEN
19
ZUGRIFFE
309
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    DonDemf DonDemf ist offline Mitglied Gold
    Registriert seit
    Jun 2011
    Beiträge
    189
    Hallo Leute,
    ich lasse mit PHP / MYSQL eine Fußballtabelle generieren, welche alle Teams der Tabelle "fifa_mannschaften" auflistet, die in der "1. Euroliga" spielen.

    Ich bestimme anschließend die Position mit der variabel $pos. Unter andere auch damit aufstiegsplätze etc. farblich markiert werden können.

    Code:

    PHP-Code:
    $colors array_fill(11,'#7F99FF'
            + 
    array_fill(22'#00CC33')
            + 
    array_fill(43'#99E500')
    array_fill(76'')
            + 
    array_fill(132'#FF0000');
     

    //Die Position definieren        
    $pos=0;
    while(
    $row_bl mysql_fetch_object($ergebnis_bl))
       {
           
    $td $row_bl->tore $row_bl->gegentore;
           
           
    $abfrage_spieler 'SELECT * FROM fusionafdce_users WHERE user_name = "'.$row_bl->besitzer.'"';
    $ergebnis_spieler mysql_query($abfrage_spieler);
    while(
    $rowbesitzer mysql_fetch_object($ergebnis_spieler))
        {
            
    $icqbesitzer $rowbesitzer->user_icq;
        }
       echo 
    '<tr>
        <td bgcolor="'
    .$colors[++$pos].'" width="31" align="left">'.$pos.'</td>
        <td bgcolor="'
    .$colors[$pos].'" width="39" align="left"><img src="image/vereine/'.$row_bl->id.'.png"></td>
        <td bgcolor="'
    .$colors[$pos].'" width="139" align="left"><a href="?page_id=28&verein='.$row_bl->id.'">'.$row_bl->name.'</a></td>
        <td bgcolor="'
    .$colors[$pos].'" width="99" align="left">';

        if(
    $row_bl->besitzer=="") {
            echo 
    ''.$row_bl->besitzer.''; } else {
                echo 
    '<img src="http://online.mirabilis.com/scripts/online.dll?icq='.$icqbesitzer.'&img=5">'.$row_bl->besitzer.''; }
        
        
        echo 
    '</td>
        <td bgcolor="'
    .$colors[$pos].'" width="42" align="left">'.$row_bl->spiele.'</td>
        <td bgcolor="'
    .$colors[$pos].'" width="30" align="left">'.$row_bl->siege.'</td>
        <td bgcolor="'
    .$colors[$pos].'" width="30" align="left">'.$row_bl->unentschieden.'</td>
        <td bgcolor="'
    .$colors[$pos].'" width="30" align="left">'.$row_bl->niederlagen.'</td>
        <td bgcolor="'
    .$colors[$pos].'" width="60" align="left">'.$row_bl->tore.':'.$row_bl->gegentore.'</td>
        <td bgcolor="'
    .$colors[$pos].'" width="36" align="left">'.$td.'</td>
        <td bgcolor="'
    .$colors[$pos].'" width="54" align="left">'.$row_bl->punkte.'</td>
      </tr>'
    ;
       } 
    Nun möchte ich außerhalb dieses Scripts auch die Position eines Teams ermitteln. Da die Position nicht in der MYSQL tabelle gespeichert wirdm weiß ich nicht genau, wie ich es machen soll.

    Es soll ein script werden, ala:
    Code :
    1
    2
    3
    4
    
    if($pos_team == $erhoffte_position) {
     
    belohne das team } else {
    bestrafe das team }


    Ich hoffe ihr könnt mir da weiterhelfen und habt verstanden, was ich erreichen möchte

    Danke im vorraus!
     

  2. #2
    Avatar von Yaslaw
    Yaslaw Yaslaw ist gerade online n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Jepp. Du kannst das alles einem einzigen SQL machen.

    1) nach Punkten sortieren
    2) durchnummerieren (die Psotitionen definieren)
    3) Eine Position geziehlt auslesen

    Man muss dabei auf Unterabfragen und SQL-Variablen zugreiffen, da MySQL keine RownUm kennt. Ich verende als Basis die folgende Rownum-Methode: [MySQL] Rownum (Zeilennummer)

    Hier ein Beispiel wie du die Mansnchaft 'FC Hinterpfufigen'
    Code sql:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    
    SELECT
        pos
    FROM
        -- Die soriterte und durchnummerierte Liste:
        (
            SELECT
                @pos:=@pos+1 AS pos,
                fifa_m.mannschaft
            FROM
                -- Initialisierend er Varable
                (SELECT @pos:=0) AS vars,
                fifa_mannschaften AS fifa_m
            ORDER BY
                fifa_m.punkte DESC
        ) AS rangliste
    WHERE
        mannschaft = 'FC Hintepfufigen'
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  3. #3
    DonDemf DonDemf ist offline Mitglied Gold
    Registriert seit
    Jun 2011
    Beiträge
    189
    Hey,
    danke für die fixe antwort

    Ich verstehe teilweise, was du mir dort aufgeschrieben hast. aber nicht alles.

    "Select pos" kann doch nicht funktionieren, da ich keine spalte "pos" habe oder?
    und kann man das verallgemeiner für alle Teams, wo die spalte "liga" = "1. Euroliga" ist?

    Und wo kommt dann die anweisung hin, von dir ich am anfang gesprochen habe?
     

  4. #4
    Avatar von Yaslaw
    Yaslaw Yaslaw ist gerade online n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Also, pos hast du.
    Auch die 3 Anweisungen sind alle in diesem SQL drin. Einzig der Filter auf die 1. Liga nicht.
    Ich zerleg das SQL mal und erkläre es dir


    Als erstes erstellen wir ein SQL das uns die Variable definiert, die wir brauchen um die Position zu bestimmen.
    In MySQL beginnen Variablen immer mit einem @. Wenn man einer Variable einen Wert zuschreiben möchte, dann geht das über :=
    Und so initialisiere ich die Variable @pos mit dem Wert 0 (gibt so ausgeführt genau eine Zeile mit einem Feld un dem Wert 0)
    Code sql:
    1
    
    SELECT @pos:=0
    Dieses kombiniere ich nun mit deiner fifa_mannschaften Tabelle und sortieren sie nach den Punkten. Zudem baue ich hier den Filter ein um die 1. Liga zu bekommen.
    Code sql:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    SELECT
        fifa_m.mannschaft
    FROM
    -- Zusammenführung der Variablen-Tabelle und deinen 
        (SELECT @pos:=0) AS vars,
        fifa_mannschaften AS fifa_m
    -- Filterung der 1. Liga    
    WHERE
        fifa_m.liga = '1. Euroliga'
    -- Sortierung auf die Punktzahl absteigend  
    ORDER BY
        fifa_m.punkte DESC
    Noch haben wir keine Position. Dafür alle Manschaften über die die Position bestimmt wird in der richtigen Reihenfolge.
    MySQL geht mit den Variablen nun so um wie Excel mit seinen Formeln. Also von Oben nach Unten. Der Erste Datensatz kommt zuerst, dann der Zweite undsoweiter. Innerhalb eines Datensatzes von Links nch Rechts. Zuerst kommt die erste Spalte, dann die Zweite etc.
    Innerhalb der Zeile ud jeder Spalte kann die Variable verändert werden und behält dann Zeilen- und Spaltenübergreifned seinen Wert bis er wieder neu mittels := geändert wird. Dies geschieht erst nach der Filterung und nach der Sortierung.
    Unsere Variable @pos hat also vorerst den Wert 0. Nun wollen wir in der ersten Zeile den Wert 1. In der ZWeiten den Wert 2 etc.
    Wenn wir also in unserem Resultat jedesmal den Wert von @pos um 1 erhöhen, dann haben wir die Position der Manschaft innerhalb der Rangliste
    Code sql:
    1
    2
    3
    
    -- Mit dieser Zeile wird die Position um eines erhöht 
    -- und gleichzeitig unter dem Alias pos im Resultat ausgegeben
    @pos:=@pos+1 AS pos
    Also sieht die Rangliste so aus
    Code sql:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    SELECT
        @pos:=@pos+1 AS pos,
        fifa_m.mannschaft
    FROM
        (SELECT @pos:=0) AS vars,
        fifa_mannschaften AS fifa_m
    WHERE
        fifa_m.liga = '1. Euroliga'
    ORDER BY
        fifa_m.punkte DESC
    Dies gibt die Mannschaften und ihre Postitionen aus.
    Von diesem Resultat willst du die Position der Mannschaft abc haben. Ergo nimmst du dieses SQL als Quelle für ein neues SELECT-Statement
    Code sql:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    
    -- Allgemeines Subquery-Konstrukt:
    SELECT
        yz.*
    FROM
        (SELECT * FROM xy) AS yz;
    -- Das ganez auf uns andewandt
    SELECT
        pos
    FROM
        -- Die soriterte und durchnummerierte Liste:
        (
            SELECT
                @pos:=@pos+1 AS pos,
                fifa_m.mannschaft
            FROM
                (SELECT @pos:=0) AS vars,
                fifa_mannschaften AS fifa_m
            ORDER BY
                fifa_m.punkte DESC
                ) AS rangliste
    WHERE
        rangliste.mannschaft = 'abc'
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  5. #5
    DonDemf DonDemf ist offline Mitglied Gold
    Registriert seit
    Jun 2011
    Beiträge
    189
    Also für das Team Borussia Dortmund wäre folgendes Script richtig:

    PHP-Code:
    <?php
    // Allgemeines Subquery-Konstrukt:
     
    $mysql="SELECT
        pos
    FROM
        
        (
            SELECT
                @pos:=@pos+1 AS pos,
                fifa_m.mannschaft
            FROM
                (SELECT @pos:=0) AS vars,
                fifa_mannschaften AS fifa_m
            ORDER BY
                fifa_m.punkte DESC
                ) AS rangliste
    WHERE
        rangliste.mannschaft = 'Borussia Dortmund'"
    ;
        
        if(
    $pos >= "2" AND $pos <= "5") {
            
            echo 
    'Du hast deinen erhofften Platz ('.$pos.') erreicht'; } else {
                
            echo 
    'Du hast dein ziel nicht erreicht.';
            }

    ?>
     

  6. #6
    Avatar von Yaslaw
    Yaslaw Yaslaw ist gerade online n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Fast. Du musst $mysql noch auswerten mit mysql_query() und mysql_fetch_assco() oder mysql_result()
    Zudem solltest du den Teamnamen als Variabel übergeben - besser für die Zukunft.
    Und falls du das an mehreren Orten in deinem Code brauchst, schreibe eine Funktion

    PHP-Code:
    $selectedTeam 'Borussia Dortmund';
    $pos getPosition($selectedTeam);

    function 
    getPosition($team){
        
    $sql "
            SELECT
                yz.*
            FROM
                (SELECT * FROM xy) AS yz;
            SELECT
                pos
            FROM
                (
                    SELECT
                        @pos:=@pos+1 AS pos,
                        fifa_m.mannschaft
                    FROM
                        (SELECT @pos:=0) AS vars,
                        fifa_mannschaften AS fifa_m
                    ORDER BY
                        fifa_m.punkte DESC
                        ) AS rangliste
            WHERE
                rangliste.mannschaft = '
    {$team}'";
        
    $result mysql_query($sql);
        return 
    mysql_result($result0); 

     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  7. #7
    DonDemf DonDemf ist offline Mitglied Gold
    Registriert seit
    Jun 2011
    Beiträge
    189
    Ok,
    also bei Funktionen etc. bin ich noch nicht so bewandert. aber so weit ich weiß, muss ich sie jetzt aufrufen und dann meine IF anweisung durchführen oder?

    PHP-Code:
    <?php
    $selectedTeam 
    'Borussia Dortmund';
    $pos getPosition($selectedTeam);

    function 
    getPosition($team){
        
    $sql "
            SELECT
                yz.*
            FROM
                (SELECT * FROM xy) AS yz;
            SELECT
                pos
            FROM
                (
                    SELECT
                        @pos:=@pos+1 AS pos,
                        fifa_m.mannschaft
                    FROM
                        (SELECT @pos:=0) AS vars,
                        fifa_mannschaften AS fifa_m
                    ORDER BY
                        fifa_m.punkte DESC
                        ) AS rangliste
            WHERE
                rangliste.mannschaft = '
    {$team}'";
        
    $result mysql_query($sql);
        return 
    mysql_result($result0); 

        
    getPosition();

        if(
    $pos=="13") {
            
            echo 
    'Du hast deinen erhofften Platz ('.$pos.') erreicht'; } else {
                
            echo 
    'Du hast dein ziel nicht erreicht.';
            }

    ?>

    edit: obwohl, sie wird ja eigentlich hier schon aufgerufen oder?
    PHP-Code:
    $pos getPosition($selectedTeam); 
     

  8. #8
    Avatar von Yaslaw
    Yaslaw Yaslaw ist gerade online n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Jepp, ganau dort. Nachher hast du $pos und du kannst es so verwenden wie von dir vorgschlagen.
    Ich empfehle dir, PHP-Befehle und konstrukte die du nicht kennst nachzulesen was sie machen. Mit reinem C&P gibts immer Probleme. So ist in meinem SQL bereits die Annahme drin, dass die Felder die wir brauchen bei dir punkte und mannschaft heissen. Kann ja aber auch anderst sein. Dann musst du wissen wo du das anpassen musst.
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  9. #9
    DonDemf DonDemf ist offline Mitglied Gold
    Registriert seit
    Jun 2011
    Beiträge
    189
    ja,
    ich habe mir das konstrukt von dir natürlich durchgelesen und auch versucht nachzuvollziehen. mannschaft müsste man glaube ich zu name ändern, weil die Spalte "name" heißt, in der Borussia Dortmund steht. Punkte ist richtig.

    habe jetzt folgendes gemacht:

    PHP-Code:
    <?php
    function getPosition($team){
        
    $sql "
            SELECT
                yz.*
            FROM
                (SELECT * FROM xy) AS yz;
            SELECT
                pos
            FROM
                (
                    SELECT
                        @pos:=@pos+1 AS pos,
                        fifa_m.name
                    FROM
                        (SELECT @pos:=0) AS vars,
                        fifa_mannschaften AS fifa_m
                    ORDER BY
                        fifa_m.punkte DESC
                        ) AS rangliste
            WHERE
                rangliste.name = '
    {$team}'";
        
    $result mysql_query($sql);
        return 
    mysql_result($result0); 


    $selectedTeam 'Borussia Dortmund';
    $pos getPosition($selectedTeam);


        
        if(
    $pos=="13") {
            
            echo 
    'Du hast deinen erhofften Platz ('.$pos.') erreicht'; } else {
                
            echo 
    'Du hast dein ziel nicht erreicht.';
            }

    ?>
    ausgabe ist jedoch immer der Else - Teil..
     

  10. #10
    Avatar von Yaslaw
    Yaslaw Yaslaw ist gerade online n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Ups, mein C&P-Fehler Sorry. Im SQL stecken 2 SQLs drin. Asche über mein Haubt.

    So müsste natürlich das SQL sein.
    PHP-Code:
        $sql "
            SELECT
                pos
            FROM
                (
                    SELECT
                        @pos:=@pos+1 AS pos,
                        fifa_m.name
                    FROM
                        (SELECT @pos:=0) AS vars,
                        fifa_mannschaften AS fifa_m
                    ORDER BY
                        fifa_m.punkte DESC
                        ) AS rangliste
            WHERE
                rangliste.name = '
    {$team}'"
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  11. #11
    DonDemf DonDemf ist offline Mitglied Gold
    Registriert seit
    Jun 2011
    Beiträge
    189
    Stimmt, das xy und yz war ja nur ein allgemeiner SQL Befehl als Beispiel


    aber es erscheint dennoch nur der Else teil:

    PHP-Code:
    <?php
    function getPosition($team){
    $sql "
            SELECT
                pos
            FROM
                (
                    SELECT
                        @pos:=@pos+1 AS pos,
                        fifa_m.name
                    FROM
                        (SELECT @pos:=0) AS vars,
                        fifa_mannschaften AS fifa_m
                    ORDER BY
                        fifa_m.punkte DESC
                        ) AS rangliste
            WHERE
                rangliste.name = '
    {$team}'";  
        
    $result mysql_query($sql);
        return 
    mysql_result($result0); 


    $selectedTeam 'Borussia Dortmund';
    $pos getPosition($selectedTeam);


        
        if(
    $pos=="13") {
            
            echo 
    'Du hast deinen erhofften Platz ('.$pos.') erreicht'; } else {
                
            echo 
    'Du hast dein ziel nicht erreicht.';
            }

    ?>
     

  12. #12
    Avatar von Yaslaw
    Yaslaw Yaslaw ist gerade online n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Dazu kann es 2 Gründe geben.
    1) die Position ist nicht 13
    2) wir haben einen Fehler im SQL-Statement

    Beides kannst du per debug innerhalb der Funktion herausfinden.
    [PHP] [MySQL] Debug Queries
    Teste mal dein generiertes SQL und poste es hier. Dann sehen wir ev. weitere Fehler.
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  13. #13
    DonDemf DonDemf ist offline Mitglied Gold
    Registriert seit
    Jun 2011
    Beiträge
    189
    Also der Tabellenplatz ist definitiv 13.

    habe nun alle mir bekannten debug methoden eingesetzt:

    PHP-Code:
    <?php
    error_reporting
    (E_ALL);
    function 
    getPosition($team){
    $sql "
            SELECT
                pos
            FROM
                (
                    SELECT
                        @pos:=@pos+1 AS pos,
                        fifa_m.name
                    FROM
                        (SELECT @pos:=0) AS vars,
                        fifa_mannschaften AS fifa_m
                    ORDER BY
                        fifa_m.punkte DESC
                        ) AS rangliste
            WHERE
                rangliste.name = '
    {$team}'";  
        
    $result mysql_query($sql);
    echo 
    "{$sql}\n";
    echo 
    mysql_error();
        return 
    mysql_result($result0); 


    $selectedTeam 'Borussia Dortmund';
    $pos getPosition($selectedTeam);


        
        if(
    $pos=="12") {
            
            echo 
    'Du hast deinen erhofften Platz ('.$pos.') erreicht'; } else {
                
            echo 
    'Du hast dein ziel nicht erreicht.';
            }

    ?>
    Ausgabe ist folgende:
    Code :
    1
    
    SELECT pos FROM ( SELECT @pos:=@pos+1 AS pos, fifa_m.name FROM (SELECT @pos:=0) AS vars, fifa_mannschaften AS fifa_m ORDER BY fifa_m.punkte DESC ) AS rangliste WHERE rangliste.name = 'Borussia Dortmund' Du hast dein ziel nicht erreicht.


    EDIT:


    Wenn ich das debuggen nach der Funktion mache erscheint folgendes:

    Resource id #148
     

  14. #14
    DonDemf DonDemf ist offline Mitglied Gold
    Registriert seit
    Jun 2011
    Beiträge
    189
    Ich habe die Abfrage nun nochmal etwas geändert und identifiziere die Teams nun durch ihre ID.

    Die id 68 steht für den AC Mailand. Dieser belegt den Platz 10.
    Die abfrage funktioniert und es kommt die richtige Ausgabe.

    Bei allen anderen Teams geht dies ebenfalls, nur bei der Teamid 2 (Borussia Dortmund) mit platz 13 nicht.

    Es ist aber definitiv platz 13.


    PHP-Code:
    <?php
    error_reporting
    (E_ALL);
    function 
    getPosition($team){
    $sql "
            SELECT
                pos
            FROM
                (
                    SELECT
                        @pos:=@pos+1 AS pos,
                        fifa_m.id
                    FROM
                        (SELECT @pos:=0) AS vars,
                        fifa_mannschaften AS fifa_m
                    ORDER BY
                        fifa_m.punkte DESC
                        ) AS rangliste
            WHERE
                rangliste.id = '
    {$team}'";  
        
    $result mysql_query($sql);

        return 
    mysql_result($result0);



    $selectedTeam '68';
    $pos getPosition($selectedTeam);

     echo 
    "{$sql}\n";
    echo 
    mysql_error();
        
        if(
    $pos=="10") {
            
            echo 
    'Du hast deinen erhofften Platz ('.$pos.') erreicht'; } else {
                
            echo 
    'Du hast dein ziel nicht erreicht.';
            }

    ?>
     

  15. #15
    Avatar von Yaslaw
    Yaslaw Yaslaw ist gerade online n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Weil die 13 Unglück bringt.... Ne, Blödsinn.
    Zuerst vornweg. Die ID wirst du warscheinlich als Zahl in der Datenbank definiert haben. Dann solltest du sie im SQL auch wie eine Zahl behandeln. Also weg mit den '
    Code sql:
    1
    
    rangliste.id = {$team}

    Da geht wirklich nur noch eines. Rein in die Datenbank
    Sind die Daten geheim? Ansonsten kannst du mal ein Tabellenexport als SQL (inkl. Create Table) über phpMyAdmin machen. Dann könnte ich das selber mal durchtesten. Irgendwas ist da komisch.

    Achja, ein var_dump() auf $pos könntest du noch versuchen - mal schauen was für eine Position gibts da an.

    Eine weitere Idee: Kann es sein, dass mehrere Teams die gleiche Punktzahl haben? Dann müssen wir die Sortierung erweitern, da e sonst Glücksache ist, welches der Teams mit gleicher Punktezahl welchen Rang belegt.
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

Ähnliche Themen

  1. Position eines Wortes in einem String ermitteln
    Von spex im Forum Visual Basic 6.0
    Antworten: 1
    Letzter Beitrag: 28.12.07, 10:44
  2. Position von CEdit ermitteln und neue Position setzen
    Von olliss im Forum VisualStudio & MFC
    Antworten: 1
    Letzter Beitrag: 15.09.05, 19:30
  3. Position eines Browserfensters ermitteln
    Von zeppo im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 07.03.05, 07:51
  4. Position inherhalb eines Array ermitteln
    Von Funky_MF im Forum PHP
    Antworten: 1
    Letzter Beitrag: 18.02.05, 18:24
  5. Position eines Bildes ermitteln
    Von barbapapa im Forum Javascript & Ajax
    Antworten: 5
    Letzter Beitrag: 18.11.04, 14:42