Daten ausgabe als Link

  • Hallo :)

    ich möchte folgendes umsetzen:

    ich habe ein kleines Formular wo ich daten eingeben kann, nehmen wir als Beispiel einen Artikel dafür her. Nach dem absenden soll auf einer Seite ein Link erscheinen mit dem erstellten Artikel.
    Das ganze soll sich natürlich selbsständig erweitern umso mehr Artikel man eingibt.

    Ich habe jetzt eine Ausgabedatei und eine Eingabedatei geschrieben bzw. zusammengebastelt :D Allerdings weiß ich nicht wie und wo ich das jetzt umschreib das es nicht ausgegeben wird sondern als Link darstellt

    Ausgabedatei:

    Eingabedatei:

    lg Chris

  • Normalerweise hast du eine ID Spalte in deiner Artikel Tabelle. Das ist eine Spalte mit AUTO_INCREMENT Funktionalität. Also eine fortlaufene Nummer für jeden Datensatz.

    Bei deiner Übersicht könntest du dann einen Link auf den Artikel machen z.B.:

    PHP
    <?php
    $link = '<a href="artikel.php?id=' . $datensatz['id'] . '">Hier gehts zum Artikel</a>';
    ?>


    Wenn du den Link nach dem Einfügen des Artikels in die Datenbank anzeigen willst, kannst du auch die mysql_insert_id() (http://php.net/manual/de/function.mysql-insert-id.php) Funktion benutzen:

    PHP
    <?php
    // ...
        echo "<h3>Der Datensatz wurde hinzugefügt!</h3>";
        echo '<a href="artikel.php?id=' . mysql_insert_id() . '">Hier gehts zum Artikel</a>';
    // ...
    ?>

    und dann eine artikel.php erstellen, wo du dann die Artikel Detailseite darstellst:

    PHP
    <?php
    $artikel_id = (int) $_GET['id'];
    
    
    $sql = "SELECT `adresse`, `beschreibung`, `kontakt` FROM `acties` WHERE id = $artikel_id";
    // Daten auslesen...
    ?>

    Gruß crAzywuLf :D

    2 Mal editiert, zuletzt von crAzywuLf (6. August 2012 um 15:56)

  • Hey erstmal danke dafür das bringt mich schon mal weiter :)

    jetzt habe ich allerdings das Problem das er sich die ID nicht nimmt?

    also auf gut deutsch der Link funzt nicht :D

    die artikel.php hab ich genau so gemacht wie du und bei meiner ausgabe.php hab ich das halt eingefügt?

    PHP
    while ($datensatz = mysql_fetch_array( $abfrageergebnis ))
    {    
    
    echo $link = '<a href="artikel.php?id=' .$datensatz['id'] . '">Hier gehts zum Artikel</a>';

    also das while war schon vorher ;) aber dort habe ich den Befehl eingefügt

  • PHP
    $sql = "SELECT `adresse`, `beschreibung`, `kontakt` FROM `acties`";


    Um die id erweitert?

  • so siehts halt jetzt in der ausgabe datei aus:

  • Hallo??? Jemand zu Hause?


    Um die id erweitert?


    Richtig debuggen:

    1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
    2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(E_ALL);
    3. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
    4. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht).
    5. Schritt 4 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
    6. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
    7. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
    8. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

  • Notice: Undefined index: id in /homepages/31/d338018673/htdocs/ausgabe.php on line 16
    0 acties gefunden!

    ist der Error!

    $sql = "SELECT `id`, `adresse`, `beschreibung`, `kontakt` FROM `acties` WHERE id = $artikel_id";

    hab ich geändert :/

  • $_GET['id'] ist doch nur vorhanden, wenn das Script z.B. so aufgerufen wird:

    script.php?id=22

    Das ist aber bei dir doch nicht der Fall, oder? Das ist doch erst in artikel.php vorhanden

  • das heißt das GET hat nichts in meiner ausgabe.php zu suchen?


    Richtig!
    In ausgabe.php:

    PHP
    $sql = "SELECT `id` FROM `acties`";


    In artikel.php

    PHP
    if (isset($_GET['id']) && is_numeric($_GET['id']))
    {
        $sql = "SELECT `adresse`, `beschreibung`, `kontakt` FROM `acties` WHERE id = " . $_GET['id'];
    
        :
        :
        :
    }
  • hui super das sieht schon weitaus besser aus...zumindest mal keine Fehler mehr ;)

    jetzt habe ich jedoch glaube ich nen anderes Problem...und zwar sage ich in einer datei von mir ja das ich nur vordefinierte seiten aufrufen darf...

    also so ;)

    habs mal abgekürzt...so muss ich da jetzt irgendwas ergänzen? bzw. wie füge ich hier IDs ein? Weil mir wird noch nichts angezeigt


    PS: noch ne Kleinigkeit...wo kann man hier nen Absatz einfügen das er auch akzeptiert wird?

    PHP
    echo $link = '<a href="?site=artikel.php?id=' . $datensatz['id'] . '">Hier gehts zum Artikel</a>';

    und wenn ich jetzt mehrere Datensätze habe heißt mein Link immer gleich logischerweise...jedoch brauch ich für jeden Datensatz nen eigenen Namen zB.: Artikel1, Artikel2 usw. :/ vielleicht hast du da auch noch ne Idee ;)

    2 Mal editiert, zuletzt von Christoph Hinger (6. August 2012 um 19:15)

  • Zum ersten Teil: verstehe ich nicht so richtig, was hat das mit dem anfänglichen Problem zu tun? Wieso plötzlich includes?
    Zum zweiten Teil: speichere doch in der DB einen passenden Namen, den du in der Auflistung ausgibst. Nur Artikel 1 bis n ist ja eher nichtssagend.

  • wieso plötzlich? die waren vorher auch schon da :D und jetzt wollte ich halt was mit mysql probieren ;) ich hab mir halt durch einige tutorials gewühlt und das kam dabei raus ;) und jetzt arbeite ich den ganzen Tag schon an diesen Teil herum und kapiers einfach nicht *g*

    Hab ich da nen grundsätzliches Problem oder wie?

    und zum zweiten Teil...ja sowas hab ich mir auch gedacht weil ich sowieso vorhab das abzuspeichern aber wie baue ich das in dem Link ein?

  • wieso plötzlich? die waren vorher auch schon da


    Aber nicht für uns ersichtlich.

    wie baue ich das in dem Link ein?


    So langsam neige ich dazu zu sagen: Lerne bitte die Grundlagen! Du hast die ID aus der DB gelesen, wo ist jetzt das Problem, zusätzlich noch einen Wert dazu auszugeben?

  • was bedeutet das jetzt?

    ich bin ja dabei zu lernen und zu verstehen...allerdings sind einige Tutorials für mich zu schwer beschrieben das sie mir nur teilweise helfen. Ich bin halt über jede Hilfe danbar...

    mir ist das schon klar...jedoch funktioniert das nicht so wie ich das glaube :/

    für mich wäre es dann logisch das ich statt dem Text das einfüge

    PHP
    . $datensatz['beschreibung'] .

    ja das funktioniert halt nicht :/ vielleicht hab ich auch heute einfach schon zuviel dran rumgewerkt das ich schon blind bin :D

  • also die ausgabe.php sieht so aus:

    Die Fehlermeldung dazu lauter so:

    Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /homepages/31/d338018673/htdocs/ausgabe.php on line 30

    Zeile 30 ist auch diese hier

    PHP
    echo $link = '<a href="?site=artikel.php?id=' . $datensatz['id'] . '"> . $datensatz['beschreibung'] . ></a>';

    jedoch hab ich irgendwie schon weiß Gott wieviel Varianten durchprobiert und ich komme einfach nicht drauf :/

    und ich habe noch immer das Problem das ich nicht weiß wie das mit den ID-Links funktioniert...ich finde auch nichts passendes bei google :/ und ich will das endlich lernen :(

  • danke erstmal für den Tipp :)

    allerdings stimmt irgendwas mit den "" oder '' nicht...jedoch hab ich glaub ich schön langsam alle Varianten durch :D

    Folgender Fehler erscheint:

    Parse error: syntax error, unexpected T_STRING in /homepages/31/d338018673/htdocs/ausgabe.php on line 31

    Zeile 31 ist die $link Zeile

  • Ich für meinen Teil finde es immer wieder erschreckend, wenn man in einem Forum die Grundlagen erklären muss und nach Parse-Error suchen soll!

    PHP
    echo "<a href='?site=artikel.php?id=" . $datensatz['id'] . "'>" . $datensatz['beschreibung'] . "</a>";