Anzeige

select box mit SQL anweisung

select box mit SQL anweisung | PSD-Tutorials.de

Erstellt von rey, 27.11.2007.

  1. rey

    rey Der Frager ;)

    Dabei seit:
    26.06.2006
    Beiträge:
    836
    Geschlecht:
    männlich
    Software:
    3Ds Max, Maya
    Kameratyp:
    Canon 50D
    select box mit SQL anweisung
    hi,
    ich möchte eine select box machen mit einer SQL anweisung das ganze in einer IF schleife.
    das ganze schaut so aus:
    die select box hat folgende werte:
    Alle
    1n1
    2n2
    3n3
    4n4

    Das heißt wenn man alle auswählt soll es alle einträge anzeigen die inder Datenbank vorhaden sind
    wenn man 1n1 auswählt soll es nur die 1n1 anzeigen usw.
    ob es ein 1n1 2n2 3n3 4n4 war wird anhand der Spieleranzahl ermittelt.
    bei zwei spielern ist es ein 1n1 bei 4 ein 2n2 bei 6 ein 3n3 und bei 8 ein 4n4
    aber bei den 2n2 soll es auch die einträge wo nur 3 spieler vorhanden sind anzeigen beim 3n3 wo es 5 oder 6 sind und beim 4n4 7 oder mehr
    ich weiß allerdings nicht wie ich das mit der selectbox anstellen kann. das ist mein Problem.
    so schaut mein code aus aber geht nicht
    PHP:
    1. <p>Filter
    2.  
    3. <?php
    4.         if ( $error_msg != "")
    5.         {
    6.         echo $error_msg;
    7.         }
    8.        
    9.     ?>
    10. <form method="post" action="<?php echo $_REQUEST["PHP_SELF"]; ?>">
    11.   <label>Bitte geben Sie den Spielernamen ein:
    12.   <input type="text" name="account">
    13.   </label>
    14.     <input type="hidden" name="do" value="insert">
    15.   <input type="submit" name="Suchen" value="Suchen" border="0" />
    16.   <br />
    17.   <label>Bitte W&auml;hlen Sie eine Kategrie aus  ein:
    18.   <select name="filter">
    19. <option value="alle" selected>alle</option>
    20. <option value="2">1on1</option>
    21. <option value="3 OR anzahlsp =4">2on2</option>
    22. <option value="5 OR anzahlsp =6">3on3</option>
    23. <option value="7 OR anzahlsp>=8">4on4</option>
    24. </select>
    25.   <input type="hidden" name="do2" value="insert" />
    26.   <input type="submit" name="Anzeigen" value="Anzeigen" border="0" />
    27.  
    28.   <label></label>
    29.   <label>
    30.  
    31.   </label>
    32. </form>
    33. <p>&nbsp;</p>
    34.  
    35. <table>
    36. <?php
    37.  
    38.  if ( isset($_REQUEST["do"]) && $_REQUEST["do"] == "insert" )
    39.    {
    40.        
    41.     $error_msg  =   "";    
    42.    
    43.     if ( $_REQUEST["account"] == "" )
    44.     {
    45.         $error_msg  =   "Ohne Spielernamen wird das nichts!!!<br>";
    46.     }
    47.    
    48.     if ( $error_msg == "")
    49.     {
    50.      
    51.  
    52. $status =   mysql_connect("localhost", "root", "");
    53.        
    54.         if ( ! $status )
    55.         {
    56.             die("Konnte die Datenbank nicht erreichen!");
    57.         }
    58.        
    59.         $status =   mysql_select_db("coc");
    60.        
    61.         if ( ! $status )
    62.         {
    63.             die("Konnte die Datenbank nicht &&amp;auml;ndern: " . mysql_error() );
    64.         }
    65.  
    66.  
    67. $query = mysql_query("SELECT * FROM replaydb WHERE (TeamA LIKE '%". $_REQUEST["account"]."%') OR (TeamB LIKE '%".$_REQUEST["account"]."%')");         if ( ! $query )
    68.         {
    69.         die("Die Such Abfrage konnte nicht starten: " . mysql_error() );
    70.         }
    71.         else{
    72.     while ($ds = mysql_fetch_object($query))
    73. {
    74.    $id = $ds ->fileID;
    75.   $gewinner = $ds ->TeamB;
    76.   $verlierer = $ds -> TeamA;
    77.   $mapname = $ds ->MapName;
    78.   $dauer = $ds ->Dauer;
    79.   $datum = $ds ->Datum;
    80.   $matchup =$ds ->MatchUp;
    81.   $replay =$ds ->ReplayPfad;
    82. echo "
    83. <tr onmouseover=\"this.style.backgroundColor='#ccc';\" onmouseout=\"this.style.backgroundColor='';\" class=\"1px-rahmen\"><td width='200px' class=\"1px-rahmen\">$gewinner</td> <td width='20px'class=\"1px-rahmen\">Vs.</td> <td width='200px' class=\"1px-rahmen\"> $verlierer </td> <td class=\"1px-rahmen\">$matchup</td> <td class=\"1px-rahmen\">$dauer</td><td class=\"1px-rahmen\">$datum</td><td class=\"1px-rahmen\">$mapname</td><td class=\"1px-rahmen\"><a href=\"Detailsrep.php?path=$replay\">Details</a></td><td class=\"1px-rahmen\"><a href=repasmrep/$replay> Download</a></td>
    84. ";
    85. }
    86. }
    87. }
    88. }
    89. ?>
    90. <?php
    91.  
    92.  if ( isset($_REQUEST["do2"]) && $_REQUEST["do2"] == "insert" )
    93.    {
    94.        
    95.     $error_msg  =   "";    
    96.    
    97.     if ( $_REQUEST["filter"] == "" )
    98.     {
    99.         $error_msg  =   "<br>";
    100.     }
    101.    
    102.     if ( $error_msg == "")
    103.     {
    104.      
    105.  
    106. $status =   mysql_connect("localhost", "root", "");
    107.        
    108.         if ( ! $status )
    109.         {
    110.             die("Konnte die Datenbank nicht erreichen!");
    111.         }
    112.        
    113.         $status =   mysql_select_db("coc");
    114.        
    115.         if ( ! $status )
    116.         {
    117.             die("Konnte die Datenbank nicht &&amp;auml;ndern: " . mysql_error() );
    118.         }
    119.  
    120. if ($_REQUEST['filter'] ='alle'){
    121. $query = mysql_query("SELECT * FROM replaydb");       if ( ! $query )
    122.         {
    123.         die("Die Such Abfrage konnte nicht starten: " . mysql_error() );
    124.         }
    125.         else{
    126.     while ($ds = mysql_fetch_object($query))
    127. {
    128.    $id = $ds ->fileID;
    129.   $gewinner = $ds ->TeamB;
    130.   $verlierer = $ds -> TeamA;
    131.   $mapname = $ds ->MapName;
    132.   $dauer = $ds ->Dauer;
    133.   $datum = $ds ->Datum;
    134.   $matchup =$ds ->MatchUp;
    135.   $replay =$ds ->ReplayPfad;
    136. echo "
    137. <tr onmouseover=\"this.style.backgroundColor='#ccc';\" onmouseout=\"this.style.backgroundColor='';\" class=\"1px-rahmen\"><td width='200px' class=\"1px-rahmen\">$gewinner</td> <td width='20px'class=\"1px-rahmen\">Vs.</td> <td width='200px' class=\"1px-rahmen\"> $verlierer </td> <td class=\"1px-rahmen\">$matchup</td> <td class=\"1px-rahmen\">$dauer</td><td class=\"1px-rahmen\">$datum</td><td class=\"1px-rahmen\">$mapname</td><td class=\"1px-rahmen\"><a href=\"Detailsrep.php?path=$replay\">Details</a></td><td class=\"1px-rahmen\"><a href=repasmrep/$replay> Download</a></td>
    138. ";
    139. }
    140. }
    141. }
    142. elseif($_REQUEST['filter'] ='2'){
    143. $query = mysql_query("SELECT * FROM replaydb Where anzahlsp=2");          if ( ! $query )
    144.         {
    145.         die("Die Such Abfrage konnte nicht starten: " . mysql_error() );
    146.         }
    147.         else{
    148.     while ($ds = mysql_fetch_object($query))
    149. {
    150.    $id = $ds ->fileID;
    151.   $gewinner = $ds ->TeamB;
    152.   $verlierer = $ds -> TeamA;
    153.   $mapname = $ds ->MapName;
    154.   $dauer = $ds ->Dauer;
    155.   $datum = $ds ->Datum;
    156.   $matchup =$ds ->MatchUp;
    157.   $replay =$ds ->ReplayPfad;
    158. echo "
    159. <tr onmouseover=\"this.style.backgroundColor='#ccc';\" onmouseout=\"this.style.backgroundColor='';\" class=\"1px-rahmen\"><td width='200px' class=\"1px-rahmen\">$gewinner</td> <td width='20px'class=\"1px-rahmen\">Vs.</td> <td width='200px' class=\"1px-rahmen\"> $verlierer </td> <td class=\"1px-rahmen\">$matchup</td> <td class=\"1px-rahmen\">$dauer</td><td class=\"1px-rahmen\">$datum</td><td class=\"1px-rahmen\">$mapname</td><td class=\"1px-rahmen\"><a href=\"Detailsrep.php?path=$replay\">Details</a></td><td class=\"1px-rahmen\"><a href=repasmrep/$replay> Download</a></td>
    160. ";
    161. }
    162. }
    163. }
    164. }
    165. }
    166.  
    167.  
    168. ?>
    169. </table>
    170.  
    Des weiteren hatte ich mir noch nen anderen filter überlegt aber ich glaube so etwas ist nicht möglich.

    ich erstelle zwei textfelder einmal home team einmal Guest team
    wenn man im Home team z.B. Z eingibt und im Guest team P eingibt dann soll es in der Datenbank nach einem eintrag suche der so ausschaut ZvP
    wenn ich im Home team ZT eingebe u8nd im Guest team PP eingebe soll es in der Datenbank nach den Einträgen er spalte matchup gucken wo es so drin steht ZTvPP
     
    Zuletzt bearbeitet: 27.11.2007
    #1      
  2. rey

    rey Der Frager ;)

    Dabei seit:
    26.06.2006
    Beiträge:
    836
    Geschlecht:
    männlich
    Software:
    3Ds Max, Maya
    Kameratyp:
    Canon 50D
    select box mit SQL anweisung
    AW: select box mit SQL anweisung

    versteht jemand das Problem nicht?
     
    #2      
  3. rey

    rey Der Frager ;)

    Dabei seit:
    26.06.2006
    Beiträge:
    836
    Geschlecht:
    männlich
    Software:
    3Ds Max, Maya
    Kameratyp:
    Canon 50D
    select box mit SQL anweisung
    AW: select box mit SQL anweisung

    ja das php self geht.

    was die SQL Anweisungen suchen sollen habe ich doch gesagt :(
    also wenn "alle" ausgewählt wurde sollen alle eintäge die vorhanden sind ausgegeben werden. Bei 1n1 alle wo die anzahl der spieler =2 ist
    bei 2n2 alle wo die spieleranzahl =3 oder =4 ist bei 3n3 wo die Spieler anzahl 5 oder 6 ist und bei 4n4 alle wo die spieleranzahl größer 6 ist.
     
    #3      
  4. Poddn

    Poddn Guest

    select box mit SQL anweisung
    AW: select box mit SQL anweisung

    SQL direkt über ein form übertragen und ungeprüft ausführen? Garnicht gut. Damit kann jeder der ein bisschen Ahnung hat beliebige SQL-Queries auf deiner Datenbank ausführen.

    Du solltest stattdessen über das form lediglich abstrakte Option-Werte übertragen so wie du es mit der Option "alle" ja schon gemacht hast. Damit der Code etwas übersichtlicher wird, könntest du die einzelnen Options mit einem switch...case abfeiern.
     
    #4      
  5. rey

    rey Der Frager ;)

    Dabei seit:
    26.06.2006
    Beiträge:
    836
    Geschlecht:
    männlich
    Software:
    3Ds Max, Maya
    Kameratyp:
    Canon 50D
    select box mit SQL anweisung
    AW: select box mit SQL anweisung

    das problem ist ja das die funktion der option alle die einzige ist die funktioniert 1n1 2n2 3n3 und 4n4 gehen nicht und wie man das mit case machen könnte weiß ich leider nicht
     
    #5      
  6. Poddn

    Poddn Guest

    select box mit SQL anweisung
    AW: select box mit SQL anweisung

    Ich würd mal sagen so:

    PHP:
    1.  
    2. (...)
    3. $mySelection = $_REQUEST['filter'];
    4.  
    5. switch($mySelection)
    6. {
    7.   case "all":
    8.     $myQuery = "SELECT * FROM replaydb";
    9.     break;
    10.  
    11.   case "1":
    12.     $myQuery = "SELECT * FROM replaydb WHERE anzahlsp=2";
    13.     break;
    14.  
    15.   case "2":
    16.     $myQuery = "SELECT * FROM replaydb WHERE anzahlsp BETWEEN 2 AND 3";
    17.     break;
    18. }
    19.  
    20. $query = mysql_query($myQuery);
    21. (...)
    22.  
    23.  
     
    #6      
  7. rey

    rey Der Frager ;)

    Dabei seit:
    26.06.2006
    Beiträge:
    836
    Geschlecht:
    männlich
    Software:
    3Ds Max, Maya
    Kameratyp:
    Canon 50D
    select box mit SQL anweisung
    AW: select box mit SQL anweisung

    ich habe noch einen Filter eingebaut
    wo man alle Begegnungen nach dem Matchup filter kann. Aber das Problem ist wenn es z.B. 10 Begegnungen gab wo der Matchup PvT war wird es auch 10 mal in der Select box angezeigt kann man das irgendwie beheben damit es nur noch einmal in der Select box vorkommt?
    PHP:
    1.  
    2. echo "<select name=\"mu\">";
    3. $sql = mysql_query("SELECT MatchUp FROM replaydb");
    4. while ($ds = mysql_fetch_object($sql))
    5. {
    6.   $mu = $ds ->MatchUp;
    7.  
    8. echo"<option value=\"$mu\">$mu</option>";
    9.  
    10. }
    11. echo"</select>";
     
    #7      
  8. Poddn

    Poddn Guest

    select box mit SQL anweisung
    AW: select box mit SQL anweisung

    Naja - mit "Select MatchUp from replaydb" wählst du die komplette MatchUp-Spalte aus. Du holst dir also von jedem Datensatz in deiner Datenbank die MatchUp-Spalte.

    Ich vermute jetzt einfach mal ein bisschen was. Du hast in dieser MatchUp-Spalte verschiedene Spieltypen stehen, willst aber nicht 5x PvT und 2x PoddnVsRestDerWelt zurückbekommen, sondern nur jeden Spieltyp einmal.

    Das könntest du mit dem Parameter "Distinct" lösen: "SELECT DISTINCT MatchUp FROM replaydb" - damit werden doppelte Datensätze eleminiert.
     
    #8      
  9. blackout

    blackout Schaf im Wolfspelz

    Dabei seit:
    12.09.2005
    Beiträge:
    3.359
    Geschlecht:
    männlich
    Ort:
    Würzburg
    Kameratyp:
    Rollei 35 S
    select box mit SQL anweisung
    AW: select box mit SQL anweisung

    $_REQUEST ist böse, denn es vereint $_GET, $_COOKIE und $_POST -- man kann also per GET in Postdaten und den gesendeten Cookies rumfummeln. :)
     
    #9      
  10. rey

    rey Der Frager ;)

    Dabei seit:
    26.06.2006
    Beiträge:
    836
    Geschlecht:
    männlich
    Software:
    3Ds Max, Maya
    Kameratyp:
    Canon 50D
    select box mit SQL anweisung
    AW: select box mit SQL anweisung

    ist ja wie in access ;)
    thx
     
    #10      
  11. Poddn

    Poddn Guest

    select box mit SQL anweisung
    AW: select box mit SQL anweisung

    Also, gewisse Leute finden das garnicht so schlecht ;)
     
    #11      
  12. rey

    rey Der Frager ;)

    Dabei seit:
    26.06.2006
    Beiträge:
    836
    Geschlecht:
    männlich
    Software:
    3Ds Max, Maya
    Kameratyp:
    Canon 50D
    select box mit SQL anweisung
    AW: select box mit SQL anweisung

    hm.. irgendwie geht der filter net
    PHP:
    1.  
    2. $query = mysql_query("SELECT * FROM replaydb WHERE MatchUp='". $_REQUEST["mu"]."' ORDER BY anzahlsp");        if ( ! $query )
    3.         {
    4.         die("Die Such Abfrage konnte nicht starten: " . mysql_error() );
    5.         }
    6.         else{
    7. ....
    8.  
    iwie geht das net so ;)


    und wegen $_REQUEST ich habe es so durch die Videotobrain DvD's gelernt
     
    #12      
  13. Poddn

    Poddn Guest

    select box mit SQL anweisung
    AW: select box mit SQL anweisung

    Ich kenn zwar Videotobrain nicht, aber wer $_REQUEST empfiehlt ist scheisse. So.

    Zu deinem query: Bist du sicher, dass das query - falls es richtig zusammengebaut ist - überhaupt was sinnvolles zurückliefern kann?

    Tipp: Falls du ein mysqladmin installiert hast, kannst du da auch direkt queries ausführen. Zum Testen ob das query was man sich ausgedacht hat überhaupt funktioniert ist das ne prima Sache.
     
    #13      
  14. rey

    rey Der Frager ;)

    Dabei seit:
    26.06.2006
    Beiträge:
    836
    Geschlecht:
    männlich
    Software:
    3Ds Max, Maya
    Kameratyp:
    Canon 50D
    select box mit SQL anweisung
    AW: select box mit SQL anweisung

    ich habs nun mit nem case versucht
    PHP:
    1. echo "<select name=\"mu\">";
    2. $sql = mysql_query("SELECT MatchUp FROM replaydb GROUP BY MatchUp");
    3. while ($ds = mysql_fetch_object($sql))
    4. {
    5.   $mu = $ds ->MatchUp;
    6.  
    7. echo"<option value=\"$mu\">$mu</option>";
    8.  
    9. }
    10. echo"</select>";
    11. ?>
    12. <input type="hidden" name="do22" value="insert" />
    13. <input type="submit" name="Anzeigen2" value="Anzeigen" border="0" />
    PHP:
    1. $mySelectiony = $_REQUEST['mu'];
    2.  
    3. switch($mySelectiony)
    4. {
    5.   case "$mu":
    6.     $myQueryy = "SELECT * FROM replaydb Where MatchUp=$mu ORDER BY anzahlsp";
    7.     break;
    8.   }
    9. $queryy = mysql_query($myQueryy);
    10.     while ($ds = mysql_fetch_object($queryy))
    11. {
    haut leider net hin es heißt die while schleife sei falsch
     
    #14      
  15. Poddn

    Poddn Guest

    select box mit SQL anweisung
    #15      
  16. rey

    rey Der Frager ;)

    Dabei seit:
    26.06.2006
    Beiträge:
    836
    Geschlecht:
    männlich
    Software:
    3Ds Max, Maya
    Kameratyp:
    Canon 50D
    select box mit SQL anweisung
    AW: select box mit SQL anweisung

    für mich ist case eine alternative zu if
    wenn der fall ..... ist dann mach folgende aktion wenn der fall aber .... ist dann dieses usw.
     
    #16      
  17. blackout

    blackout Schaf im Wolfspelz

    Dabei seit:
    12.09.2005
    Beiträge:
    3.359
    Geschlecht:
    männlich
    Ort:
    Würzburg
    Kameratyp:
    Rollei 35 S
    select box mit SQL anweisung
    AW: select box mit SQL anweisung

    Switch wird anders angewendet als If. If prüft jedes Mal erneut das Argument, bei Switches bleibt das Argument konstant. Switch ist also geeignet um eine Variable auf viele diskrete Werte zu prüfen, If dagegen für Wertebereiche und unzusammenhängende Werte gedacht.
    Oben bei dir gehört daher zweifelsohne ein If rein. :)
     
    #17      
  18. rey

    rey Der Frager ;)

    Dabei seit:
    26.06.2006
    Beiträge:
    836
    Geschlecht:
    männlich
    Software:
    3Ds Max, Maya
    Kameratyp:
    Canon 50D
    select box mit SQL anweisung
    AW: select box mit SQL anweisung

    hatte ich aber geht irgendwie nicht

    PHP:
    1.  
    2.     if ( $_REQUEST["mu"] == "" )
    3.         {
    4.             $error_msg  =   "Ohne Spielernamen wird das nichts!!!<br>";
    5.         }
    6.        
    7.         if ( $error_msg == "")
    8.         {
    9.          
    10.    
    11.     $status =   mysql_connect("localhost", "root", "");
    12.            
    13.             if ( ! $status )
    14.             {
    15.                 die("Konnte die Datenbank nicht erreichen!");
    16.             }
    17.            
    18.             $status =   mysql_select_db("coc");
    19.            
    20.             if ( ! $status )
    21.             {
    22.                 die("Konnte die Datenbank nicht &&auml;ndern: " . mysql_error() );
    23.             }
    24.    
    25.     $mu=$_GET['$mu'];
    26.     $query = mysql_query("SELECT * FROM replaydb WHERE MatchUp='$mu' ORDER BY anzahlsp");         if ( ! $query )
    27.             {
    28.             die("Die Such Abfrage konnte nicht starten: " . mysql_error() );
    29.             }
    30.             else{
    31.         while ($ds = mysql_fetch_object($query))
    32.     {
    33.        $id = $ds ->fileID;
    34.       $gewinner = $ds ->TeamB;
    35.       $verlierer = $ds -> TeamA;
    36.       $mapname = $ds ->MapName;
    37.       $dauer = $ds ->Dauer;
    38.       $datum = $ds ->Datum;
    39.       $matchup =$ds ->MatchUp;
    40.       $replay =$ds ->ReplayPfad;
    41.     echo "
    42.     <tr onmouseover=\"this.style.backgroundColor='#ccc';\" onmouseout=\"this.style.backgroundColor='';\" class=\"1px-rahmen\"><td width='200px' class=\"1px-rahmen\">$gewinner</td> <td width='20px'class=\"1px-rahmen\">Vs.</td> <td width='200px' class=\"1px-rahmen\"> $verlierer </td> <td class=\"1px-rahmen\">$matchup</td> <td class=\"1px-rahmen\">$dauer</td><td class=\"1px-rahmen\">$datum</td><td class=\"1px-rahmen\">$mapname</td><td class=\"1px-rahmen\"><a href=\"Detailsrep.php?path=$replay\">Details</a></td><td class=\"1px-rahmen\"><a href=repasmrep/$replay> Download</a></td>
    43.     ";
    44.     }
    45.     }
    46.     }
    47.     }
     
    #18      
  19. blackout

    blackout Schaf im Wolfspelz

    Dabei seit:
    12.09.2005
    Beiträge:
    3.359
    Geschlecht:
    männlich
    Ort:
    Würzburg
    Kameratyp:
    Rollei 35 S
    select box mit SQL anweisung
    AW: select box mit SQL anweisung

    "Geht nicht" ist keine Fehlermeldung.
     
    #19      
  20. rey

    rey Der Frager ;)

    Dabei seit:
    26.06.2006
    Beiträge:
    836
    Geschlecht:
    männlich
    Software:
    3Ds Max, Maya
    Kameratyp:
    Canon 50D
    select box mit SQL anweisung
    AW: select box mit SQL anweisung

    es kommt keine Fehlermeldung.
     
    #20      
Seobility SEO Tool
x
×
×