[gw] bigBENNE: Verschiedene Auswahlen über die URL

Hallo,

ich habe auf einer Seite vier verschiedene Links, um eine Tabelle zu sortieren (die dynamisch aus einer MySQL-Datenbank in PHP eingelesen wird),
dabei werden verschiedene IDs über die URL übergeben (bf_spieler, ut_spieler, ut_squad oder gar nichts für die normale, nicht aussortierte Tabelle).

Das Script, welches ich im Moment nutze, sieht so aus:

switch ($id)
{
case 'bf_spieler':
$result = @mysql_query("SELECT nick, id, position FROM members WHERE bf_spieler=1 ORDER BY id");
break;

case 'ut_spieler':
$result = @mysql_query("SELECT nick, id, position FROM members WHERE ut_spieler=1 ORDER BY id");
break;

case 'ut_squad':
$result = @mysql_query("SELECT nick, id, position FROM members WHERE ut_squad=1 ORDER BY id");
break;

default:
$result = @mysql_query("SELECT nick, id, position FROM members ORDER BY id");
break;
}

Wenn die URL also so ist: index.php?id=bf_spieler , werden nur die Datensätze ausgegen, bei denen in der Spalte bf_spieler eine 1 steht, ansonsten nicht.

Das funktioniert so weit auch ganz gut, außer ich rufe die index.php einfach so auf, dann werden zwar alle Daten ausgegeben, doch eine Fehlermeldung über die undefinierte Variable ID stört.
Zwar lässt sich das ganze mit einem @ bei: switch ($id) (also: switch (@$id)) unterbinden, ist natürlich aber nicht sinnvoll, da ja nur die Fehlermeldung unterdrückt wird.

Meine Frage wäre nun also, wie lässt es sich einrichten, dass wenn halt KEINE ID übergeben wird, die komplette MySQL-Tabelle ausgegeben wird, ohne jegliche Fehlermeldungen???

  1. Hallo

    @ solltest du _immer_ vermeiden! Wofür brauchst du sie, schließlich willst du doch sauber Progrmmieren. Außerdem lassen sie dich nur über evtl. auftretende Fehler stolpern und vertuschen sie dir.

    Die Lösung deines Problems findest du in den FAQs.
    28.16. Notice: Undefined variable ...
    http://www.dclp-faq.de/q/q-fehler-variable.html

    Grüße

    David

    --
    "Nobody will ever need more than 640k RAM!"
    1981 Bill Gates
    1. Hallo

      @ solltest du _immer_ vermeiden!

      Das sagte ich ja auch schon*G*

      Die Lösung deines Problems findest du in den FAQs.
      28.16. Notice: Undefined variable ...
      http://www.dclp-faq.de/q/q-fehler-variable.html

      Entweder ich habs überlesen oder es hilft mir auch net weiter:
      Habe schon isset in mein Script eingesetzt, nur dann ist es egal was ich auswähle, und es wird immer das gleiche ausgewählt.

      --
      visite http://www.gw-clan.com | [gw] bigBENNE | Benedikt Loepp
  2. Hallo [gw] bigBENNE,

    $result = @mysql_query("SELECT nick, id, position FROM members WHERE bf_spieler=1 ORDER BY id");
    $result = @mysql_query("SELECT nick, id, position FROM members WHERE ut_spieler=1 ORDER BY id");
    $result = @mysql_query("SELECT nick, id, position FROM members WHERE ut_squad=1 ORDER BY id");

    warum nicht ...WHERE $id=1 ORDER BY... (natürlich aufpassen, dass dir nichts mit der $id eingeschmugelt wird)
    btw: nicht $id sondern $_GET['id'].

    Meine Frage wäre nun also, wie lässt es sich einrichten, dass wenn halt KEINE ID übergeben wird, die komplette MySQL-Tabelle ausgegeben wird, ohne jegliche Fehlermeldungen???

    naja, einfach mit:
    if(!isset($_GET['id'])){
    //alle daten
    }
    else{
    //mit Einschränkung
    }

    Grüße aus Nürnberg
    Tobias

    --
    Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
    1. Hallo

      naja, einfach mit:
      if(!isset($_GET['id'])){
      //alle daten
      }
      else{
      //mit Einschränkung
      }

      Das werd ich mal ausprobieren, weil bisher hatte ich ja bei IF die Einschränkungen und bei ELSE alle Daten - Naja, mal schaun, heut net mehr, werd mich morgen mal um das Problem kümmern

      cu [gw] bigBENNE

      --
      visite http://www.gw-clan.com | [gw] bigBENNE | Benedikt Loepp