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 Thema bewerten
  #1 (permalink)  
Alt 01-04-2008, 22:30
Linksaussen_11
 Registrierter Benutzer
Links : Onlinestatus : Linksaussen_11 ist offline
Registriert seit: Jul 2005
Beiträge: 22
Linksaussen_11 ist zur Zeit noch ein unbeschriebenes Blatt
Standard Überschrift nur anzeigen, wenn in Kategorie ein Beitrag steht

Hallo,

Ich würde Hilfe in den Betreff schreiben, aber dass hilft euch ja auch nicht weiter.
Aber als Codezusammenbastler ohne wirkliche Programmierkenntnisse weiß ich nicht mehr weiter.

Ich will Beiträge nach Kategorien sortiert anzeigen lassen.
Die Überschrift einer Kategorie soll aber nur dann erscheinen,
wenn in der jeweiligen Kategorie überhaupt ein Beitrag vorhanden ist.
Das soll nämlich nur dann der Fall sein, wenn die letzte Veröffentlichung höchstens vier Wochen zurückliegt.
Einige Kategorien sind dann ohne Beitrag und dann will von denen natürlich auch keine Überschrift sehen.

Der Code sieht folgendermaßen aus:

PHP-Code:
<?php
 
require_once('../magpierss/rss_fetch.inc');

 
$rss_url 'http://www.sgcastrop.de/wordpress/?cat=3&feed=rss2';
 
$my_rss fetch_rss($rss_url);
 
$my_rss_items array_slice($my_rss->items010);

 foreach (
$my_rss_items as $item) {
 
$title $item['title'];
 
$url $item['link'];
 
$description $item['description'];
 
$timestamp $item['date_timestamp'];
 
$date date ("d.m.Y"$timestamp);
 
$author $item[dc][creator];
 
$rueckblick time() - $timestamp;

 if(
time() - 2419200 $rueckblick)

    {
?>
<b><font size="-1">1.Mannschaft</font></b><br><br>
<?php
    
}


 if(
$rueckblick 2419200)
    {

?>
<dt><?php print"$date"?>: <a href="<?php print"$url"?>"><?php print"$title"?></a> <i>von <?php print"$author"?></i> </dt>
<?php
    
}
 }

?>
<hr>
Ich weiß, so kann das natürlich nicht funktionieren,
weil die If-Else Anweisung für die Überschrift in der foreach Schleife steckt.
Es wird für jeden Artikel die Überschrift neu ausgegeben.
Wenn ich die Überschrift nach oben stelle, habe ich die Variable $rueckblick aber noch nicht.

Ich bin auch der Meinung, dass
PHP-Code:
 $my_rss_items array_slice($my_rss->items010); 
und
PHP-Code:
 if($rueckblick 2419200) ... 
kollidieren, denn einmal werden die letzten zehn Beiträge angesprochen
und einmal die Beiträge der letzten vier Wochen.

Es muss doch auch noch einen einfacheren Weg geben.
Theoretisch brauch ich ja nur die Abfrage
Wenn irgendein Beitrag der Katregorie jünger als 4 Wochen ist,
dann zeig mir die Überschrift an, sonst nicht.


Aber wie?
Ich weiß weder wie ich den entscheidenden timestamp packen kann
noch wie ich ihn dann weiterverarbeite.

Für Eure Hilfe wäre ich sehr dankbar.

Geändert von Linksaussen_11 (02-04-2008 um 14:34 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 02-04-2008, 08:29
MelloPie
 PHP Master
Links : Onlinestatus : MelloPie ist offline
Registriert seit: Jan 2002
Ort: Hessen
Beiträge: 4.380
MelloPie ist zur Zeit noch ein unbeschriebenes Blatt
Standard

die Sortierung nach kategorien ist scheinbar bereits im rssfeed enthalten(?)
Also enthält $my_rss alle Eintraege zu einer Kategorie?
__________________
Beantworte nie Threads mit mehr als 15 followups...
Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25
Mit Zitat antworten
  #3 (permalink)  
Alt 02-04-2008, 13:03
Linksaussen_11
 Registrierter Benutzer
Links : Onlinestatus : Linksaussen_11 ist offline
Registriert seit: Jul 2005
Beiträge: 22
Linksaussen_11 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ja, durch die Zeile

PHP-Code:
$rss_url 'http://www.sgcastrop.de/wordpress/?cat=3&feed=rss2'
ist die Kategorie schon festgelegt.

______________________________________________________


Ich glaube aber, dass ich noch einen Lösungsansatz gefunden habe.
Wenn ich das letzte Element aus dem mehrdimensionalen Array unten anspreche (hier konkret: Den Zeitstempel [date_timestamp]), dann erhalte ich den Zeitstempel des letzten Beitrags.
Denn ich brauche ja nur den aktuellsten, die anderen sind ja vernachlässigbar.

PHP-Code:

Array ( 

[
0] => Array ( 

[
0] => Array ( 
[
title] => Vorschau Kreisliga B1Zurück an die Spitze
[
link] =>[url]http://www.sgcastrop.de/wordpress/?p=363[/url] 
[comments] => [url]http://www.sgcastrop.de/wordpress/?p=363#comments[/url] 
[pubdate] => Sun30 Mar 2008 14:57:00 +0000 

[dc] => Array ( 
[
creator] => Daniel Komorek ) [category] => 1.MannschaftAllgemeinSpielberichte (1. Mannschaft
[
guid] => [url]http://www.sgcastrop.de/wordpress/?p=363[/url] 
[description] => Wie die Überschrift des heutigen Artikels lautet [...] 

[
wfw] => Array ( 
[
commentrss] => [url]http://www.sgcastrop.de/wordpress/?feed=rss2&p=363[/url] )
[summary] => Wie die Überschrift des heutigen Artikels lautet [...] 
[
date_timestamp] => 1206889020 ))) 
Ich kann dann sagen:
Wenn dieser Beitrag jünger als 4 Wochen ist,
dann zeig mir die Überschrift an, sonst nicht.

Ich bekomme diesen Wert aber nicht ausgelesen.
Bevor ich mit einer IF-Anweisung weiterarbeiten will, habe ich versucht diesen Wert mit diversen Ausgabebefehlen auzulesen, aber es hat nichts geholfen,

weder mit

PHP-Code:
  print_r (array($my_rss_items[0][0][wfw][date_timestamp])); 
noch mit

PHP-Code:
echo  $my_rss_items[0][0]['wfw']['date_timestamp']; 
Hier können Syntaxfehler drin sein, aber ich hab auch alle anderen Kombinationen schon durch (mit Anführungsstrichen, Klammern hinzufügen und wegnehmen, ...).
Vielleicht könnt ihr mir einen Gefallen tun und auch noch mal drüber sehen.

Danke

Geändert von Linksaussen_11 (02-04-2008 um 14:31 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 02-04-2008, 13:28
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.721
Kropff befindet sich auf einem aufstrebenden Ast
Standard

code umbrechen! sonst findet keine sau den antwort-button!

peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #5 (permalink)  
Alt 02-04-2008, 13:54
MelloPie
 PHP Master
Links : Onlinestatus : MelloPie ist offline
Registriert seit: Jan 2002
Ort: Hessen
Beiträge: 4.380
MelloPie ist zur Zeit noch ein unbeschriebenes Blatt
Standard

also wenn dein array schon sortiert ist dann sortiere es doch anders rum geh von oben bis unten durch und wenn dein timestamp älter als deine 4 wochen sind dann gibste den Eintrag aus...

was is denn jetzt so schwer da dran?
Deinn rss gibt Dir doch schon alles.
Achja und wenn der erste eintrag gültig ist gibste deine Überschrift aus.
__________________
Beantworte nie Threads mit mehr als 15 followups...
Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25
Mit Zitat antworten
  #6 (permalink)  
Alt 02-04-2008, 14:42
Linksaussen_11
 Registrierter Benutzer
Links : Onlinestatus : Linksaussen_11 ist offline
Registriert seit: Jul 2005
Beiträge: 22
Linksaussen_11 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo MelloPie,

ich weiss, da ist eigentlich nichts schwieriges dran,
aber an

Zitat:
...dann gibste den Eintrag aus...
liegt es ja gerade.

Das krieg ich nicht hin, obwohl es ein einfaches print oder echo ist.
Und wie ich ein Array auslese, weiss ich ja mittlerweile auch,
abgesehen, davon, dass immer noch kleine Syntaxfehler drin sein können.

Und auch gedanklich krieg ichs hin.

Zitat:
Achja und wenn der erste eintrag gültig ist gibste deine Überschrift aus.
ist ja nichts anderes als das:

Wenn dieser Beitrag jünger als 4 Wochen ist,
dann zeig mir die Überschrift an, sonst nicht.
Mit Zitat antworten
  #7 (permalink)  
Alt 02-04-2008, 14:50
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Würdest du wohl deinen Code noch umbrechen, dass man nicht seitwärts scrollen muss, um den Antwort-Button zu finden!
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #8 (permalink)  
Alt 02-04-2008, 15:06
MelloPie
 PHP Master
Links : Onlinestatus : MelloPie ist offline
Registriert seit: Jan 2002
Ort: Hessen
Beiträge: 4.380
MelloPie ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Also wenn Du es gedanklich hinbekommst, dann sollte auch das coding nicht so schwerfallen. Du hast die Logik im Kopf dann nimm den Werkzeugkasten und baue Dein Script und wenn Du detailprobleme bei der Umsetzung hast wird Dir schon jemand helfen.

Dein bisheriger code zeigt aber dass Du Deine Logik nicht umgesetzt hast, da sind definitiv logische Fehler und eben auch Deine vielzitierten syntaxfehler drin.

Und mal so am rande wenn Du nur eine logik zusammenbekommst aber so was einfaches wie eine Ausgabe nicht dann solltest Du Dir überlegen ob Du das beauftragst oder dich mal hinsetzt und das Umsetzen lernst.

Dann wird aus dem
Zitat:
Codezusammenbastler ohne wirkliche Programmierkenntnisse
vielleicht mal ein kleiner oder grosser Programmierer.
__________________
Beantworte nie Threads mit mehr als 15 followups...
Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25
Mit Zitat antworten
  #9 (permalink)  
Alt 02-04-2008, 15:26
Wyveres
 Registrierter Benutzer
Links : Onlinestatus : Wyveres ist offline
Registriert seit: Dec 2006
Ort: Rügen
Beiträge: 763
Blog-Einträge: 2
Wyveres ist zur Zeit noch ein unbeschriebenes Blatt
Wyveres eine Nachricht über ICQ schicken
Standard

PHP-Code:
echo  $my_rss_items[0][0]['wfw']['date_timestamp']; 
anscheind machen die ... dimensionen noch ein problem

denn da ist ein array element zuviel drin!

deine array ausgabe! wenn ich es richtig verstanden habe sieht ohne inhalt so aus
Code:
Array 
(
    [0] => 
    Array 
    ( 
        [0] => 
        Array 
        ( 
            [title] =>
            [link] =>
            [comments] => 
            [pubdate] => 
            [dc] => 
            Array 
            ( 
                [creator] => 
            )          
            [category] => 
            [guid] =>
            [description] =>
            [wfw] => 
            Array 
            ( 
                [commentrss] =>  
            )
            [summary] => 
            [date_timestamp] =>
        )
    )
)
also um an timestamp zu kommen must du ...
na na richtig

PHP-Code:
 echo $my_rss_items[0][0]['date_timestamp']; 
benutzen.
__________________
Bitte Beachten.
Foren-Regeln
Danke
Mit Zitat antworten
  #10 (permalink)  
Alt 03-04-2008, 15:44
Linksaussen_11
 Registrierter Benutzer
Links : Onlinestatus : Linksaussen_11 ist offline
Registriert seit: Jul 2005
Beiträge: 22
Linksaussen_11 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo Wyveres,

vielen Dank für deine Hilfe und Tschuldigung für die eigentlich läppische
Frage nach der Ausgabe des Arrays.

Da aber ich nicht 100-%ig wusste, wie ich ein mehrdimensionales Array
anspreche, war ich mir auch nicht sicher, ob die Syntax des
Ausgabebefehls richtig war.

War sie auch nicht, aber aus anderen Gründen.
Weil ich nämlich die Klammer hinter [commentrss] übersehen habe,
hat das Array nur eine Tiefe von 3 nicht von 4.

Trotzdem erhalte ich mit deinem Code diese Ausgabe

PHP-Code:
Array ( [0] => ) 
, also nicht das Ergebnis sondern den Namen der Variablen,
und dann offensichtlich auch nur den des "oberen Arrays".
Mit Zitat antworten
Antwort

Lesezeichen


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

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

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 05:24 Uhr.