tutorials.de Buch-Aktion 05/2012
Seite 1 von 3 123 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
30
ZUGRIFFE
679
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    diepeter diepeter ist offline Mitglied
    Registriert seit
    Aug 2010
    Ort
    Augsburg
    Beiträge
    13
    Ich blick nicht mehr durch,

    habe mehrfach die Suchfunktion benutzt - das was ich fand paßte nicht so ganz zu dem was ich suche - habe damit aber schon etwas erreicht - bekomme wenigstens etwas angezeigt.

    meine Webseite wird über eine index.php angezeigt, die Inhalte kommen dynamisch aus der Datenbank (pageContent) ich möchte auf der Webseite anzeigen, wann die (gerade angezeigte Seite - pageID)Seite erstellt, bzw. zuletzt bearbeitet wurde.

    habe folgende Tabelle mit den Spaltenüberschriften

    pageID pageAuthorID pageTitle pageContent pageCreateDate visible parentPageID displayInMenu usePageTreeMenu

    zur Abfrage nutze ich folgendes Query:

    $z=mysql_query("SELECT pageID,pageTitle,pageCreateDate FROM acp_content LIMIT 1"); //Auswahl ausführen und Ergebnis in Variable z speichern
    while($unter=mysql_fetch_array($z)) //nun wird das Ergebnis welches in $z steht in ein Array $unter umgewandelt und so lange durchlaufen wie Zeilen die Abfrage ausgibt.
    {
    echo "$unter[pageID] - $unter[pageTitle] - $unter[pageCreateDate]"; //da $unter nun ein Array ist, muss es dementsprechend mit Feldbezeichungen ausgegeben werden
    }
    //mysql_close(); //Verbindung zum Server schließen

    ?>


    als Ausgabeergebnis gibt er mir:

    1 - Startseite - 1252331883 - wenn ich LIMIT nicht auf 1 setzte bekomme ich natürlich alle Seiten angezeigt.

    wenn ich die Seite wechsel werden aber die Daten der Startseite weiter angezeigt und nicht die der Aktuellen Seite.


    <b>1 </b><br />Startseite</b><br />1252331883<br />
    <br />

    <b>2 </b><br />Impressum</b><br />1252331883<br />
    <br />

    <b>3 </b><br />AGB</b><br />1252331883<br />
    <br />
    .....

    <b>178 </b>Forum</b>1280426491<br /><br />


    Wie kann ich es realisieren, das nur die Daten der angezeigten Seite sichtbar sind - steh echt auf´m Schlauch und blick nicht mehr durch.
    Wahrscheinlich denke ich zu kompliziert.
     

  2. #2
    Avatar von saftmeister
    saftmeister saftmeister ist offline Der Saft sei mit dir
    tutorials.de Premium-User
    Registriert seit
    May 2006
    Ort
    There is no place like 127.0.0.1
    Beiträge
    3.520
    Das was da als pageCreateDate ausgegeben wird, ist ein Zeitstempel. Das sind die seit dem 1.1.1970 vergangenen Sekunden. Du kannst das mittels date()-Funktion in ein menschen-lesbares Format umwandeln:

    Code php:
    1
    
    echo date("Y-m-d H:i:s", $unter[pageCreateDate]);
     
    Grüße
    --
    Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)

  3. #3
    diepeter diepeter ist offline Mitglied
    Registriert seit
    Aug 2010
    Ort
    Augsburg
    Beiträge
    13
    hallo saftmeister,

    erst mal - DANKE - für die schnelle Antwort

    ich möchte, das ich wenn eine Seite aufgerufen wird, auch nur zu der Seite mit der Seiten ID das Datum angezeigt wird - wenn Du noch bock hast - schau bitte mal auf:

    http://www.pro-blem.de/index_dbabfrage.php

    dort werden alle seiten mit ID | Seitenname | Erstelldatum gelistet - entsprechend der Abfrage

    egal, auf welchen Punkt ich klicke bleibt aber immer das Datum der Startseite in der Anzeige egal, welche pageID er im Browser anzeigt - kannst Du nachvollziehen, wenn Du auf Startseite klickst und dann durch die einzelnen links weitergehst

    Gruß Peter
     

  4. #4
    Avatar von timestamp
    timestamp timestamp ist offline Mitglied Rubin
    Registriert seit
    May 2010
    Ort
    Marburg
    Beiträge
    1.479
    Der Code von Saftmeister ist richtig, der Fehler muss also irgendwo bei dir liegen, zeige dochmal die dein Script bis jetzt aussieht.
     

  5. #5
    diepeter diepeter ist offline Mitglied
    Registriert seit
    Aug 2010
    Ort
    Augsburg
    Beiträge
    13
    hallo timestamp,
    hier der code:

    <?php

    $z=mysql_query("SELECT pageID,pageTitle,pageCreateDate FROM acp_content LIMIT 1"); //Auswahl ausführen und Ergebnis in Variable z speichern
    while($unter=mysql_fetch_array($z)) //nun wird das Ergebnis welches in $z steht in ein Array $unter umgewandelt und so lange durchlaufen wie Zeilen die Abfrage ausgibt.
    {
    echo "$unter[pageID] - $unter[pageTitle] - $unter[pageCreateDate] ";
    echo date("Y-m-d H:i:s", $unter[pageCreateDate]); //da $unter nun ein Array ist, muss es dementsprechend mit Feldbezeichungen ausgegeben werden
    }
    //mysql_close(); //Verbindung zum Server schließen

    ?>

    ich sag´s ja, denke ich zu kompliziert wenn ich nur das Erstelldatum, bzw. datum der letzten bearbeitung pasend zu seitenID ausgeben lassen will?

    Gruß Peter
     

  6. #6
    Avatar von tombe
    tombe tombe ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2004
    Ort
    Möglingen (BaWü)
    Beiträge
    3.109
    Die Abfrage die du oben geschrieben hast enthält keinen WHERE Abschnitt, es wird also nur durch "LIMIT 1" die Ausgabe beschränkt. Wenn auf den verlinkten Seiten immer der falsche Wert angezeigt wird, müsste es also daran liegen das du in der Abfrage nicht nach der ID filterst!?

    Wenn der Code formatiert wäre, wäre es einfacher zu lesen, hoffe mal nicht das ich was übersehen habe.
     
    Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.

    Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.

  7. #7
    diepeter diepeter ist offline Mitglied
    Registriert seit
    Aug 2010
    Ort
    Augsburg
    Beiträge
    13
    hallo tombe,
    danke für deine hilfreiche Antwort!
    genau an dieser Zuordnung fehlt es mir vom Verständnis her d.h. wie kann ich es gestalten, das die pageID1 auch genau den Timestamp aus der dazugehörenden Zeile bekommt oder wie kann die Filterung nach pageID umgestetzt werden?

    Gruß Peter
     

  8. #8
    Avatar von tombe
    tombe tombe ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2004
    Ort
    Möglingen (BaWü)
    Beiträge
    3.109
    Du übergibst ja bei jedem Link die pageID, dann muss die SQL Anweisung so aussehen:

    PHP-Code:
    $sql "SELECT pageID, pageTitle, pageCreateDate FROM acp_content WHERE pageID = '" .mysql_real_escape_string($_GET["pageID"]) ."' LIMIT 1"
    bzw. so:

    PHP-Code:
    $z=mysql_query("SELECT pageID, pageTitle, pageCreateDate FROM acp_content WHERE pageID = '" .mysql_real_escape_string($_GET["pageID"]) ."' LIMIT 1"); 
    Geändert von tombe (02.08.10 um 15:38 Uhr)
     
    Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.

    Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.

  9. #9
    Avatar von timestamp
    timestamp timestamp ist offline Mitglied Rubin
    Registriert seit
    May 2010
    Ort
    Marburg
    Beiträge
    1.479
    Übrigens, bei assoziativen arrays (mit STRINGS als index) müssen diese in Anführungszeichen stehen (ansonsten wir ein Fehler der Stufe e_notice oder warning erzeugt)
    Bitte schreibe deine PHP Codes doch auch in [php] [/php] tags

    Ich habe deinen Code mal ein wenig verschönert (z.b. unnötige Kommentare entfernt )
    PHP-Code:
    <?php
    $result
    =mysql_query("SELECT pageID,pageTitle,pageCreateDate FROM acp_content ORDER BY pageCreateDate DESC"); //Auswahl ausführen, neueste Beiträge zuerst
    while($row mysql_fetch_array($result) ){
      echo 
    $row['pageID'].' - '.$row['pageTitle'].' - ';
      echo 
    date('H:i:s d.m.Y'$row['pageCreateDate']);
      echo 
    '<br />';
    }
    mysql_close(); 

    ?>
     

  10. #10
    Avatar von ComFreek
    ComFreek ComFreek ist gerade online [x] Let it be logic!
    tutorials.de Moderator
    Registriert seit
    Jun 2009
    Beiträge
    2.364
    Blog-Einträge
    4
    @timestamp: Nein, das stimmt nicht ganz. Zuerst sucht PHP nach einer Konstanten und wenn es keine Konstante gibt, dann werden die Zeichen in einen String verwandelt.

    Der Link: PHP-Performance.de
    Geändert von ComFreek (02.08.10 um 17:27 Uhr)
     
    mfg ComFreek

    Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
    Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
    [PHP] Überprüfen, ob Website erreichbarSicherheit in PHP-Codes schaffenGoogle Chrome-Extension für tutorials.dejson_compress()

  11. #11
    Avatar von tombe
    tombe tombe ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2004
    Ort
    Möglingen (BaWü)
    Beiträge
    3.109
    @Peter
    Gehen tut es ja jetzt scheinbar, nur die Formatierung des Datum und der Uhrzeit klappt wohl noch nicht so ganz.

    Du kannst das Feld "pageCreateDate" auch gleich in der Abfrage formatieren:

    Code sql:
    1
    
    SELECT pageID, pageTitle, DATE_FORMAT(pageCreateDate, "%H:%i:%s - %d.%m.%Y") FROM ...
     
    Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.

    Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.

  12. #12
    diepeter diepeter ist offline Mitglied
    Registriert seit
    Aug 2010
    Ort
    Augsburg
    Beiträge
    13
    Hallo tombe, ComFreek und timestamp,

    vielen Dank für Eure Unterstützung und Hilfe. Das Ergebnis ist zu sehen unter:

    http://www.pro-blem.de/

    Ein hab ich noch:

    wie sezte ich es um, das wenn z.Bsp:

    index.php?pageID=152 dann auch nur das: 152 - F A Q - 24.11.2009 09:12:08

    angezeigt wird?

    Da steh ich noch ganz schön auf dem Schlauch (Zuordnung pageID zur Anzeige Änderungsdatum)

    Sorry, will echt nicht nerven!

    Gruß Peter
     

  13. #13
    Avatar von ComFreek
    ComFreek ComFreek ist gerade online [x] Let it be logic!
    tutorials.de Moderator
    Registriert seit
    Jun 2009
    Beiträge
    2.364
    Blog-Einträge
    4
    Zitat Zitat von diepeter
    Sorry, will echt nicht nerven!
    Dafür ist doch das Forum dar

    Ich verstehe nicht ganz deine Frage.



    PS: Deine PHP-Datei hat einen Fehler:
    Code :
    1
    
    Parse error: syntax error, unexpected T_STRING in /home/pro-blemde/public_html/index.php on line 374
     
    mfg ComFreek

    Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
    Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
    [PHP] Überprüfen, ob Website erreichbarSicherheit in PHP-Codes schaffenGoogle Chrome-Extension für tutorials.dejson_compress()

  14. #14
    Avatar von tombe
    tombe tombe ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2004
    Ort
    Möglingen (BaWü)
    Beiträge
    3.109
    Wenn ich es vorhin richtig gesehen habe, dann hattest du die Lösung doch schon. Du musst bei der SQL Abfrage ein WHERE Bedingung setzten:

    PHP-Code:
    $sql "SELECT pageID, pageTitle, DATE_FORMAT(pageCreateDate, "%H:%i:%- %d.%m.%Y") FROM acp_content WHERE pageID = '" .mysql_real_escape_string($_GET["pageID"]) ."' LIMIT 1";
    $result mysql_query($sql); 
    So würde dann die Anweisung inklusive Formatierung des Datums aussehen.

    Noch was anderes.
    Scheinbar stimmt mit der Kodierung der Seite und/oder der Datenbank was nicht. Alle "Ä", "ä", "Ö", "ö", usw. werden falsch angezeigt!
    Geändert von tombe (02.08.10 um 17:38 Uhr)
     
    Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.

    Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.

  15. #15
    diepeter diepeter ist offline Mitglied
    Registriert seit
    Aug 2010
    Ort
    Augsburg
    Beiträge
    13
    Hallo ComFreek,

    den Fehler habe ich verursacht, da ich weiter am probieren bin und gerade bei SELECT war - leider mit o.g. Fehlermeldung.

    ich will erreichen, das über dem Seitentitel angezeigt wird, wann sie erstellt bzw. geändert wurde.

    Das sollte dann so: 1 - Startseite - 07.09.2009 15:58:03 aussehen
    wobei

    1 =pageID
    Startseite=pageTitle
    07.09.2009 15:58:03 = pageCreateDate ist

    aber eben nur für die angezeigte Seite,die über die index.php aufgerufen wird:

    index.php?pageID=175

    da soll dann oben stehen: Site Map - 25.07.2010 19:34:59

    Das kann eigentlich nicht so schwer sein, da ja die aufgerufene Seite schon über die index.php?pageID=175


    eindeutig identifiziert ist - oder mach ich da wirklich einen blöden Denkfehler und hab mich voll vertan?

    Gruß Peter
     

Ähnliche Themen

  1. Seite in Seite ohne iframe anzeigen?
    Von Vapire im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 18.05.07, 11:43
  2. Datum anzeigen
    Von Bunny1502 im Forum Flash Plattform
    Antworten: 4
    Letzter Beitrag: 08.06.06, 13:19
  3. Datum anzeigen!
    Von -Ener- im Forum .NET Windows Forms
    Antworten: 5
    Letzter Beitrag: 11.01.06, 14:40
  4. Dynamisches Banner? Dynamische Seite?
    Von Kai-Behncke im Forum HTML & XHTML
    Antworten: 4
    Letzter Beitrag: 23.05.05, 09:15
  5. Datum anzeigen
    Von sven0024 im Forum Relationale Datenbanksysteme
    Antworten: 4
    Letzter Beitrag: 24.01.05, 16:32

Stichworte