ERLEDIGT
NEIN
ANTWORTEN
11
ZUGRIFFE
881
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
  1. #1
    Nahla ist offline Rookie
    Registriert seit
    Mar 2012
    Beiträge
    6
    Hallo liebe Community,

    ich bin ein neues Mitglied hier im Forum und freue mich, darauf gestoßen zu sein.

    Vorab die wichtigste Info: Ich arbeite mit MySQL-Client-Version: 5

    Ich habe mich am Newssystem mit PHP und MySQL auf traum-projekt.com versucht und es funktioniert soweit alles.

    Allerdings finde ich keine Antwort zur folgenden Frage: Wie kann man die News so anlegen, dass für sie automatisch eine URL generiert wird?

    Um die Frage besser darzustellen, nenne ich ein Beispiel: Ich habe drei News erstellt, die dem Alter entsprechend untereinander erscheinen. Nun möchte ich aber an irgendeiner anderen Stelle auf meiner Website nur auf die News vom 19.03. verweisen inkl. Kommentare. Angenommen ich habe in meiner Navigation auf meiner Website "Wetter" stehen, wie muss die URL für die News vom 19.03. aussehen, damit ein Klick nur zu diesem Beitrag führt?

    Ich vermute, dass ich hierbei etwas in der Datenbank ändern muss, aber ich weiß leider gar keinen Ansatz. Mir fehlt ein Denkanstoß, vermutlich google ich mit den falschen Begriffen bei der Suche nach einer Lösung und komme deshalb nicht weiter.

    Ich wäre für jeden Hinweis sehr dankbar.

    Liebe Grüße
    Nahla
     

  2. #2
    Avatar von Lime
    Lime ist offline frisch fruchtig
    Registriert seit
    Jul 2011
    Beiträge
    581
    Prinzipiell ist das nicht schwer.

    Wenn du einen Beitrag hast, mit der Überschrift "Das Wetter ist gut.", welcher in der Datenbank die ID 5 hat, dann mach folgendes drauß. (nur ein Beispiel)
    PHP-Code:
    $id 5//kannst du auch per mysql-Abfrage hier hinschreiben lassen
    echo "<a href=\"news.php?id={$id}\">Das Wetter ist gut.</a>"
    In der Seite "news.php" kannst du die ID folgend abfragen:
    PHP-Code:
    $id $_GET['id'];
    echo 
    $id//ausgabe = 5

    $sqlCmd "SELECT * FROM news WHERE id=".mysql_real_escape_string($id); //mysql_real_escape_string gegen mysql-injection.
    //Dadurch liest du alle Daten zum Beitrag mit der ID5 aus, damit du ihn einzeln anzeigen kannst. 
    Also normalerweise verweist du per ID auf einzelne Beiträge o.Ä.
    Ich hoffe ich bin an deiner Frage nicht vorbei...
     

  3. #3
    Nahla ist offline Rookie
    Registriert seit
    Mar 2012
    Beiträge
    6
    Hallo Lime,
    vielen lieben Dank für deine Antwort!

    Ich habs lange probiert, aber es möchte einfach nicht funktionieren.

    Du bist keineswegs an meiner Frage vorbei, ich kann deine Lösung auch nachvollziehen, weiß nur nicht, warum es nicht funktioniert.

    Ich habe den ersten von dir genannten PHP-Code auf der Seite eingefügt, wo der Beitrag mit der ID 1 einzeln erscheinen soll.
    Habe die ID in 1 umgeändert und statt "news.php" "ausgabe.php" eingegeben. Dabei wird aber nur "Das Wetter ist gut" verlinkt und wenn man drauf klickt wird man auf eine 404-Seite weitergeleitet mit folgender Angabe in der URL: www.XY/"ausgabe.php?id={$id}\"

    Beim zweiten von dir genannten PHP-Code habe ich wieder die ID in 1 umgewandelt und bei ""SELECT * FROM news WHERE id=" statt "news" "ausgabe". Habe diese Angaben in ausgabe.php gespeichert, aber der Code wird leider nicht umgesetzt.

    Oh je, ich hoffe, ihr habt Nachsehen mit mir. Mir fehlt viel an Grundwissen, aber ich bin lernwillig und freue mich über jeden Hinweis über mögliche Fehlerquellen.

    Vielen Dank!

    Lieben Gruß
    Nahla
     

  4. #4
    Avatar von Lime
    Lime ist offline frisch fruchtig
    Registriert seit
    Jul 2011
    Beiträge
    581
    Wenn du hier mal sowohl den Code für den Link, als auch den Code der ausgabe.php posten würdest, kann ich oder jemand anderes dir bestimmt helfen.
     

  5. #5
    Nahla ist offline Rookie
    Registriert seit
    Mar 2012
    Beiträge
    6
    Oh je, das habe ich ganz vergessen, danke für die Erinnerung.

    Also hierbei handelt sich wie im ersten Beitrag bereits geschrieben um dieses Tutorial.

    Der Code für ausgabe.php lautet:
    PHP-Code:
    head
    titleAlte HTML Seite/title
    /head
     
    body
    <? include ("tpnews/inc/hp_ausgabe.inc.php"); ?>
    /body
    /html
    Dabei wird hp_ausgabe.inc.php mit folgendem Code includet:
    PHP-Code:
    <?
    include ("tpnews/inc/opendb.inc.php"); // DB öffen
    // Auslesen der News
    $q_select="SELECT * FROM tp_news ORDER BY startdatum DESC, startzeit DESC ";
    $r_select=mysql_query($q_select);
    while (
    $strAusgabe=mysql_fetch_array($r_selectMYSQL_ASSOC))
    {
        
    // Einlesen der Vorlage news.inc.php
        
    $strVorlage="";
        
    $arrVorlageZeilen=file("tpnews/tpl/news.inc.php");
        
    // Zusammensetzen der Vorlage
        
    foreach ($arrVorlageZeilen as $Vorlage) { $strVorlage.=$Vorlage; }
        
    // Datum zusammenstellen
        
    $intDatePart=explode("-"$strAusgabe[startdatum]);
        
    $strDatum=$intDatePart[2].".".$intDatePart[1].".".$intDatePart[0]." ".$strAusgabe[startzeit];
        
    // Ersetzen der Platzhalter ##NAME##
        
    $strVorlage=ereg_replace("##DATUM##",$strDatum,$strVorlage);     
        
    $strVorlage=ereg_replace("##AUTOR##",$strAusgabe[autor],$strVorlage);     
        
    $strVorlage=ereg_replace("##TITEL##",$strAusgabe[titel],$strVorlage);     
        
    $strVorlage=ereg_replace("##NACHRICHT##",$strAusgabe[nachricht],$strVorlage);     
        
    // Augabe der News
        
    echo $strVorlage;  
    }
    ?>
    Ich weiß allerdings nicht, was du mit dem Code für den Link meinst, Lime.

    Bitte lasst mich wissen, wenn ich mit ausgabe.php falsch liege. Werde dann nochmal das Tutorial nach einer evtl. dafür geeigneteren Datei durchforsten.
    Ganz schön schwere Kost für einen Laien wie mich.
    läuft bei mir durch meine vielen Suchanfragen diesbezüglich schon heiß.
     

  6. #6
    Avatar von Lime
    Lime ist offline frisch fruchtig
    Registriert seit
    Jul 2011
    Beiträge
    581
    Ok die Datei hilft mir zwar schon weiter, aber mich interessiert die Datei, in der alle News übersichtlich dargestellt werden. Wo du also eine Liste hast, mit allen News, die du dann einzeln anklicken können sollst, damit man sie im einzelnen sieht. Weil ich denke, da ist der Hund vergraben...
     

  7. #7
    Nahla ist offline Rookie
    Registriert seit
    Mar 2012
    Beiträge
    6
    Bei ausgabe.php sieht man alle News übersichtlich, allerdings kann man sie nicht anklicken, die Titel der jeweiligen News stehen nur als Text.
    Hatte in meinem ersten Beitrag deshalb geschrieben, dass ich vermute, dass man in der Datenbank etwas ändern muss, damit er den Titel eine URL zuteilt.
    Aber ich habe überhaupt keine Vorstellung davon, wie das funktionieren soll.

    Laut dem Tutorial erstellt man mit folgendem Code die Tabelle in der Datenbank:
    PHP-Code:
     CREATE TABLE `tp_news` (
    `
    idint(11NOT NULL AUTO_INCREMENT,
    `
    titeltinytext NOT NULL,
    `
    nachrichttext NOT NULL,
    `
    startdatumdate NOT NULL DEFAULT '0000-00-00',
    `
    startzeittime NOT NULL DEFAULT '00:00:00',
    `
    autortinytext NOT NULL,
    PRIMARY KEY (`id`),
    UNIQUE KEY `id` (`id`)
    TYPE=MyISAM
    Hoffentlich weißt du Rat oder vielleicht eine Quelle, wo ich fündig werden könnte, da Google diesbezüglich nicht viel hergibt.
     

  8. #8
    Avatar von Lime
    Lime ist offline frisch fruchtig
    Registriert seit
    Jul 2011
    Beiträge
    581
    Ah, in Ordnung.
    Persönlich finde ich den Code etwas wirr und vielleicht auch "zu komplexx" geschrieben, aber ein Lösungsansatz wäre folgender:

    PHP-Code:
    <? 
    include ("tpnews/inc/opendb.inc.php"); // DB öffen 
    // Auslesen der News 
    $q_select="SELECT * FROM tp_news ORDER BY startdatum DESC, startzeit DESC "
    $r_select=mysql_query($q_select); 
    while (
    $strAusgabe=mysql_fetch_array($r_selectMYSQL_ASSOC)) 

        
    // Einlesen der Vorlage news.inc.php 
        
    $strVorlage=""
        
    $arrVorlageZeilen=file("tpnews/tpl/news.inc.php"); 
        
    // Zusammensetzen der Vorlage 
        
    foreach ($arrVorlageZeilen as $Vorlage) { $strVorlage.=$Vorlage; } 
        
    // Datum zusammenstellen 
        
    $intDatePart=explode("-"$strAusgabe[startdatum]); 
        
    $strDatum=$intDatePart[2].".".$intDatePart[1].".".$intDatePart[0]." ".$strAusgabe[startzeit]; 

        
    //verlinken des Titels
        
    $titel '<a href="hierdeinedatei.php?id='.$strAusgabe[id].'">'.$strAusgabe[titel].'</a>';
        
    // Ersetzen der Platzhalter ##NAME##
        
    $strVorlage=ereg_replace("##DATUM##",$strDatum,$strVorlage);      
        
    $strVorlage=ereg_replace("##AUTOR##",$strAusgabe[autor],$strVorlage);      
        
    $strVorlage=ereg_replace("##TITEL##",$strAusgabe[titel],$strVorlage);      
        
    $strVorlage=ereg_replace("##NACHRICHT##",$strAusgabe[nachricht],$strVorlage);     
        
    // Augabe der News 
        
    echo $strVorlage;   

    ?>
    hierdeinedatei.php musst du ändern, in den gewünschten Namen.
    Die Datei kannst du dann folglich so programmieren:

    PHP-Code:
    <?PHP
    if(isset($_GET['id']))
    {
       include (
    "tpnews/inc/opendb.inc.php"); // DB öffen 
       // Auslesen der News 
       
    $q_select="SELECT * FROM tp_news WHERE id=".mysql_real_escape_string($_GET['id']);
       
    $q_qry mysql_query($q_select);
       
    $row mysql_fetch_object($q_qry);
       
    //Anzeigen der News...
       
    echo "ID: ".$row->id."<br />";
       echo 
    "Titel: ".$row->titel."<br />";
       echo 
    "Nachricht: ".$row->nachricht."<br />";
       echo 
    "Datum: ".$row->startdatum.", um ".$row->startzeit." Uhr<br />";
       echo 
    "Autor: ".$row->autor;
    } else {
       echo 
    'Hier gibt es nichts zu sehen.';
    }
    ?>
    Ich habs jetzt nicht getestet, aber sollte soweit eigentlich funktionieren. An der Formatierung kannst du natürlich alles ändern, soll ja nur ein kurzes Beispiel sein.
     

  9. #9
    Nahla ist offline Rookie
    Registriert seit
    Mar 2012
    Beiträge
    6
    Vielen Dank für deine Mühe, die Codes zu erstellen, Lime.

    Ich habs ausprobiert und hierdeinedatei.php in titel.php umbenannt, doch leider sind die einzelnen News weiterhin nicht anklickbar.

    Ich hab mir die Codes mehrfach durchgelesen, aber konnte nicht erkennen, wo ich noch etwas anpassen muss.
    Die Vorgehensweise leuchtet mir ein, allerdings kann ich nicht die Ursache erkennen, weshalb es nicht funktioniert.
     

  10. #10
    Avatar von Lime
    Lime ist offline frisch fruchtig
    Registriert seit
    Jul 2011
    Beiträge
    581
    Kommt ein Fehler? Wenn ja, welcher?
     

  11. #11
    Nahla ist offline Rookie
    Registriert seit
    Mar 2012
    Beiträge
    6
    Es passiert leider gar nichts. Die zwei Titel zu den News stehen so wie zuvor dort und sind nicht anklickbar.
     

  12. #12
    Avatar von Lime
    Lime ist offline frisch fruchtig
    Registriert seit
    Jul 2011
    Beiträge
    581
    Mein Fehler. Ich generiere extra eine Variable für den klickbaren Titel und schreib sie nicht richtig rein...

    PHP-Code:
    <? 
    include ("tpnews/inc/opendb.inc.php"); // DB öffen 
    // Auslesen der News 
    $q_select="SELECT * FROM tp_news ORDER BY startdatum DESC, startzeit DESC "
    $r_select=mysql_query($q_select); 
    while (
    $strAusgabe=mysql_fetch_array($r_selectMYSQL_ASSOC)) 

        
    // Einlesen der Vorlage news.inc.php 
        
    $strVorlage=""
        
    $arrVorlageZeilen=file("tpnews/tpl/news.inc.php"); 
        
    // Zusammensetzen der Vorlage 
        
    foreach ($arrVorlageZeilen as $Vorlage) { $strVorlage.=$Vorlage; } 
        
    // Datum zusammenstellen 
        
    $intDatePart=explode("-"$strAusgabe[startdatum]); 
        
    $strDatum=$intDatePart[2].".".$intDatePart[1].".".$intDatePart[0]." ".$strAusgabe[startzeit]; 

        
    //verlinken des Titels
        
    $titel '<a href="titel.php?id='.$strAusgabe[id].'">'.$strAusgabe[titel].'</a>';
        
    // Ersetzen der Platzhalter ##NAME##
        
    $strVorlage=ereg_replace("##DATUM##",$strDatum,$strVorlage);      
        
    $strVorlage=ereg_replace("##AUTOR##",$strAusgabe[autor],$strVorlage);      
        
    $strVorlage=ereg_replace("##TITEL##",$titel,$strVorlage);      
        
    $strVorlage=ereg_replace("##NACHRICHT##",$strAusgabe[nachricht],$strVorlage);     
        
    // Augabe der News 
        
    echo $strVorlage;   

    ?>

    Jetzt sollte zumindest der Titel anklickbar sein. Habe die Datei schon als titel.php festgelegt. Vielleicht klappts ja diesmal auf Anhieb.
     

Thema nicht erledigt

Ähnliche Themen

  1. einzelne daten aus mysql tabelle
    Von Kracky im Forum PHP
    Antworten: 12
    Letzter Beitrag: 22.02.12, 07:39
  2. News in Mysql eintragen
    Von M-P im Forum PHP
    Antworten: 2
    Letzter Beitrag: 18.07.09, 10:49
  3. MySQL Einzelne Einträge abrufen
    Von dsNDesign im Forum Relationale Datenbanksysteme
    Antworten: 8
    Letzter Beitrag: 28.02.09, 19:11
  4. Einzelne Datenfelder anzeigen (Mysql)
    Von Horneck im Forum PHP
    Antworten: 1
    Letzter Beitrag: 24.10.04, 18:28
  5. News System [Mysql]
    Von DarkSummer im Forum PHP
    Antworten: 9
    Letzter Beitrag: 24.04.02, 09:59