Datenbankausgabe klappt nicht

soa

Erfahrenes Mitglied
Hallo,

leider kann ich den betreffenden Beitrag nicht DB auslesen.

Ich übergebe einen Beitragsnummer mit einer ID an eine weitere Seite via $_GET
und möchte nun den Datensatz auslesen, bei dem die = der Beitragsnummer ist.

Code:
// nachstehend wird die übergebene Beitrags-nummer ausgewertet und gespeichert
if(isset($_GET['beitrag']))
    { 
      $beitrag_nr = $_GET['beitrag'] + 1; 
        echo $beitrag_nr;
    }
     else
     { 
    echo 'Keine der Variablen wurde uebergeben!'; 
    } 

//-------------------------------------------------------------------------------
// aktueller Beitrag wird noch einmal in der Kommentarseite ausgelesen,
// bevor alle Kommentare zum Beitrag erscheinen.
//-------------------------------------------------------------------------------

$db=mysql_connect("localhost","root","")or die(mysql_error());
mysql_select_db("weblog", $db)or die(mysql_error());

$sql = " SELECT datum, benutzername, betreff, eintrag FROM
                    eintraege
                    WHERE
                    id like '%$beitrag_nr%'";  
                  
               

 ?>                   
<h1>Hier noch einmal der Beitrag:</h1>

<table border = 1 bordercolor="#ffffff"> <font face="Arial, Helvetica, sans-serif", color="#ffffff">
<tr>
  
 <th>Datum</th>
 <th>Benutzer</th>
 <th>Betreff</th>
 <th>Beitrag</th>
 
 </tr>
 </table>
 <?php
 
 
$result = mysql_query($sql)or die(mysql_error()); 
 
WHILE($row=mysql_fetch_row($result)){

print "<tr>\n <th>".$row[1]."</th><th>".$row[2]."</th><th>".$row[3];

}


include 'footer.html';
?>

Leider wird nichts ausgegeben. Wo liegt hier wohl mein Fehler

Gruß
SOA
 
Entschuldigt bitte ........

die ID ist ein INTEGER. Muss ich hier parsen?

Wie kann ich denn die ID gleich übergeben?

Sorry, ist mein erster Versuch etwas mit $_GET zu übergeben.


DANKE

SOA
 
Die Abfrage müsste auch so funktionieren, würde ich aber durch
Code:
id =  $beitrag_nr";
ersetzen.

Ansonsten wird die Tabelle geschlossen bevor die Ausgabe der Zeilen beginnt, vielleicht liegts ja daran.
 
Chars vergleicht man mit LIKE, Integer vergleicht man mit feldname=$id.
Bei der anderen Sache frage ich mich, wieso Du zu der übergebenen id noch 1 hinzuzählst und nicht gleich die richtige id im Link angibst.

Gruß hpvw
 
Danke schon einmal
Ich glaube es lag am Browser, dass ich die Ausgabe nicht bekam.
Es funktioniert...
id = $beitrag_nr"; hatte ich erst....

Es ist so: Ich gebe auf der Indexseite alle Beiträge aus der Tabelle "eintraege" aus.

Code:
error_reporting(E_ALL);

$db=mysql_connect("localhost","root","")or die(mysql_error());
mysql_select_db("weblog", $db)or die(mysql_error());

$result=mysql_query("SELECT * FROM eintraege ORDER BY datum DESC LIMIT 10", $db);

for($i=0; $i<mysql_num_rows($result); $i++)
{
   $blog[$i]=mysql_fetch_object($result);
}
echo "<table border=\"0\">";
for($i=0; $i<mysql_num_rows($result); $i++)
......und dann den Array auslesen.......

Nun will jmd. zu einem best. Beitrag ein Kommentar schreiben.

angenommen zu Beitrag 10 ...... for schleife fängt bei 0 an:

Ich setze also $beitrag_nr = $i;
und addiere nachher 1 dazu.

Sinn: es soll der Beitrag, zu dem ein Kommentar geschrieben werden soll, auf der Kommentarseite noch einmal ausgegeben werden.

Es geht so....aber wenn ich es besser machen kann?
Ich lerne gern, deswegen bin ich hier bei euch... :)
 
Es geht einfacher:
PHP:
$result=mysql_query(
    "SELECT * FROM eintraege ORDER BY datum DESC LIMIT 10", $db);

echo "<table border=\"0\">";
while ($row=mysql_fetch_assoc($result)) {
    //......und dann den Array ausgeben.......
    echo "<tr><td><a href=\"comment.php?beitrag=".
        $row['id']."\">".$row['titel']."</a></td></tr>";
    //Dann kannst Du Dir auf der Kommentarseite
    //sparen, einen hinzu zu zählen
}
echo "</table>";
 
Zurück