Rainer: MySQL SELECT Problem

Hallo und Guten Morgen,

SELECT MAX(Serie1) FROM liga_einzel WHERE Spieler1 = '708' AND Serie1 < '125'

holt mir die maximale Serie des Spielers aud der DB. Das funktioniert auch so. Ich benötige aber aus diesem Datensatz noch die dazugehörende Spalte Aufn1.

SELECT MAX(Serie1),Aufn1 FROM liga_einzel WHERE Spieler1 = '708' AND Serie1 < '125'

bringt die Fehlermeldung: Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in E:\xampplite\htdocs\www.tbv.de\test.php on line 6

Die Spalte existiert und es steht auch ein Wert darin. Hat wer eine Idee woran das liegt.

PHP 4.xx MySQL323

Gruß Rainer

  1. echo $begrüßung;

    bringt die Fehlermeldung: Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in E:\xampplite\htdocs\www.tbv.de\test.php on line 6

    Das ist einer der am Meisten vorkommenden PHP-Fehlermeldungen. Dazu müsste Google Tonnen von Lösungen auflisten können. Hier noch eine:

    Die Spalte existiert und es steht auch ein Wert darin. Hat wer eine Idee woran das liegt.

    Dieser Fehler ist ein Folgefehler, der entsteht, wenn man die Ergebnisse vorhergehender mysql-Funktionsaufrufe nicht richtig auswertet. Im Fehlerfall liefern sie kein Ressourcenkennung sondern false. Und ein false ist kein gültiges Argument für die Fetch-Funktion. Das PHP-Handbuch klärt dich über die richtige Verwendung der Funktionen auf.

    echo "$verabschiedung $name";

  2. Hallo

    SELECT MAX(Serie1) FROM liga_einzel WHERE Spieler1 = '708' AND Serie1 < '125'

    holt mir die maximale Serie des Spielers aud der DB. Das funktioniert auch so. Ich benötige aber aus diesem Datensatz noch die dazugehörende Spalte Aufn1.

    Das ist ein Standardproblem, für das es eine Standardlösung gibt.
    Das folgende Statement ist nicht die Standardlösung, sondern im
    Allgemeinen einfach falsch :-)

    SELECT MAX(Serie1),Aufn1 FROM liga_einzel WHERE Spieler1 = '708' AND Serie1 < '125'

    Ändert sich das Ergebnis, wenn Du nach der Spalte Aufn1 gruppierst? Wenn ja,
    dann ist Dein Statement falsch und produziert zufällig das gewünschte Resultat.
    Ich zitiere aus dem verlinkten Handbuchabschnitt:

    <zitat>
        Do not use this feature if the columns you omit from the GROUP BY part
        are not constant in the group. The server is free to return any value
        from the group, so the results are indeterminate unless all values are
        the same.
    </zitat>

    PHP 4.xx MySQL323

    Das ist traurig. Das ist sehr traurig. MySQL 3.23 kann die Standardlösung
    nicht, MySQL 4.1.x oder neuer wäre erforderlich. Lösungsmöglichkeiten für
    Deine MySQL-Version zeigt Dir der entsprechende Handbuchabschnitt.

    Auf Deine PHP-Fehler hat Dich dedlfix bereits hingewiesen.

    Freundliche Grüße

    Vinzenz