PHP MYSQL BASIC Frage..

madirfan

Erfahrenes Mitglied
hallo leute.. bin ein anfänger und wollte etwas wissen:D

ich habe eine mySQL Datenbank und ein Tabel mit Daten bestückt und sie entspechend angezeigt:

Was ich hier gern machen will ist:
Jedes "titel" sollte einen HyperLink haben und zu seinen Datensatz vollständig anzeigen.

kann mir da einer helfen?


PHP:
<?php 
mysql_connect("ddd", "ddd" , "teddd3") ; 
mysql_select_db("ddd");
?>

das ist mein Blog <hr />

<?php 

$sql = mysql_query ("SELECT * FROM myBLOG ORDER BY id DESC");
while($row = mysql_fetch_array($sql)){
$id = $row['id'];
$titel = $row['titel'];
$content = $row['content'];
$kategorie = $row['kategorie'];
?>

<table border="1" cellpadding="5" cellspacing="5" width="100%">
<tr>
<th colspan="2"><?php echo $id; ?> : <?php echo $titel; ?> </th>
</tr>
<tr>
<td width="20%"><?php echo $kategorie; ?></td><td><?php echo $content; ?> </td>
</tr>
</table>
<br>


<?php 
}
?>
 
Zuletzt bearbeitet:
So wie das hier aussieht, willst du eine Tabelle haben, in der alle deine Blogeinträge angezeigt werden. Oder willst du jetzt dort Links platzieren, über die du dann zu den einzelnen Blogeinträgen kommst?
 
Dann brauchst du irgend sowas
HTML:
<a href="detail.php?id=13">Mein Link</a>
In der detail.php kannst du dann alle Details zur ID auslesen und ausgeben

Und so kannst du den Link erstellen
PHP:
$link = "<a href='detail.php?id={$id}'>{$titel}</a>";

Nachtrag:
Ein Gratistipp, der dir und uns (vor allem dir) viel hift. Rück dein Code ein. Verwende Leerzeichen oder Tabulatoren damit man seht wo eine { beginnt und wo sie Endet: PHP High Quality PHP-Code Kapitel 4 (die Anderen sind auch interessant)
 
Zuerst ein SELECT mit der ID im WHERE um den Detailblock auszulesen und dann das Resultat ausgeben.
Ist zu 80% eine HTML-Frage wie du es darstellen willst.

PHP:
<?php
//DB Connection laden
include('connect.php');

//genauere Prüfung was da als id wirklich kommt und ungültige Werte abfangen.
$id = filter_input(INPUT_GET, 'id', FILTER_SANITIZE_NUMBER_INT);
//Nur bei gültiger ID etwas wausgeben
if(false!==(is_null($id) ? false: $id)){
    $result = mysql_query($sql);
    $data = mysql_fetch_assoc($result);
    
?>
<body>
Und viel Text und Design und schöne Darstellung
<hr />
<h4>ID</h4>
<?php echo $data['id']; ?>
<h4>Name</h4>
<?php echo $data['name']; ?>
</body>


<?php 
}else{
    echo 'Kein gültiger Datensatz.';
}
?>
 
so vielleicht:

<?php

$sql = mysql_query ("$sql = 'SELECT * FROM myBLOG WHERE id = ' . (int) $_GET['id'];");
while($row = mysql_fetch_array($sql)){
$id = $row['id'];
$titel = $row['titel'];
$content = $row['content'];
$kategorie = $row['kategorie'];
?>

<table border="1" cellpadding="5" cellspacing="5" width="100%">
<tr>
<th colspan="2"><?php echo $id; ?> : <?php echo $titel; ?> </th>
</tr>
<tr>
<td width="20%"><?php echo $kategorie; ?></td><td><?php echo $content; ?> </td>
</tr>
</table>
<br>


<?php
}
?>
 
$sql = mysql_query ("SELECT * FROM myBLOG WHERE id = ' . (int) $_GET['id'];");
schreint micht zu gehen
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING
 
Das liegt daran, dass du hinter dem $_GET['id'] einerseits ein Semikolon, andererseits einen doppelten Anführungsstrich hast, die beide nicht an diese Stelle gehören. Du brauchst sie nur zu löschen. Im Übrigen solltest du entweder die Variante mit doppelten Anführungsstrichen oder die mit einfachen Anführungsstrichen nutzen. Schau mal, wie deine Zeichenkette beginnt (") und wie sie endet (').
 
Zurück