php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 1 Stimmen, 5,00 durchschnittlich.
  #16 (permalink)  
Alt 28-04-2011, 13:38
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Dann musst du in deiner for-Schleife noch eine foreach-Schleife einbauen, welche die (vorher abgerufenen und in einem Array gespeicherten) Ausblendzeiten durchrattert.

Übrigens: $date->format("d-M-Y--W") wäre einfacher als alles einzeln abzurufen und selbst zusammenzustückeln.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #17 (permalink)  
Alt 29-04-2011, 04:44
sepp
 Registrierter Benutzer
Links : Onlinestatus : sepp ist offline
Registriert seit: Aug 2007
Beiträge: 296
sepp kann nur auf Besserung hoffen
Standard

ja, richtig ich kann das Array durchrattern lassen.
PHP-Code:
foreach( $datum_event_von as $var_von ){echo "(".$var_von.")";} 
Habe aber 2 array die miteinanderverbunden sind, ich kann ja nciht 2 array in einer foreach schleife haben, wenn ich 2 schleifen machen und diese miteinander verschachtle - dann duchlääuft er eine Schaufe doppelt und es werden wilkürliche Daten ausgegeben.
Mit Zitat antworten
  #18 (permalink)  
Alt 29-04-2011, 07:48
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Welche foreach-Variante gibt es denn noch außer dieser?: foreach (... as ...)

Richtig: foreach (... as ... => ...)

Man bekommt für jedes Element eines Array (oder "des einen Array") den Schlüssel und den Wert. Was könnte man wohl mit dm Schlüssel anstellen, wenn es noch mehr Arrays gibt, die mit dem aktuellen verbunden sind?
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!

Geändert von AmicaNoctis (29-04-2011 um 07:51 Uhr)
Mit Zitat antworten
  #19 (permalink)  
Alt 01-05-2011, 03:10
sepp
 Registrierter Benutzer
Links : Onlinestatus : sepp ist offline
Registriert seit: Aug 2007
Beiträge: 296
sepp kann nur auf Besserung hoffen
Standard

Ja, klar wie hirnlos von mir, so sollte die Foreach aussehen.
PHP-Code:
foreach( $datum_event_von as $var  => $i)
{
echo= 
"(".$datum_event_von[$var]."bis".$datum_event_bis[$var].")";

Jezt habe ich aber das sêlbe Problem wie wenn ich direkt die While Schleife in die For schleife bauen würde.
Mit Zitat antworten
  #20 (permalink)  
Alt 03-05-2011, 02:58
sepp
 Registrierter Benutzer
Links : Onlinestatus : sepp ist offline
Registriert seit: Aug 2007
Beiträge: 296
sepp kann nur auf Besserung hoffen
Standard

Ich verzweifle an dem Problem....

Wie um alles in der Welt soll ich es nur angehen.

Eine Foreach schleife ist gleich viel wert wie die while schleife. Ich muss ein $string zusammen bauen lassen in der Schleife die alle Werte enthält die später dann ich die Bedingung kommt.

Nur wie mache ich das?

Denn wenn ich innerhalb der Schleife folgendes ausgebe
PHP-Code:
echo"&& ($date < new DateTime(".$datum_event.") or $date > new DateTime(".$datum_event_end."))"
bekomme ich den richtigen String zu sehen - wie kann ich den aber in eine $var stecken?

So wird die variable bei jedem durchgang ja wieder neu geschrieben, bzw. überschieben.
PHP-Code:
$var "&& ($date < new DateTime(".$datum_event.") or $date > new DateTime(".$datum_event_end."))"

Geändert von sepp (03-05-2011 um 03:07 Uhr)
Mit Zitat antworten
  #21 (permalink)  
Alt 03-05-2011, 07:49
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Hallo,

das sieht ja aus, als wolltest du PHP-Code dynamisch erzeugen. Warum? Das ist nämlich in 99% aller Fälle eine schlechte Idee.

Ursprünglich wolltest du bestimmte Daten ausblenden, was gleichbedeutend ist mit: alles anzeigen, was nicht so ein bestimmtes Datum ist. Die Daten die angezeigt werden sollen, was passiert dann mit denen? Darauf solltest du dich konzentrieren, statt irgendwelche merkwürdigen PHP-Code-Strings zusammenzubasteln.

Gruß,

Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #22 (permalink)  
Alt 03-05-2011, 17:15
sepp
 Registrierter Benutzer
Links : Onlinestatus : sepp ist offline
Registriert seit: Aug 2007
Beiträge: 296
sepp kann nur auf Besserung hoffen
Standard

Ja, da hast Du recht, ich suchte einfach nach Möglichkeiten.

Nun habe ich alles in die While schleife gepackt und versuche so auszugrenzen das nicht alle Daten bei jedem Durchlauf immer wieder angezeigt werden und die angegebenen Daten ebenso ausgrenzt.

Also bin ich bereits auf Deiner Spur und überlege mir wie was angezeigt werden muss.

Leider noch immer ohne Erfolg....bastle weiter

Mein Gott ich verzweifle echt an dieser Sch....! Kann mir denn niemand einen Tipp geben wie ich es angehen kann - finde nirgens einen Ansatz weder auf Google noch sonst wo....HIIIILLLLFFFEEEEEEE


Wenn ich die while Schleife innerhalb der for-Schleife mache habe ich zum einen folgendes Problem - alle Daten werden je Anzahl Datenzatzeiträge bzw. zeilen Duchläufe vervielfacht.

PHP-Code:
while ($row_test mysql_fetch_assoc($test))
{
$datum_event=$row_test['datum_event'];
$datum_event_end=$row_test['datum_event_end'];
        
if(
$date >= new DateTime($datum_event) && $date <= new DateTime($datum_event_end))
{             
$date1=$date->format("Y-m-d");
echo 
$date1<br />;

So bekomme ich nun alle Tage die nicht angezeigt werden sollten.

wenn ich nun folgend die Bedingun schreibe
PHP-Code:
if ($date !=  new DateTime($date1))
{             
echo 
$tag.'-'$monat.'-'.$jahr.'--'.$woche.'+'.$i.'<br />';

so wird zwar das Datum ausgeblendet aber nur von einem zeile der DB beim nächsten Durchlauf nimmt er diesen wieder mit.


und das Problem mit dem muliplizieren wollten ich wie folgt angehen
PHP-Code:
if ($date !=  new DateTime($date_geschrieben))
{             
echo 
$tag.'-'$monat.'-'.$jahr.'--'.$woche.'+'.$i.'<br />';
$date_geschrieben=$date->format("Y-m-d");

Geht aber auch nicht aus dem selben Grund - nun nimmt er nur noch die Daten aus der ersten Zeile der DB.


Wenn ich aber alles umdrehe die for Schleife innerhalb der while- Schleibe mache dann geht es.
PHP-Code:
    while ($row_test mysql_fetch_assoc($test))
    {
    
$datum_event=$row_test['datum_event'];
    
$datum_event_end=$row_test['datum_event_end'];
        for (
$date = clone $date_from$date <= $date_to$date->modify('next monday')) 
        {        
        
$tag =$date->format('d');
        
$monat =$date->format('M');
        
$woche =$date->format('W');
        
$jahr =$date->format('Y');    
            if(
$date != $date_from)
            {            
                if(
$date >= new DateTime($datum_event) && $date <= new DateTime($datum_event_end))
                {             
                
$dd1 =$date->format("Y-m-d");
                }
                if (
$date !=  new DateTime($dd) && $date !=  new DateTime($dd1))
                {             
                
$dd =$date->format("Y-m-d");
                echo 
$tag.'-'$monat.'-'.$jahr.'--'.$woche.'<br />';
                }            
            }
        }
    } 

Shit geht doch nicht!!! ;-(

Geändert von sepp (04-05-2011 um 04:10 Uhr)
Mit Zitat antworten
  #23 (permalink)  
Alt 04-05-2011, 17:40
sepp
 Registrierter Benutzer
Links : Onlinestatus : sepp ist offline
Registriert seit: Aug 2007
Beiträge: 296
sepp kann nur auf Besserung hoffen
Standard

Ich suche noch immer nach Lösungen - hatt denn niemand eine Idee?


Schadee, dass mir niemand mehr helfen will! ;-(

Geändert von sepp (05-05-2011 um 05:30 Uhr)
Mit Zitat antworten
  #24 (permalink)  
Alt 09-05-2011, 15:25
sepp
 Registrierter Benutzer
Links : Onlinestatus : sepp ist offline
Registriert seit: Aug 2007
Beiträge: 296
sepp kann nur auf Besserung hoffen
Standard

Nun habe ich die Lösung. OHNE EURE MITHILFE!!!

Schade, dass mir nicht einmal jemand geraten hatte das ganze umzukehren.

Die Tage in ein Array laden und dann mittels For Schleife diese durchlaufen lassen wobei darin die MySQL Abfrage gemacht wird und nur die angezeigt werden welche keine Ergebnisse ausgeben.
PHP-Code:
$date_from = new DateTime('2010-08-22');
$date_to   = new DateTime('2011-07-22');


/* Tage ermitteln */
$days = array();
for ( 
$date = clone $date_from$date <= $date_to$date->modify('next Wednesday') ) 
{
   if (
$date != $date_from)
   {
   
$days[] = clone $date;
   }
}

/* Ausgabe der Tage*/
for ( $i 0$i count($days); $i++ )
{
   
$date $days[$i];
   
$daydate $date->format('Y-m-d');
   
$resource mysql_query("SELECT * FROM  $tab_kalenderdaten  WHERE datum_event <=  '$daydate' AND datum_event_end >= '$daydate' ");
      if ( 
mysql_num_rows($resource) < )  
      {
      echo 
$date->format('d-M-Y--W') . '<br />' "\n";
      }
unset(
$date);

Mit Zitat antworten
  #25 (permalink)  
Alt 09-05-2011, 15:35
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von sepp Beitrag anzeigen
Schade, dass mir nicht einmal jemand geraten hatte das ganze umzukehren.
Ja, echt schade, dass du nun 46 Datenbankabfragen machst, statt nur einer, wie wir vorgeschlagen hatten. Dass du die Tipps nicht verstanden hast, heißt nicht, dass dir hier niemand geholfen hat.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!

Geändert von AmicaNoctis (09-05-2011 um 15:44 Uhr)
Mit Zitat antworten
  #26 (permalink)  
Alt 09-05-2011, 15:36
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 3.296
combie wird schon bald berühmt werden
Standard

SQL Statements in Schleifen sind böse!
Vermutlich hat dir darum keiner den Tipp gegeben.
__________________
Wir werden alle sterben
Mit Zitat antworten
  #27 (permalink)  
Alt 10-05-2011, 03:42
sepp
 Registrierter Benutzer
Links : Onlinestatus : sepp ist offline
Registriert seit: Aug 2007
Beiträge: 296
sepp kann nur auf Besserung hoffen
Standard

Ja, das ist echt schade...da hast Du wohl recht.

Auch die SQL Statements in Schleifen sind böse - das stimmt.

Das sind doch Tipps wie sie immer kommen - schwammig, als Rätsel, etwas hämisch und ein bisschen überheblich. Warum kann man nicht einfach schreiben:
Super das Du zur Lösung gefunden hast aber man sollte vermeiden innerhalb einer Schleife ein SQL Statements zu machen. Und zudem läuft nun bei Deinem Beispiel die Abfrage 46 mal (nämlich je Tag) durch.
Ich würde auch die SQL Statements in ein Array packen und dann alles miteinander zu vergleichen.

So könnte man doch wertvolle und zielgerichtete Tipps geben.

Denn dann kommt das heraus:
PHP-Code:
date_default_timezone_set('Europe/Berlin');

$date_from = new DateTime('2010-08-22');
$date_to   = new DateTime('2011-07-22');

/* Datensaetze holen  nicht anzeigen*/
$kalenderdaten = array();
$abfrage_kalenderdaten mysql_query("SELECT * FROM  $tab_kalenderdaten  WHERE  event_art = 'ausblenden'");
while ( 
$row mysql_fetch_array ($abfrage_kalenderdaten) ) 
{
   
$kalenderdaten[] = array(
       
'start' => $row['datum_event_start'],
       
'end' => $row['datum_event_end']
   );
}


/* Tage ermitteln */
$days = array();
for ( 
$date = clone $date_from$date <= $date_to$date->modify('next Wednesday') ) 
{
   
$days[] = clone $date;
}


/* Tage in Eventzeiten */
$tage_in_eventdate = array();
for ( 
$i 0$i count($kalenderdaten); $i++ )
{
   
$event_start = new DateTime($kalenderdaten[$i]['start']);
   
$event_end = new DateTime($kalenderdaten[$i]['end']);
   for ( 
$j 0$j count($days); $j++ )
   {
       if ( 
$days[$j] > $event_end ) { break; }
       if ( 
$days[$j] >= $event_start && $days[$j] <= $event_end && !in_array($days[$i]->format('Y-m-d'), $tage_in_eventdate) )
       {
           
$tage_in_eventdate[] = $days[$j]->format('Y-m-d');
       }
   }
   unset(
$event_start);
   unset(
$event_end);
}



/* Ausgabe */
for ( $j 0$j count($days); $j++ )
{
   if ( !
in_array($days[$j]->format('Y-m-d'), $tage_in_eventdate)
    {
       echo 
$days[$j]->format('Y-M-d--W') . '<br />' "\n";
   }
 } 
Nun bin ich gespannt was ich nun wieder falsch gemacht habe, es läuft und macht mir Freude. Danke Jungs
Mit Zitat antworten
  #28 (permalink)  
Alt 10-05-2011, 08:15
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 3.296
combie wird schon bald berühmt werden
Standard

Zitat:
Danke Jungs
Und Mädchen.
__________________
Wir werden alle sterben
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
mysql_query Yooda PHP Developer Forum 4 13-08-2005 22:32
mysql_query INSERT INTO Future Soccer PHP Developer Forum 6 13-10-2004 16:46
mysql_query() slomox PHP Developer Forum 11 21-04-2004 17:37
mysql_query muitine SQL / Datenbanken 5 18-03-2003 21:40
Mysql_query Oraj PHP Developer Forum 6 07-03-2003 11:57

Themen-Optionen
Thema bewerten
Thema bewerten:

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 an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:10 Uhr.