MYSQL-Abfrage stoppen ?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • MYSQL-Abfrage stoppen ?

    Guck guck !

    Beschäftige mich seit einiger Zeit mit PHP und konnte bis jetzt egtl. jedes Problem irgendwie lösen. Aber nun steh ich vor einem Rätsel ...

    PHP-Code:
    <?php
    #MYSQL-Abfrage der Squads

    for($i=0;$i<mysql_num_rows($result);$i++)
    {
    $squad=mysql_result($result$i'squad');

    $sql3="SELECT userid, nick, squad, nation, email FROM mem_member WHERE squad = '$squad'";
    mysql_select_db($dbname$link);
    $result1=mysql_query($sql3$link);

    #HTML
    echo mysql_result($result10'squad')
    #HTML

    for($y=0;$y<mysql_num_rows($result1);$y++)
    {

    #HTML + Ausgabe der Memberdaten

    }
    }
    ?>
    Oben werden die Squads abgefragt, aus der Tabelle "mem_squads" dann werden die einzelnen Squads in die Variable "Squad" geschrieben und weiter unten wird jeder Member mit wo der Eintrag $squad übereinstimmt aus der Tabelle gelesen und später ausgelistet. Also:

    Squad1
    Member
    Member

    Squad2
    Member
    Member
    ...

    Funktioniert auch soweit alles, nur wenn ich jetzt einen weiteren Squad in die mem_squads hinzufüge, und in der Tabelle der Member aber kein Member dem neuen Squad hinzugefügt wird bekomme ich die Fehlermeldung:
    Warning: mysql_result(): Unable to jump to row 0 on MySQL result index 10 in /www/htdocs/w0056b43/php_tests/memberscript3/admin/adminindex.php on line 24

    Ist ja klar, durch WHERE squad='$squad' findet er in der Membertabelle nichts!
    Wie könnte ich es nun lösen, dass er nur den Squad auflistet, wenn auch wirklich ein Member diesem Squad hinzugefügt wird ? Und wenn kein Member hinzugefügt wurde. dass er nur den Squad auflistet, ohne Member ?

    Schonmal Danke für eure Hilfe !
    LG

    Ps.: Boardregeln gelesen ...! Sollte ich trotzdem was falsch gemacht haben, weisst mich bitte drauf hin ... aus Fehlern lernt man !

    Ps2.: Line 24 ist "echo mysql_result($result1, 0, 'squad')"
    Zuletzt geändert von starr112; 15.06.2006, 21:33.

  • #2
    Re: MYSQL-Abfrage stoppen ?

    quick n' dirty
    PHP-Code:
    <?php
    #MYSQL-Abfrage der Squads

    for($i=0;$i<mysql_num_rows($result);$i++)
    {
        
    $squad=mysql_result($result$i'squad');

        
    $sql3="SELECT userid, nick, squad, nation, email FROM mem_member WHERE squad = '$squad'";
        
    mysql_select_db($dbname$link);
        
    $result1=mysql_query($sql3$link);

        if (
    mysql_num_rows($result1) > 0) {

            
    #HTML
            
    echo mysql_result($result10'squad')
            
    #HTML

            
    for($y=0;$y<mysql_num_rows($result1);$y++)
            {

                
    #HTML + Ausgabe der Memberdaten

            
    }
        } else {
            echo 
    $squad ' mit 0 Einträgen';
        }
    }
    ?>
    (gewöhn dir mal Einrücken an ^^,)

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      Re: Re: MYSQL-Abfrage stoppen ?

      und btw
      sowas
      PHP-Code:
      for($i=0;$i<mysql_num_rows($result);$i++) 
      würde ich durch
      PHP-Code:
      while ($row mysql_fetch_assoc($result)) 
      ersetzen, dürfte wesentliche performanter sein. $i sparst du dir (sofern du es nicht brauchst) und mysql_num_rows wird nicht bei JEDEM Schleifendurchgang erneut ausgeführt...
      wenn du $i wirklich brauchst, würde ich entweder
      PHP-Code:
      $i 0; while ($row mysql_fetch_assoc($result)) {blubb; ++$i
      oder
      PHP-Code:
      for ($i 0$anzahl mysql_num_rows($result); $i $anzahl, ++$i
      nehmen

      abgesehen davon finde ich die Lösung mit while einfacher eleganter ^^

      Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

      bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
      Wie man Fragen richtig stellt

      Kommentar


      • #4
        Hui, danke für die schnelle Antwort !
        Werd ich gleich mal testen ^^

        (Das mit dem Einrücken werd ich mir hinter die Löffel schreiben *g*)

        LG

        //Edit: Klappt einwandfrei, vielen, vielen Dank!
        Zuletzt geändert von starr112; 15.06.2006, 21:46.

        Kommentar

        Lädt...
        X