MYSQL Tabelle sortieren

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

  • MYSQL Tabelle sortieren

    Hallo Leute,

    vorab möchte ich erwähnen, dass ich ein PHP Anfänger bin und hier keine fertige Lösung erwarte. Denkanstöße, Links und paar Tips währen sehr sehr hilfreich.

    Ich habe eine Mysql Tabelle und den Inhalt kann ich auslesen lassen.
    Eine Suchfunktion hab ich auch integriert. (Waren fertige Codeschnipsel, einige Befehle kann ich auch schon interpretieren).

    Hier der Code:

    PHP-Code:
    function getUser($suchfeld, $page)
    {    
      $page = (int) $page;
       if ($page <= 0) $page=1;
       
      if(!empty($suchfeld)) {
        $suchfeld = trim($suchfeld);
        $suchfeld = str_replace(" ","%",$suchfeld);
        $suchfeld = "%".$suchfeld."%";
         
        $sql = "    SELECT
                *
              FROM
                teste
              WHERE
                Title LIKE '$suchfeld' OR
                ProductCategoryName LIKE '$suchfeld'" ;
                 
      } 
      else {
        $sql = " SELECT
                *
              FROM
                teste";
      }
       
      $res = mysql_query($sql);
      $anz = mysql_num_rows($res);
       
      $itperpage = 20;
         $maxpages_int = (int) ($anz/$itperpage);
      $maxpages_float = $anz/$itperpage;
          
      if ( $maxpages_float > $maxpages_int ) {
        $maxpages = (int)(($anz/$itperpage)+1);
      } else {
        $maxpages = (int)(($anz/$itperpage));    
      }
     
      if ($page > $maxpages) $page = $maxpages;
       
      $sql2 = $sql." ORDER BY ArtNumber DESC limit ".(($page-1)*$itperpage).",$itperpage";
      $res2 = mysql_query($sql2);
      $anz2 = mysql_num_rows($res2);
       
      if($anz > 0) {
       
        if(empty($suchfeld)) {
         
          $head = "
            <table width='500' border='0' cellspacing='1' cellpadding='1'><tr>
            <td><strong>$anz User in der Datenbank. Pro Seite werden $itperpage User
            angezeigt.</strong></td></tr></table>";
       
        } else {
     
          if($anz > 1) { $wortlaut = "wurden"; } else { $wortlaut = "wurde"; }
         
          $head = "
            <table width='500' border='0' cellspacing='1' cellpadding='1' ><tr>
            <td><strong>Mit Ihrer Suchabfrage $wortlaut $anz Treffer
            gelandet.</strong></td></tr></table>";
       
        }
         
        $i = 0;    // Eine Zählvariable für unterschiedliche Zeilenfarben
        $navi_left = ""; // HTML - Teil der Navigation zum zurückblättern
        $navi_right = ""; // HTML - Teil der Navigation zum weiterblättern
        $userliste = ""; // HTML - Inhalt der Userliste
        $show_navi = ""; // HTML – Beinhaltet die Navigation und das Suchfeld
         
        // Start der WHILE Schleife
        while ($row = mysql_fetch_array($res2, MYSQL_ASSOC)) {
           
          // Hier wird die Zeilenhintergrundfarbe für jeden Datensatz festgelegt,
          // dies dient der Übersicht    
          if($i%2==0) { $trcolor = "#FFFFFF"; } else { $trcolor = "#DADADA"; }
           
          if ($page > 1){
            $navi_left = "<strong><input type=button value=\"&laquo;\"
            onClick=\"pageset($page-1)\" style=\"WIDTH:25px\"></strong>";
          }    
         
          if ($page < $maxpages){ 
            $navi_right = "<strong><input type=button value=\"&raquo;\"
            onClick=\"pageset($page+1)\" style=\"WIDTH:25px\"></strong>";
          }
           
          if(isset($_POST['suchfeld']) && !empty($_POST['suchfeld'])) {
            $val_suchfeld = $_POST['suchfeld'];
          } else {
            $val_suchfeld = "";
          }
           
          $show_navi =
            "
              <form name='form1' method='post' action='schuhe.php' style='margin:0px;padding:0px'>
              <table width='500' border='0' cellspacing='1' cellpadding='1'>
              <tr>
              <td width='50%'>
                <input type=button value=\"Seite\" style=\"WIDTH:50px\" onClick=\"pageset2()\">
                <input name='page' type='text' id='page' value='$page' style=\"WIDTH:60px\">
                von $maxpages $navi_left$navi_right
              </td>
              <td width='60%'><div align = 'right'>
                Suchen: <input name='suchfeld' type='text' id='suchfeld' value = '$val_suchfeld'
                style=\"WIDTH:120px;HEIGHT:16px\">
                <input type=submit value=\"Finden\" style=\"WIDTH:45px\">
                <input type=hidden name=page_no value=\"$page\">
              </div></td>
              </tr>
              </table>
              </form>
            ";
             
            $userliste = $userliste .
                        "
                        <tr bgcolor = '$trcolor'>
                          <li class='item'> <a href='$row[Deeplink1]'><img src='$row[Img_url]' max-width='140px' height='230px' ></a><br> <big><b>$row[Title]</big></b><br> $row[DisplayPrice]<br> 
       $row[ProductCategoryName]<br> 
         
      $row[Geschlecht] </a> 
                             </tr>
                        ";
          $i++; // Zählschleife um 1 erhöhen
        }// WHILE Schleife abschließen
       
      } else {
         
        $userliste = "
                <tr>
                        <td colspan='5'><div align='center'>Keine Ergebnisse fuer Ihre Suche!<br><br>
                  <a href='schuhe.php'>Zurck zur Artikelliste</a></div>
                  </td>
                      </tr>";    
      }
       
      $fertig = "
             
                 $userliste
            </table>
            ";
       
      return $head.$show_navi.$fertig;
       
    } // Funktion schließen – FERTIG
     
     
    $MYSQL_HOST = "*";
    $MYSQL_USER = "*";
    $MYSQL_PW = "*";
    $MYSQL_DB = "*";
     
    $conn = mysql_connect($MYSQL_HOST, $MYSQL_USER, $MYSQL_PW); /* verbindet zu MySQL an sich */
    mysql_select_db($MYSQL_DB, $conn); /* verbindet zu der gewählten Datenbank auf dem Server */
     
     
     
    ?>
     
       
     
    <TITLE>Blaetterfunktion mit Navigator und Suchfunktion</TITLE>
    <script language="JavaScript" type="text/javascript">
    function pageset(wert)
    {
      document.form1.page_no.value = wert;
      document.form1.submit();    
    }
    function pageset2()
    {
      document.form1.page_no.value = document.form1.page.value;
      document.form1.submit();    
    }
    </script>
       
    <?
      // Aufruf der Funktion getUser() mit Suchbegriff und Seitennummer
      echo $show = getUser($_POST['suchfeld'],$_POST['page_no']);
    ?>
    Jetzt möchte ich den Inhalt der Tabelle oder die Suchergebnisse mit einem Dropdown menü sortieren lassen. Das hab ich gefunden:

    PHP-Code:
    <form method="POST" action="schuhe.php">
      <p>
      <select size="1" name="sortieren">
      <option value="1"> </option>
      <option value="3">aufsteigend</option>
      <option value="4">absteigend</option>
       
     </select><input type="submit" value="Auswählen" name="B1"></p>
    </form>
     
    </div> 
      <ul class="ourHolder"> 
      <?php                                 
         
    include "head.php"
    $wert 3

    if (isset(
    $_POST['sortieren'])) $wert $_POST['sortieren']; 


    echo 
    "Auswahl: "$wert"3"$_POST['sortieren']; 
     if (
    $wert "3"$sSQL "SELECT * FROM teste "

    else 
    echo 
    "$wert ist nicht 0";   

    $sSQL "SELECT * FROM teste WHERE DisplayPrice ORDER BY DisplayPrice ASC"

    $rs mysql_query($sSQL) or die ("Fehler in der Datenbank-Abfrage!"); 

    echo
    "<table>";
    ?>
    Das funktioniert leider nicht. Ich bekomme keine Fehlermeldung. Nur "Auswahl: 333" ausgegeben.

    Hab auch schon einige andere Codeschnipsel versucht, hat leider nichts richtig funktioniert.

    Habt ihr ne idee wie ich das kombinieren kann?

  • #2
    Zitat von isi1985 Beitrag anzeigen
    PHP-Code:
      <?php                                 
         
    include "head.php"
    $wert 3

    if (isset(
    $_POST['sortieren'])) $wert $_POST['sortieren']; 


    echo 
    "Auswahl: "$wert"3"$_POST['sortieren']; 
     if (
    $wert "3"$sSQL "SELECT * FROM teste "

    else 
    echo 
    "$wert ist nicht 0";   

    $sSQL "SELECT * FROM teste WHERE DisplayPrice ORDER BY DisplayPrice ASC"

    $rs mysql_query($sSQL) or die ("Fehler in der Datenbank-Abfrage!"); 

    echo
    "<table>";
    ?>
    Ich würde zuerst einmal die Anweisungsblöcke mit {...} gruppieren, so vermute ich nur, dass $sSQL = Wert-1 von $sSQL = Wert-2 unabhängig vom Ergebnis des Statements überschrieben wird.

    Kommentar


    • #3
      Hi,

      hier ein fertiges, leicht verständliches AJAX Beispiel:

      PHP Example AJAX and MySQL

      mfg streuner
      Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert,
      der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.

      "Diese Software verdient die 3 großen GGG: --- Gesehen --- Gelacht --- Gelöscht ---"

      Kommentar

      Lädt...
      X