Subversion-Projekte lars-tiefland.content-management

Revision

Blame | Letzte Änderung | Log anzeigen | RSS feed

<?
        function select($formTagName, $options, $optionValueKey, $optionLabelKey, $preSelectValue=false, $required=false)
        {
                if ($required == false)
                {
                        array_unshift
                        (
                                $options,
                                array
                                (
                                        $optionValueKey =>      false,
                                        $optionLabelKey =>      "----------- alle -----------"
                                )
                        );
                }
        
                echo "<select name=\"".$formTagName."\">";
                foreach($options as $option)
                {
                        echo "<option value=\"".$option[$optionValueKey]."\"";
                        if ($option[$optionValueKey] == $preSelectValue)
                        {
                                echo " selected";
                        }
                        echo ">".$option[$optionLabelKey]."</option>";
                }
                echo "</select>";               
        }

        function getShops()
        {
                $buffer=array();
                $query="select * from shops";
                $result = mysql_query ($query) or die (mysql_errno().": ".mysql_error()."<hr>$query<hr>");
                while($zeile=mysql_fetch_assoc($result))
                {
                        $buffer[]=$zeile;
                }
                return $buffer;
        }

        function getDates()
        {
                $buffer=array();
                $query="
                        select
                                distinct
                                        date_format(Bestellung.erstellt_am, '%Y-%m') as datum,
                                        date_format(Bestellung.erstellt_am, '%b %Y') as datumText
                                from
                                        Bestellung
                                order by
                                        Bestellung.erstellt_am desc
                        ";
                $result = mysql_query ($query) or die (mysql_errno().": ".mysql_error()."<hr>$query<hr>");
                while($zeile=mysql_fetch_assoc($result))
                {
                        $buffer[]=$zeile;
                }
                $query="
                        select
                                distinct
                                        date_format(Bestellung.erstellt_am, '%Y') as datum,
                                        date_format(Bestellung.erstellt_am, '%Y') as datumText
                                from
                                        Bestellung
                                order by
                                        Bestellung.erstellt_am desc
                        ";
                $result = mysql_query ($query) or die (mysql_errno().": ".mysql_error()."<hr>$query<hr>");
                while($zeile=mysql_fetch_assoc($result))
                {
                        $buffer[]=$zeile;
                }
                return $buffer;
        }
        
        function getWeeks($year=2008, $maxReverse = 32) 
        {
                
                $scalar          = 0;
                $weekNow         = date("W");
                $dateArray       = array();
                $countedWeek = $weekNow;
                 
                for($i=$weekNow;$i>($weekNow-$maxReverse);$i--) {
                        
                        $dateArray[$scalar]['week'] = $countedWeek;
                        $dateArray[$scalar]['year'] = $year;
                        $dateArray[$scalar]['date_string']  = $countedWeek.",".$year;
                        $dateArray[$scalar]['human_string'] = "KW: $countedWeek - $year";
                        
                        if ($countedWeek==1) {
                                $year -=1;
                                $countedWeek=date("W",mktime(0, 0, 0, 12, 25, $year));
                        } else {
                                $countedWeek--;
                        }
                        
                        $scalar++;
                }
                
                return $dateArray;
                
        }
        
        /* ################################################################################ */
        /*  Select-Abfrage an die Datenbank senden.                                                                                     */
        /*  Methode um Select-Abfragen zentral an die Datenbank zu senden                                       */
        /*  NUR Select-Abfragen !                                                                                                                       */
        /*  Nur sinnvoll in Verbindung mit while-Schleifen.                                                                     */      
        /*      Aufrufbeispiel: while($zeile=mysqlSelect("select ....")) {...}                                  */
        /* ################################################################################ */
        function mysqlSelect($query)
        {
                if (!preg_match("/^select/i", trim($query)))    // Abbrechen falls query nicht mit "select beginnt"
                { return false; }
                                                                                                                

                static $status;                                                                 // Statuswerte der jeweiligen queries speichern
                $hash=md5($query);
                if (!$status[$hash])
                {
                        $status[$hash]=array
                        (
                                "result" => "",
                                "numRows" => 0,
                                "endOfResult" => false
                        );
                }

                $result                 = &$status[$hash]["result"];
                $numRows                = &$status[$hash]["numRows"];
                $endOfResult    = &$status[$hash]["endOfResult"];
                
                if (($numRows == 0) && $endOfResult==false)             // Beginn des Aufrufes: EoR = false $numRows=0
                {
                        $result = mysql_query ($query) or die (mysql_errno().": ".mysql_error()."<hr>".pre($query,true)."<hr>");
                        $numRows = mysql_num_rows($result);
                        $endOfResult=false;
                }

                if ($numRows > 0)                                                               // Mittendrinn: numRows > 0
                {
                        if ($numRows == 1) { $endOfResult=true; }       // letzter durchlauf mit Daten
                        $numRows--;                                                                     //
                        return mysql_fetch_assoc($result);
                }

                if (($numRows == 0) && $endOfResult==true)              // letzter durchlauf 
                {
                        $endOfResult=false;                                                     // Werte zurücksetzen
                        return false;                                                           // Ende zurückliefern
                }
                
                return false;
        }
?>