SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Handbuch der Java-Programmierung

Handbuch der Java-Programmierung zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 02.04.2006, 00:47:53
Grega Grega ist offline
Anfänger
 
Registriert seit: Jan 2005
Beiträge: 33
Falsche Schleife - Kalender

Ich habe ein kleines Problem mit einer Schleife in einem Kalender-Skript. Es läuft eigentlich alles ganz gut. Bis auf eine kleine Kleinigkeit. Wenn ich derzeit eine DB-Abfrage mache und schaue ob Termine für einen Monat vorliegen, dann wird für jeden Tag ein Link generiert.

Aber: Wenn z.B. in Monat April ein Termin ist, dann wird die Tabelle mit dem Kalender erstellt und der Tag mit dem Termin als Link dargestellt. Wenn ich aber in einem Monat zwei (oder mehr) Termine habe, dann wird meine Monats-Übersicht entsprechend der Anzahl der Termine vermehrt. Bei zwei Terminen sähe die Tabelle so aus, dass zweimal der Erste, zweimal der Zweite, zweimal der Dritte etc. erstellt würde. Ich weiß, dass der Fehler in der for-Schleife liegt, weiß aber nicht, wie es richtig lauten muss. Jemand einen Tipp?

PHP-Code:
$sqlab "select titel, tstamp, ID from kalender where monat = '$dynmon'";
    
    
$res mysql_db_query($db_name$sqlab);
    
$num mysql_num_rows($res);
    (...)
        
//abfrage ob ein link generiert werden soll
        
if($num != 0){
        for (
$a=0$a<$num$a++){
            
$header mysql_result($res$a"titel");
            
$nummer mysql_result($res$a"ID");
        
            if(
$i == date("d",mysql_result($res,$a,"tstamp"))){
                    echo 
"\t<td><a href=\"".$_SERVER['PHP_SELF']."?num=".$nummer."\" title=\"".$header."\">".$i."</a></td>\n";
                } else {
                    echo 
"\t<td>$i</td>\n";
                }
        }
        }    else    {
            echo 
"\t<td>$i</td>\n";
        }
        
//ende link-abfrage 
Danke im voraus und einen schönen stressfreien Sonntag. :-)

Grüße
G.
__________________
<Meine Ankunft war zeitlich schlecht gewählt!>
Mit Zitat antworten
  #2  
Alt 02.04.2006, 09:00:26
Giz Giz ist offline
Junior Member
 
Registriert seit: Apr 2005
Beiträge: 309
AW: Falsche Schleife - Kalender

Mach doch eine SQL-Abfrage in einer Schleife von 1-12 (Monate):

PHP-Code:
$sqlab "select titel, tstamp, ID from kalender where monat = '$a'"
oder wäre das Deine ominöse $dynmon ??
Dann verstehe ich nicht, wieso überhaupt noch eine Schleife kommt...
Deine Schleife macht doch nix anderes als für jedes gefundene Element, also jeden Eintrag für April, eine Ausgabe zu erzeugen...
Mit Zitat antworten
  #3  
Alt 02.04.2006, 09:41:10
Grega Grega ist offline
Anfänger
 
Registriert seit: Jan 2005
Beiträge: 33
AW: Falsche Schleife - Kalender

Moin.

Also das $dynmon ist schon richtig. Es soll ja immer nur ein Monat angezeigt werden. Um welchen es sich dabei handelt, wird vorher in $dynmon festgelegt. Und wie gesagt. Wenn ein Termin vorhanden ist, dann wird der Monat auch richtig angezeigt. Wenn kein Termin vorhanden ist, rutscht er in das letzte ELSE hinein und die Tabelle wird ebenfalls richtig erstellt.

Ich muss doch alle wichtigen Daten (ID, tstamp und titel in diesem Fall) für den ermittelten Monat ($dynmon) aus der DB auslesen. Und dann schaue ich, ob der Tag (1,2,3 etc) in dem ausgewählten tstamp enthalten ist. Wenn, dann soll ein Link generiert werden, wenn nicht, dann einfach nur eine Ausgabe des Tages.

Nur die Aktion mit dem $num verwirrt... Hier noch einmal der Code für die gesamte Monats-Tabelle:
PHP-Code:
$sqlab "select titel, tstamp, ID from kalender where monat = '$dynmon'";
    
    
$res mysql_db_query($db_name$sqlab);
    
$num mysql_num_rows($res);
    
// SQL-Ende

    // Leere Zellen ausgeben, bis zum ersten Tag des Monats
    
for ($j=1$j<$first_wd$j++) { echo "\t\n<td class='d'>&nbsp</td>\n"; }

    for (
$i=1$i<=$last$i++){
        
$x=$wd[date("w"mktime(0,0,0,$dynmon,$i,$dynjahr))]; // ermitteln des Wochentages

        
$bo="d0"// definition des Standard-Style
        
if ($x=="So") { $bo="d1"; } // Einfaerbung des Sonntages
        
if ($i==$akt && $dynmon==$mon) { $bo="d2"; } // Einfaerbung des aktuellen Tages wenn Tag und Monat mit aktuellem Tag uebereinstimmen

        
        //abfrage ob ein link generiert werden soll
        
if($num != 0){
        for (
$a=0$a<$num$a++){
            
$header mysql_result($res$a"titel");
            
$nummer mysql_result($res$a"ID");
        
            if(
$i == date("d",mysql_result($res,$a,"tstamp"))){
                    echo 
"\t<td class='$bo'><a href=\"".$_SERVER['PHP_SELF']."?num=".$nummer."\" title=\"".$header."\">".$i."</a></td>\n";
                } else {
                    echo 
"\t<td class='$bo'>$i</td>\n";
                }
        }
        }    else    {
            echo 
"\t<td class='$bo'>$i</td>\n";
        }
        
//ende link-abfrage
        
        
        
if ($x=="So") echo "</tr>\n<tr>"// Am Sonntag endet die jeweilige Zeile
    
}
    echo 
"</tr></table>\n"
Acht neue graue Haare habe ich schon bekommen. :-(
__________________
<Meine Ankunft war zeitlich schlecht gewählt!>
Mit Zitat antworten
  #4  
Alt 03.04.2006, 13:10:10
Grega Grega ist offline
Anfänger
 
Registriert seit: Jan 2005
Beiträge: 33
AW: Falsche Schleife - Kalender

So. Die Aktion, dass mir der Monat mehrfach ausgegeben wird habe ich erst einmal verhindert. Dafür habe ich aber den Preis zahlen müssen, dass bei einem Monat mit mehr als einem Eintrag trotzdem nur ein Link generiert wird. Hier einmal verkürzt ($dynmon wird normalerweise dynamisch erzeugt...):
PHP-Code:
<?php
    $dynmon 
"3"
    
//SQL
    
include ('mySQL.inc.php');
           
    
$conn mysql_connect($db_server,$db_user,$db_passwort) or die (mysql_error());
    
$link mysql_select_db($db_name$conn) or die (mysql_error());

    
$sqlab "select tag, titel, ID from kalender where monat = '$dynmon'";
    
    
$res mysql_db_query($db_name$sqlab);    
    
// SQL-Ende
    
    
$row mysql_fetch_array($res);

    for (
$i=1$i<=30$i++){
                        
        if(
$i==$row['tag']){
                echo 
"<a href=\"".$_SERVER['PHP_SELF']."?num=".$row['ID']."\" title=\"".$row['titel']."\">".$i."</a><br>";
            } else {
                echo 
"Keine &Uuml;bereinstimmungen gefunden.  $i<br>";
        }        
    }    
    
?>
Die Ausgabe sieht bei einem vorhandenen Ereignis pro Monat genauso aus, wie bei einem Monat mit mehreren Ereignissen: es wird nur ein Link generiert.

Wie bekomme ich es also hin, dass für jeden Tag des Monats geschaut wird, ob der Tag ein Ereignis hat? Wenn, dann Link, wenn nicht, dann nur Tageszahl anzeigen. Ich bekomme es einfach nicht hin... :-(
__________________
<Meine Ankunft war zeitlich schlecht gewählt!>
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Problem bei Schleife in Schleife Fluppi PHP Grundlagen 1 19.06.2005 12:05:10
Daten aus einem array in einer Schleife dynamisch zusammenzählen comriker PHP für Fortgeschrittene und Experten 3 28.04.2005 12:59:57
while Schleife und Variablen andy0935 PHP für Fortgeschrittene und Experten 4 26.01.2004 18:05:55
sendmail über popen innerhalb einer schleife mannydi PHP für Fortgeschrittene und Experten 0 06.06.2003 20:50:29
Problem mit Schleife... DeMaephis PHP für Fortgeschrittene und Experten 1 29.05.2002 21:17:27


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:43:57 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt