Kommentarfunktion funkt nicht

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Kommentarfunktion funkt nicht

    Hi!
    Ich habe ein Problem mit meiner Kommentarfunktion: Der Kommentar wird bei der Falschen Newsmeldung ausgegeben und es kann nicht mehr als ein Kommentar pro Newsmeldung exsitieren. Was soll ich machen, dass jeder kommentar bei der dazugehörigen Neuigkeit erscheint? Hier mal meine PHP-Datei:
    PHP-Code:
    $abfrage "SELECT * FROM news WHERE id = '".$_GET['id_wert']."'"
    $ergebnis mysql_query($abfrage);
    echo 
    "<table width=\"100%\" cellspacing=\"1\" cellpadding=\"1\" class=\"table-rechts\" height=\"100%\" border=\"1\">\n";
    echo 
    "<colgroup>
    <col width=\"25%\">
    <col width=\"75%\">
    </colgroup>"
    ;
    while (
    $row mysql_fetch_object($ergebnis))
    {

    echo 
    "<tr><td colspan=\"2\" class=\"menuschrift-groß\">News >> "$row->titel ."</td></tr>\n";
    echo 
    "<tr><td colspan=\"2\" class=\"dunkel\">"$row->zeit ." von "$row->autor ."</td></tr>\n";
    echo 
    "<tr><td colspan=\"2\" class=\"dunkel\"><br></td></tr>\n";
    echo 
    "<tr><td colspan=\"2\" class=\"dunkel\">"$row->eingabe ."</td></tr>\n";

    echo 
    "<tr><td colspan=\"2\"><br></td></tr>\n";

    }

    $k_abfrage "SELECT * FROM kommentar_news WHERE news_id = '".$_GET['id_wert']."'"
    $k_ergebnis mysql_query($k_abfrage);
    $result mysql_query($k_abfrage,$dbh); 
    $number mysql_num_rows($result);
    if (
    $number == "0")
    {
    echo 
    "<tr><td class=\"menuschrift-groß\" colspan=\"2\">Keine Kommentare</td></tr>\n";
    }
    else
    {
    echo 
    "<tr><td class=\"menuschrift-groß\" colspan=\"2\">$number Kommentare</td></tr>\n";
    }


    while (
    $raus mysql_fetch_object($k_ergebnis))
    {
    echo 
    "<tr><td colspan=\"2\" class=\"dunkel\">"$raus->zeit2 ." von "$raus->autor2 ."</td></tr>\n";
    echo 
    "<tr><td colspan=\"2\" class=\"dunkel\"><br></td></tr>\n";
    echo 
    "<tr><td colspan=\"2\" class=\"dunkel\">"$raus->kommentar ."</td></tr>\n";
    }

    echo 
    "<tr><td colspan=\"2\"><br></td></tr>\n";

    echo 
    "<tr><td class=\"menuschrift-groß\" colspan=\"2\">Kommentieren</td></tr>\n";
    echo 
    "<tr><td><form action=\"feedback.php\" method=\"post\">Name:</td>
    <td><input type=\"text\" name=\"autor2\"></td></tr>"
    ;
    echo 
    "<tr><td>Kommentar:</td><td><textarea cols=\"34\" rows=\"9\" name=\"kommentar\"></textarea></td></tr>";
    echo 
    "<tr align=\"center\"><td colspan=\"2\"><input type=\"submit\" value=\"Kommentieren\">
    <input type=\"reset\" value=\"Zurücksetzen\"></td></tr>"
    ;
    echo 
    "</table>";
    include (
    "../inc/unten.php");
    ?> 
    Danke für jede Hilfe!
    Thx

  • #2
    kann mans mal online sehen?

    Kommentar


    • #3
      packt die Ausgabe in einer einzigen Schleife und verwende LEFT JOIN für
      deine Abfrage. Bei der Ausgabe von Kommentar musst du halt per If abfragen ob was existiert.

      Kommentar


      • #4
        hätt ich vielleicht noch dazu sagen solln: ich bin nicht besonders gut in PHP. Also was meinst du mit LEFT JOIN? Und wie kann ich es in eine Schleife tun? Es sind doch zwei verschiedene MySql Tabellen.
        Anschaubar: hier

        Kommentar


        • #5
          wenn dus mitm left/outer join machst, dann ists nur noch eine abfrage. ob das aber sinnvoll ist?

          Kommentar


          • #6
            bist du

            a) sicher, dass die kommentare in der db sind?
            b) dein query scheint falsch zu sein. haste mal in myadmin geprüft?

            Kommentar


            • #7
              Ähh, sry, ich versteh nur Banhof Was heißt das jetzt konkret für mich?

              Kommentar


              • #8
                haste a und b überprüft???

                Kommentar


                • #9
                  a) die kommentare sind 100% in der Db, es werden ja auch die Kommentare mit ID 1 und 2 ausgegeben.
                  b) wenn des query falsch wäre, würde ja auch nichts in die db geschreiben werden, oder?
                  Es muss irgendwie daran liegen, dass einfach die Falschen Kommentare für jede Neuigkeit angezeigt werden. Es wird ja bei beiden Sachen mit $_GET['id_wert'] gearbeitet, also wird bei News mit id 1 auch kommentar 1 angezeigt und bei News 2 kommentar 2 usw. Nur ich weiß nicht wie man des richtig macht

                  Kommentar


                  • #10
                    weil du beides mal $_GET['id_wert'] als Referenz einsetzst, nehme ich an,
                    dass pro news nur eine Kommentar existert und news.id ist zugleich
                    kommentar_news.news_id ist. Ist das korrekt ?

                    Kommentar


                    • #11
                      Ja, aber ich weiß nicht, weis anders geht

                      Kommentar


                      • #12
                        OK, grobe Vorgehensweise
                        PHP-Code:
                        $sql='select a.*, b.* from news a left join kommentar_news b 
                                  on a.id=b.news_id where a.id='
                        .$_GET['id_wert'];
                        // ... Connection aufbauen
                        // ... Resulset init
                        ...
                        while (
                        $rows=mysql_fetch_array(...)) {
                        // Ausgabe der Daten aus news
                        // per if abfragen, ob das kommentarfeld nicht leer ist
                        // bei Bedarf: Ausgabe der Daten aus kommentar_news

                        Kommentar


                        • #13
                          Sry, ich will ja nicht nerven, aber ich verstehe den auf aufbau von $sql nicht so richtig. Was heißt denn das a.* und b.*. Und Resulset init
                          Wär nett wenn du mir noch ein bisschen unter die Arme greifen könntest
                          Thx

                          Kommentar


                          • #14
                            a ist Namensalias von news und b ist Namenalias von kommentar_news
                            a.* = alle Spalten von news, b.* analog

                            das mit dem init ist $result=mysql_query.... gemeint.

                            So, ruhe jetzt ich geh pennen. Lerne Grundlagen dann wirst du auch
                            verstehen. Hilfe gibs nicht mehr von mir. Ist schon zu viel. Normalerweise
                            kann man schon viel damit anfangen. Schau mal bei schattenbaum.net
                            vorbei (Link in meiner Signatur).

                            Kommentar

                            Lädt...
                            X