Variable bei URL übergeben
Carl
- php
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
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
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
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
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
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
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
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