Carl: Variable bei URL übergeben

Hallo

ich versuche mir grade ein Kommentarscript zusammen zu coden. Hab dabei allerdings ein Problem. Um zum richtigen Kommentar zu gelangen, möchte ich eine Variable mit der URL übergeben. Das klappt allerdings nicht so ganz.

hier mal ein ein paar ausschnitte aus meinem code:

$query = "SELECT id, autor, themenname, DATE_FORMAT(datum, '%d.%m.%Y um %H:%i'), nachricht FROM news ORDER BY id DESC LIMIT 5";
$result = mysql_query($query);
$eintraege = mysql_num_rows($result);
while ($row = mysql_fetch_row($result))
{
$beitrags_id = $row[0];

...

$query2 = "SELECT beitragsid FROM kommentare WHERE beitragsid = '$beitrags_id'";
 $result2 = mysql_query($query2);
 $rowcount = mysql_num_rows($result2);
 if($rowcount != 0)
 {
  $anzahl_kommentare = $rowcount;
 }
 else
 {
  $anzahl_kommentare = 0;
 }

require("templates/news-form.php");
}

news-form.php:

Kommentare: [<? echo?><a href="index.php?section=kommentare&<? $beitrags_id?>"><? echo"$anzahl_kommentare" ?></a>]

Ich denke oder besser ich bin mir sicher, dass alles ziemlich umständlich ist, aber bin halt nur ein anfänger :).
Auf jeden fall sieht der link dann nicht zb so aus:

index.php?section=kommentare&1

sondern nur so:

index.php?section=kommentare&

Wäre schön, wenn mir jemand helfen könnte und mir vielleicht auch paar Tipps geben könnte, was ich verbessern, bzw wie ich es besser lösen kann.

Gruss
Carl

  1. Hallo,

    Du hast in der Zeile noch nen echo vergessen, so gehts besser:

    Kommentare: [<? echo?><a href="index.php?section=kommentare&<? echo $beitrags_id?>"><? echo"$anzahl_kommentare" ?></a>]

    Tschau

    Tobias

    --
    http://www.tobiasklare.de
    fo:) ch:? rl:( br:^ n4:° ie:{ mo:) va:| fl:) ss:| ls:<
    Die Erklärung zum Selfcode findest du hier: http://emmanuel.dammerer.at/selfcode.html
    Einen Decoder für den Selfcode findest du hier: http://peter.in-berlin.de/projekte/selfcode
  2. Hallo Carl,

    $eintraege = mysql_num_rows($result);
    while ($row = mysql_fetch_row($result))

    wenn du hier mysql_fetch_row($result) verwendest musst du...

    {
    $beitrags_id = $row[0];

    ...hier nicht $row[0] verwenden, sondern $row['id'], was auf Dauer etwas übersichtlicher ist.

    if($rowcount != 0)
     {
      $anzahl_kommentare = $rowcount;
     }
     else
     {
      $anzahl_kommentare = 0;
     }

    warum schreibst du nicht nur $anzahl_kommentare = $rowcount? wenn $rowcount = 0 ist, soll $anzahl_kommentare schließlich null sein.

    Kommentare: [<? echo?><a href="index.php?section=kommentare&<? $beitrags_id?>"><? echo"$anzahl_kommentare" ?></a>]

    oje, was soll den dass werden? ich würde nicht ständig zwischen html- und php-Teil umschalten, das wird etwas unübersichtlich - verwende besser sowas:
    Kommentare: [<?php echo "<a href="index.php?section=kommentare&".$beitrags_id."">".$anzahl_kommentare."</a>";

    index.php?section=kommentare&1

    was willst du mit der 1 dahinter? du solltest hinter das & vielleicht eher sowas wie id=1 o.ä. schreiben

    sondern nur so:
    index.php?section=kommentare&

    ich vermute jetzt mal, dass in $beitrags_id nichts drinsteht (einfach mal echo $beitrags_id; hinschreiben, und schauen was dabei rauskommt)

    dass du in der index.php auf section=kommentare mit $_GET["section"] zugreifen musst, weißt du?

    Grüße aus Nürnberg
    Tobias

    --
    sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
    (Selfcode -> http://emmanuel.dammerer.at/selfcode.html)
    1. Hi Tobias

      warum schreibst du nicht nur $anzahl_kommentare = $rowcount? wenn $rowcount = 0 ist, soll $anzahl_kommentare schließlich null sein.

      stimmt eigentlich :)

      was willst du mit der 1 dahinter? du solltest hinter das & vielleicht eher sowas wie id=1 o.ä. schreiben

      ja wäre wahrscheinlich besser. Mir ist jetzt aber noch ein Problem aufgefallen: Wie bekomme ich denn dann das id=1 aus der URL in mein Ausgabescript?

      ich vermute jetzt mal, dass in $beitrags_id nichts drinsteht (einfach mal echo $beitrags_id; hinschreiben, und schauen was dabei rauskommt)

      es hat einfach nur das echo gefehlt.

      dass du in der index.php auf section=kommentare mit $_GET["section"] zugreifen musst, weißt du?

      ja weiß ich, hab ich auch.

      Gruss
      Carl

      1. Hallo Carl,

        was willst du mit der 1 dahinter? du solltest hinter das & vielleicht eher sowas wie id=1 o.ä. schreiben
        ja wäre wahrscheinlich besser. Mir ist jetzt aber noch ein Problem aufgefallen: Wie bekomme ich denn dann das id=1 aus der URL in mein Ausgabescript?

        mit $_GET["id"]? oder wo liegt das Problem?

        dass du in der index.php auf section=kommentare mit $_GET["section"] zugreifen musst, weißt du?
        ja weiß ich, hab ich auch.

        brav :-)

        Grüße aus Nürnberg
        Tobias

        --
        sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
        (Selfcode -> http://emmanuel.dammerer.at/selfcode.html)
        1. Hi Tobias

          irgendwas mach ich wohl falsch:

          <?
          $_GET["id"] = $beitrags_id;
          require("db_connect.php");
          $query = "SELECT id, autor, beitragsid, DATE_FORMAT(datum, '%d.%m.%Y um %H:%i'), kommentar WHERE beitragsid = '$beitrags_id'";
          $result = mysql_query($query);
          while ($row = mysql_fetch_row($result))
          {
           if (mysql_errno())
           {
            die("<br>" . mysql_errno().": ".mysql_error()."<br>");
           }
           $autor = $row['autor'];
           $datum = $row['datum'];
           $kommentar = $row['kommentar'];
          }

          ?>

          Da bekomm ich die folgende Fehlermeldung:

          Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in c:\foxserv\www\doomin-hp\templates\kommentar- ausgabe.php on line 10

          wenn ich versuche mir $_GET["id"] ausgeben zu lassen, kommt nichts raus :(.

          Gruss
          Carl

          1. Hallo Carl,

            irgendwas mach ich wohl falsch:

            <?
            $_GET["id"] = $beitrags_id;
            [...]

            Ja, nämlich genau an dieser Stelle: mit deiner Zeile hast du den Inhalt von $_GET["id"] durch den Inhalt von $beitrags_id ersetzt, welcher aber noch gar nicht existiert. PHP meckert da allerdings nicht, so dass das erstmal nicht auffällt. Deine Zuweisung ist also einfach nur verkehrt herum, so wäre es richtig:

            $beitrags_id = $_GET["id"];

            Grüße aus Darmstadt,
            Benjamin

            --
            http://aktuell.de.selfhtml.org/tippstricks/beitrag.htm
            SELF-Code: sh:) fo:) ch:} rl:| br:> n4:( ie:% mo:) va:) de:> zu:) fl:| ss:) ls[
            1. Hi

              $beitrags_id = $_GET["id"];

              ich hab schon aufgehört zu zählen, wie oft mir dieser Fehler inzwischen passiert ist. Aber ich könnte mich jedes mal selber schlagen :)

              Danke ihr beiden.
              Ihr habt mich nicht nru bei dem Script sondern auch allgemein bei PHP ein gutes Stück weiter gebracht.

              Gruss
              Carl