Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] hilfe

Einklappen

Neue Werbung 2019

Einklappen
Dieses Thema ist geschlossen.
X
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] hilfe

    bei den anfängern wie ich selbst bin bekomme ich keine antwort ich brauch mal ne gute idee

    ich brauche einfach nur ne idee wie ich nen datensatz nach 3 unterschielichen kriterien filtern kann und das dynamisch aus dem formular heraus ...mir platzt hier der schedel ich komme auf keine idee
    also die filter sollen im formularkopf gesetzt werden die daten sollen je nach verwendetem filter angezeigt werden wenn keiner gesetzt wird sollen alle gezeigt werden

    für einen filter habe ich ja ne lösung aber nicht für 3


  • #2
    Noch einer, der entweder http://www.phpfriend.de/forum/ftopic21515.html nicht gelesen oder nicht verstanden hat.
    Das Forum ist nicht nach Beantwortern sondern nach Fragestellungen/Fragern aufgeteilt.
    Hier beantworten die selben Leute, wie bei "PHP - Anfänger". Oder glaubst Du wirklich, dass die Helfer hier so versnobt sind?

    Kommentar


    • #3
      mann ich will einfach nur ne antwort mehr nicht weil ich seit über 16 stunden vor diesem problem sitze

      Kommentar


      • #4
        ich weiß nicht was loss ist wer versnobt ist aber auf ne einfache frage kann man doch mal ne einfache antwort geben

        Kommentar


        • #5
          PHP-Code:
          <?php

          if (<ersteBedingung>)
              
          $where .= " AND ersteBedingung='irgendwas'";
          if(<
          zweiteBedingung>)
              
          $where .= " AND zweiteBedingung='irgendwas'";
          if(<
          dritteBedingung>)
              
          $where .= " AND dritteBedingung='irgendwas'";
          ?>
          Wie <ersteBedingung> usw aussieht, hängt von Deiner Aufgabe ab. Ob AND oder OR auch.
          Und Du musst Dich darum kümmern, dass vor der ersten Bedingung kein AND/OR steht.

          Kommentar


          • #6
            mein problem ist wenn kein filter gesetzt wird sollen alle daten angezeigt werden ..geht das auch mit der function ??

            Kommentar


            • #7
              so wäre die abfrage ohne bedingungen :

              $query_user = "SELECT username, lastname, userlevel, dstnr FROM `_user`";

              Kommentar


              • #8
                also ich habe mal den code hier ich stelle mich dafür zu dä... an


                if ((isset($_GET['username']))
                $colname_user = (get_magic_quotes_gpc()) ? $_GET['username'] : addslashes($_GET['username']); )
                $where .= " AND username='$username'";
                if ((isset($_GET['dstnr']))
                $colname_dstnr = (get_magic_quotes_gpc()) ? $_GET['dstnr'] : addslashes($_GET['dstnr']); )
                $where .= " AND dstnr='$dstnr'";

                Kommentar


                • #9
                  Was soll

                  PHP-Code:
                  <?php
                  if ((((((((isset($_GET['username'])))))))
                  ?>
                  Ist das leserlich? Nein!

                  Warum setzt du keine geschweiften Klammern oder benutzt wenigstens hier den [ php ]-Tag? Überleg dir doch ganz simpel was für 3 SQL-Befehle brauchst du für die möglichen Zustände?

                  Zustand 1:
                  Nur User mit dem übergebenen Anfangsbuchstaben sollen gewählt werden.
                  SQL-Befehl:
                  SELECT * FROM user WHERE name LIKE '$_GET[char]%'

                  Zustand 2:
                  Nur der Benutzer mit dem übergebenen Namen soll angezeigt werden:
                  SELECT * FROM user WHERE name = '$_GET[name]'

                  Zustand 3:
                  Alle sollen ausgewählt werden:
                  SELECT * FROM user

                  So und jetzt schreibst du in die Variable $sql je nach dem welcher Zustand eintreten soll den SQL-Befehl, den ich oben genannt habe.

                  PHP-Code:
                  <?php
                  if (isset($_GET['char'])) {
                    
                  $sql "SELECT * FROM user WHERE name LIKE '$_GET[char]%'";
                  } else if (isset(
                  $_GET['name'])) {
                    
                  $sql "SELECT * FROM user WHERE name = '$_GET[name]'";
                  } else {
                    
                  $sql "SELECT * FROM user";
                  }
                  $res mysql_query($sql);
                  while (
                  $cur mysql_fetch_assoc($sql)) {
                    
                  print_r($cur);
                  }
                  ?>
                  Wars so schwert? Ne gell

                  Kommentar


                  • #10
                    danke aber ich will ja auch nach anderen spalten der tabelle sortieren können

                    ich habe mal nen code für 2 formularfilter aber sicher gibs da noch was anderes

                    if ($dstnr =="" and $username == "")
                    $query_user = "SELECT username, lastname, userlevel, dstnr FROM `_user`";
                    else
                    { if ($dstnr !="")
                    {$query_user = "SELECT username, lastname, userlevel, dstnr FROM `_user` where dstnr = '$dstnr'"; }
                    else
                    {if ($username !="")
                    {$query_user = "SELECT username, lastname, userlevel, dstnr FROM `_user` where username = '$username'"; }}}

                    mysql_select_db($database_mysql, $mysql);
                    $user = mysql_query($query_user, $mysql) or die(mysql_error());
                    $row_user = mysql_fetch_assoc($user);
                    $totalRows_user = mysql_num_rows($user);
                    ?>
                    </select>
                    <input type="submit" name="Submit" value="Senden">
                    </form>
                    <form name="form1" method="post" action="">
                    <table border="1">
                    <tr>
                    <td>username</td>
                    <td>lastname</td>
                    <td>userlevel</td>
                    <td>dstnr</td>
                    </tr>

                    <?php do { ?>
                    <tr>
                    <td><?php echo $row_user['username']; ?></td>
                    <td><?php echo $row_user['lastname']; ?></td>
                    <td><?php echo $row_user['userlevel']; ?></td>
                    <td><?php echo $row_user['dstnr']; ?></td>
                    </tr>
                    <?php } while ($row_user = mysql_fetch_assoc($user)); ?>

                    </table>
                    </form>

                    Kommentar


                    • #11
                      der name wird ja voll ausgewählt und auch die dstnr und alle anderen felder will halt nach den unterschiedlichen spalten filtern können

                      Kommentar


                      • #12
                        die where clauseln sollen "dstnr" "username" "userlevel" sein und zwar unabhängig von einander

                        Kommentar


                        • #13
                          Pack deinen Code bitte in [ php ]-Tags hier im Forum und formatier deinen Quellcode leserlich, am besten nach diesen Standards:
                          http://pear.php.net/manual/de/standards.php

                          Du hast nämlich ein Problem: Du schreibst wirres Zeug und wirren Code und das ist der Grund warum keiner dein Problem versteht oder verstehen will. Lern zuerst dich sauber und klar auszudrücken, dann fliegen dir die Antworten zu.

                          Und wen du etwas zu deinem letzten Posting hinzuzufügen hast, benutze den Edit-Button.

                          Dein Problem habe ich ehrlich gesagt immer noch nicht verstanden.

                          Kommentar


                          • #14
                            ich habe eine tabelle "username" diese hat viele spalten und ich will nach 3 unterschiedlichen spalten in einem formular durch denn nutzer filter setzen können
                            also für spalte "username" spalte "userlevel" und spalte "dstnr" wenn kein filter gesetzt qwird sollen alle datensätze angezeigt werden ansonsten je nach gesetztem filter

                            Kommentar


                            • #15
                              Na also, warum nicht gleich so, oder habe ich das nur überlesen?
                              Was ist denn dein Problem? Deine Link aufrufe müssten dann wie folgt sein:

                              Du müsstest also zwischen diesen Aufrufen unterscheiden:

                              datei.php?order=username&dir=asc
                              datei.php?order=username&dir=desc

                              datei.php?order=userlevel&dir=asc
                              datei.php?order=userlevel&dir=desc

                              datei.php?order=dstnr&dir=asc
                              datei.php?order=dstnr&dir=desc

                              und die restlichen zeigen unsortiert alles an.


                              PHP-Code:
                              <?php
                              $order 
                              ' ORDER BY id ASC'// default
                              if (isset($_GET['order'])) {
                                switch (
                              $_GET['order']) {
                                case 
                              'username':
                                case 
                              'userlevel':
                                case 
                              'dstnr':
                                  if (isset(
                              $_GET['dir']) && $_GET['dir'] == 'desc') {
                                    
                              $order sprintf(' ORDER BY %s %s'$_GET['order'], strtoupper($_GET['dir']));
                                  } else {
                                    
                              $order sprintf(' ORDER BY %s ASC'$_GET['order']);
                                  }
                                  break;

                                default:
                                }
                              }
                              $sql sprintf("SELECT * FROM username %s"$order);
                              // ..
                              ?>
                              Edit: Äh hab Tomaten aufn Augen, willst du überhaupt sortieren oder was ist Filter bei dir?

                              Kommentar

                              Lädt...
                              X