php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2004

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 23.10.2004, 18:04  
Gast
 
Beiträge: n/a
Standard dem verzweifeln nahe

PHP-Code:
function kurse()
{
    
//Variablen setzen und globalisieren
    
$date=date("Y-m-d",time()-date(2*24*60*60));

    
//Mit der Datenbank verbinden
    
include('inc/database.inc.php');
    
$tmprslt '';
    
$connection mysql_connect($db['host'],$db['uid'],$db['pwd']);
    if(
$connection)
    {
    
//Wenn Verbindung Zustandekommt

            
mysql_select_db($db['db']);
            
$sql "SELECT 
                  k_id, k_name, k_zeit, 
                  UNIX_TIMESTAMP(k_beginn) AS k_newbeginn, 
                  UNIX_TIMESTAMP(k_ende) AS k_newende, 
                  k_preis 
                FROM 
                  kurse 
                WHERE 
                  k_beginn > '"
.$date."'
                ORDER BY 
                  k_beginn ASC,  k_zeit ASC 
               "

        
        
//Auslesen der Datensätze
        
$result mysql_query($sql)or die(mysql_error()) ;
        if(
$result)
        {
            
//Arrays setzen
            
$tag[] = "Mon";
            
$tag[] = "Tue";
            
$tag[] = "Wed";
            
$tag[] = "Thu";
            
$tag[] = "Fri";
            
$tag[] = "Sat";
            
$tag[] = "Sun";
            
            
//for-Schlaufe
            
for ($n 0$n<count($tag); $n++)
            {
                    
//while-Schlaufe
                    
while($row mysql_fetch_assoc($result)) 
                    {
                        if (
$tag[$n]==StrFTime('%a',$row['k_newbeginn'])
                        {
                            
hier alle datensätze deren kursbeginn dem array entspricht
                        
}//if ($weekday==$tag[$n])
                        
                    
}//Ende while-Schlaufe
            
}//Ende for-Schlaufe
        
}//if ($result)
    
}//if($connection)
    
return $tmprslt;
}
//Ende function kurse()
echo kurse(); 
bin kurz vor dem verzweifeln.

ich habe eine tabelle mit meinen Salsakursen. früher habe ich diese sortiert nach dem datum des kursbeginns ausgegeben.
da es mitlerweile viele kurse sind, ist dies etwas unübersichtlich geworden.

was ich nun erfolglos versucht habe, ist die kurse mit dem übertitel des wochentags auszugeben.

bsp:

Montag
alle kurse deren k_beginn(zb.2004-11-22) ein montag ist

Dienstag
alle kurse deren k_beginn(zb.2004-11-23) ein dienstag ist


Bitte um hilfe!!!
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 23.10.2004, 18:32  
Gast
 
Beiträge: n/a
Standard Re: dem verzweifeln nahe

Zitat:
Zitat von andyM
was ich nun erfolglos versucht habe, ist die kurse mit dem übertitel des wochentags auszugeben.
Falls es Dich beruhigt: bei dem schlechten DB-Design würde ich es auch nicht hinkriegen. Lies Dir mal die entsprechenden Kapitel im MySQL Handbuch durch.
http://dev.mysql.com/doc/mysql/de/Reference.html

Stichworte:
7.2.2 Datums- und Zeit-Typen
7.3.4 Datums- und Zeit-Funktionen

Das Leben kann so einfach sein...
 
Alt 23.10.2004, 18:37  
Gast
 
Beiträge: n/a
Standard

Danke
Zitat:
Falls es Dich beruhigt: bei dem schlechten DB-Design würde ich es auch nicht hinkriegen.
bringt mich unglaublich viel weiter. nur beruhigen kann es mich nicht.

aber vieleicht gibts ja leute im forum die php so im griff haben, dass sie mir helfen können.
 
Alt 23.10.2004, 18:41  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von andyM
aber vieleicht gibts ja leute im forum die php so im griff haben, dass sie mir helfen können.
Auch die können aus "Sch... kein Gold machen".

Lies Dir das Handbuch durch.

Du suchst
Code:
SELECT ... GROUP BY DAYOFWEEK(datum)
Allerdings funktioniert das nicht mit UNIX_TIMESTAMP sondern mit DATETIME.
 
Alt 23.10.2004, 18:45  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

@andyM :

nur kurz am rande.
du unterschätzt meikel.

merks dir für die zukunft.
imported_Ben ist offline  
Alt 23.10.2004, 18:48  
Gast
 
Beiträge: n/a
Standard

was ist den an meinem db design so schlecht?? sorry, aber bin eben noch anf.
 
Alt 23.10.2004, 19:01  
Gast
 
Beiträge: n/a
Standard

ok, könnte mein sql so gestalten
PHP-Code:
$sql "SELECT 
                  DAYOFWEEK(k_beginn)
                  k_id, k_name, k_zeit, 
                  UNIX_TIMESTAMP(k_beginn) AS k_newbeginn, 
                  UNIX_TIMESTAMP(k_ende) AS k_newende, 
                  k_preis 
                FROM 
                  kurse 
                WHERE 
                  k_beginn > '"
.$date."'
                ORDER BY 
                  k_beginn ASC,  k_zeit ASC 
               "

aber sehe jetzt noch nicht ganz, wie ich dass jetzt richtig nutzen kann, um den gewünschten efekt zu bekommen.

sorry
 
Alt 23.10.2004, 19:05  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von andyM
was ist den an meinem db design so schlecht??
Du willst Kurse anbieten. Ein Kurs hat einen Anfang(Datum und Zeit) und ein Ende(Datum und Zeit).
Da man bei MySQL sehr luxeriöse Datum- und Zeitfunktionen hat, die aber größtenteils auf dem Spaltentyp DATETIME aufsetzen, ist es ratsam, von vornherein den Spaltentyp zu verwenden. Dann ist die Suche nach allen zukünftigen Terminen, gruppiert nach dem Wochentag, relativ simpel (anderes Tabellenformat):
Code:
SELECT kurs_id, beginn, ende, titel, DAYOFWEEK(beginn) AS wochentag FROM tabelle WHERE begin < NOW() GROUP BY wochentag
Durch diese Ergebnistabelle marschierst Du mit ein paar Zeilen PHP Code.

Falls Du auch Termine in der Zukunft listen willst, dann ersetze NOW() durch einen ISO Datumstring 'YYYY-MM-DD'

Falls Du wochentag ausgeben möchtest, mußt Du noch ein array definieren:
Code:
$wochentag = array(0 => 'Sonntag', ... 6 => 'Samstag');
auf das Du in der Schleife so zugreifst:
Code:
echo $wochentag[$row['wochentag']];
Code:
DATE_FORMAT(beginn,'%W')
Name des Wochentags auf englisch (Sunday bis Saturday)

Alles klar?
 
Alt 23.10.2004, 19:07  
Gast
 
Beiträge: n/a
Standard

danke..ich werde das mal versuchen, hoffe ich krigs auf die reihe.
 
Alt 23.10.2004, 19:11  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von andyM
danke..ich werde das mal versuchen, hoffe ich krigs auf die reihe.
Mach das. Ich bastele gerade an einer Hotelverwaltungssoftware rum. Die Listung freier Zimmer ist da ähnlich
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Bin am Verzweifeln - txt-Datei Problem kanti PHP Tipps 2006 4 28.02.2006 15:16
Formular-Problem, bin am verzweifeln !! PHP-Fortgeschrittene 4 12.10.2005 07:56
Anfängerin am verzweifeln PHP Tipps 2005 9 17.04.2005 07:12
Was ist falsch?? Bin am Verzweifeln!! BEGINNER-L PHP Tipps 2005 10 27.02.2005 18:04
[Erledigt] Bin am Verzweifeln............... HTML, Usability und Barrierefreiheit 17 12.02.2005 19:19
Kurz vorm verzweifeln :( Beatbox Datenbanken 2 15.09.2004 21:11
Shell_exec: bin kurz vorm verzweifeln PHP Tipps 2004 1 27.08.2004 15:40

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php \group by dayofweek\, php wochentag gruppieren, zitate verzweifeln

Alle Zeitangaben in WEZ +2. Es ist jetzt 02:25 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.