bestimmten Datensatz (MySQL)auslesen

wowe58

Grünschnabel
Ich habe eine Datenbank für eine Fussballseite gebastelt, funktioniert auch alles einwandfrei. Nun kommt aber mein Problem, das ich bis jetzt nie lösen konnte.
Ich möchte eine kleine Vorschau und wenn man auf den Link klickt z.B. Details, dann möchte ich genau auf diesen Datensatz kommen und nicht das immer alle angezeigt werden.
Wie lese ich diesen Datensatz aus?- Hiiiillfe - bin am verzweifeln.
 
Zuletzt bearbeitet:
Hi!

Du suchst also immer alle daten aus der Tabelle?
Nun, Du musst doch irgendein eindeutiges Feld habe, das für jeden Datensatz eindeutig/einmalig ist, z. B. einen Namen oder eine ID.
Dann könntest Du, wenn jemand auf Details oder was auch immer klickt, ein 2. select Statement machen, welches nach dem Eintrag in der Tabelle sucht, der diesen Namen, diese Id oder so hat.
Bsp.: select Name, ID from Fussball; -> das liefert Dir alle Namen und IDs aus der Tabelle Fussball;
Da hat jeder Eintrag eine eindeutige/einmalige ID. Nehmen wir als Bsp. mal die 5.
Dann kommt das 2. Statment für die Details: select * from Fussball, where ID=5;
Und schon hast Du alle Angaben zu dem bestimmten Eintrag.

redlama
 
redlama hat gesagt.:
Hi!

Du suchst also immer alle daten aus der Tabelle?
Nun, Du musst doch irgendein eindeutiges Feld habe, das für jeden Datensatz eindeutig/einmalig ist, z. B. einen Namen oder eine ID.
Dann könntest Du, wenn jemand auf Details oder was auch immer klickt, ein 2. select Statement machen, welches nach dem Eintrag in der Tabelle sucht, der diesen Namen, diese Id oder so hat.
Bsp.: select Name, ID from Fussball; -> das liefert Dir alle Namen und IDs aus der Tabelle Fussball;
Da hat jeder Eintrag eine eindeutige/einmalige ID. Nehmen wir als Bsp. mal die 5.
Dann kommt das 2. Statment für die Details: select * from Fussball, where ID=5;
Und schon hast Du alle Angaben zu dem bestimmten Eintrag.

redlama
So frage ich jetzt z.B. meine Daten ab
<?php
// Aufbau der Verbindung
$db=@mysql_connect("localhost", "***", "****")
or die ('Spielberichte zur Zeit nicht verfügbar...');
@mysql_select_db('*****', $db);
// Alle Werte der Tabelle vorschau abfragen (SELECT * FROM news ) und nach datum ordnen
$abfrage="SELECT * FROM news ORDER BY datum desc ";

// Abfrage mit mysql_query
$res=mysql_query($abfrage, $db);
// Zur Ausgabe wird mysql_num_rows verwendet, um einen Datensatz nach dem anderen formatiert //ausgeben zu können
$num=@mysql_num_rows($res);
$anz = @mysql_num_rows($res);
if ($anz > 0)
{




while ($arr = mysql_fetch_array($res))
{
echo "<p></p>";
}
}
else
{


echo "Zur Zeit sind keine News in unserer Datenbank.";
}
if ($num>0)
for($i=0;$i<$num;$i++)
{

$datum=mysql_result($res,$i,"datum");
$titel=mysql_result($res,$i,"titel");
$wert=mysql_result($res,$i,"wert");
$bericht=mysql_result($res,$i,"bericht");
// Mittels der for-Schleife werden alle Einträge formatiert ausgegeben


?>
Das wäre mein Link dazu, ich , oder derjenenige, der die Daten eingibtweiß natürlich seine ID nicht.
<a href="Was sollte hier stehen><span class="link">Details.

Mensch, bin ich für das wirklich zu dämlich
 
Also du erstellst eine Detailseite mit einer neuen Mysql - Abfrage.
Diese änderst wie folgt ab:
Code:
$abfrage="SELECT * FROM news WHERE id = '$_GET[id]'";
Damit erreichst Du, das nur ein Datensatz (nämlich der mit der übergebnen ID abgefragt wird) ausgegeben wird.
BEDINGUNG: Du musst in deiner Datenbank-Tabelle eine Spalte ID haben, die jedem Datensatz eine individuelle Nummer zuweist.

Deinen Link musst Du dann wie folgt abändern:

Code:
<a href="detailseite.php?id=[id aus der datenbank abfragen und hier den Ausgabebefehl platzieren]"><span class="link">Details.

Das wars.

Du solltest die aber das hier mal anschauen: http://www.schattenbaum.net/php/
 
Ist das so falsch, es funktioniert einfach nicht
<a href=erste/_bericht.php?id=<?php echo $result['ID_bericht'];?>
 
Das ist mein Kurzkommentar

Aktuelles</span><br>
<?php
// Aufbau der Verbindung
$db=@mysql_connect("localhost", "www**", "**")
or die ('Spielberichte zur Zeit nicht verfügbar...');
@mysql_select_db('www**', $db);
// Alle Werte der Tabelle vorschau abfragen (SELECT * FROM erste ) und nach datum ordnen
$abfrage="SELECT * FROM erste ORDER BY datum desc ";
// Abfrage mit mysql_query
$res=mysql_query($abfrage, $db);
// Zur Ausgabe wird mysql_num_rows verwendet, um einen Datensatz nach dem anderen formatiert //ausgeben zu können
$num=@mysql_num_rows($res);
$anz = @mysql_num_rows($res);
if ($anz > 0)
{




while ($arr = mysql_fetch_array($res))
{
echo "<p></p>";
}
}
else
{


echo "Zur Zeit sind keine News in unserer Datenbank.";
}
if ($num>0)
for($i=0;$i<$num;$i++)
{

$datum=mysql_result($res,$i,"datum");
$heim=mysql_result($res,$i,"heim");

$bericht=mysql_result($res,$i,"bericht");
// Mittels der for-Schleife werden alle Einträge formatiert ausgegeben


?>
<br>
<div align="left"></div>
<div align="center"> </div>
<table width="98%" border="0" cellspacing="1" cellpadding="1" class="textnormfett" align="center">
<tr>
<td width="25%">
<?php echo $datum;?>
</td>
<td colspan="2" align="center" width="75%">
<div align="left">
<?php echo $heim;?>
</div>
</td>
</tr>
<tr>
<td colspan="3" class="textnorm">
<?php echo $bericht;?>
</td>
</tr>
<tr>

<td colspan="2"><a href=erste/_bericht.php?ID= <?php echo $ID_bericht; ?>><span class="link">mehr..</span></a>
</td>
</tr>
</table>
<br>
<?php
}
mysql_close($db);

?>


und von diesem Kurzkommetar soll ich dann auf diesen Bericht kommen




<?php
// Aufbau der Verbindung
$db=@mysql_connect("localhost", "www**", "**")
or die ('Spielberichte zur Zeit nicht verfügbar...');
@mysql_select_db('www**', $db);
// Alle Werte der Tabelle erste abfragen (SELECT * FROM erste) und nach datum ordnen
$abfrage="SELECT * FROM erste WHERE ID = '$_GET[ID]'";


// Abfrage mit mysql_query
$res=mysql_query($abfrage, $db);
// Zur Ausgabe wird mysql_num_rows verwendet, um einen Datensatz nach dem anderen formatiert //ausgeben zu können
$num=@mysql_num_rows($res);
$anz = @mysql_num_rows($res);
if ($anz > 0)
{




while ($arr = mysql_fetch_array($res))
{
echo "<p></p>";
}
}
else
{


echo "Zur Zeit sind keine Spielberichte in unserer Datenbank.";
}
if ($num>0)
for($i=0;$i<$num;$i++)
{
$datum=mysql_result($res,$i,"datum");
$heim=mysql_result($res,$i,"heim");
$gast=mysql_result($res,$i,"gast");
$spiel=mysql_result($res,$i,"spiel");
$tore=mysql_result($res,$i,"tore");
$gelb=mysql_result($res,$i,"gelb");
$gelbrot=mysql_result($res,$i,"gelbrot");
$rot=mysql_result($res,$i,"rot");
$team=mysql_result($res,$i,"team");
$bericht=mysql_result($res,$i,"bericht");
// Mittels der for-Schleife werden alle Einträge formatiert ausgegeben


?>
<div align="left"></div>
<div align="center"> </div>
<table width="98%" border="0" cellspacing="1" cellpadding="1" align="center">
<tr>
<td width="40%" class="h1">Spielbericht vom:
<?php echo $datum;?>
</td>
<td width="60%" align="center" class="h1">
<?php echo $heim;?>
:
<?php echo $gast;?>
-
<?php echo $spiel;?>
</td>
</tr>
</table>
<br>
<table width="98%" border="0" cellspacing="3" cellpadding="1" align="center">
<tr>
<td class="textnormfett">Tore f&uuml;r SPG Reichenau/Aldrans II</td>
</tr>
<tr>
<td class="berichttitel">
<?php echo $tore;?>
</td>
</tr>
</table>
<br>
<table width="98%" border="0" cellspacing="3" cellpadding="1" align="center">
<tr>
<td colspan="2" class="textnormfett">
<div align="left">Verwarnungen</div>
</td>
</tr>
<tr>
<td width="16%" class="berichttitel" height="2">
<div align="left"><img src="../img/karten_gelb.gif" width="8" height="15">
Gelb</div>
</td>
<td width="84%" class="berichttitel" height="2">
<?php echo $gelb;?>
</td>
</tr>
<tr>
<td width="16%" class="berichttitel">
<div align="left"><img src="../img/karten_gelbrot.gif" width="8" height="15">
Gelb/Rot </div>
</td>
<td width="84%" class="berichttitel">
<?php echo $gelbrot;?>
</td>
</tr>
<tr>
<td width="16%" class="berichttitel">
<div align="left"><img src="../img/karten_rot.gif" width="8" height="15">
Rot </div>
</td>
<td width="84%" class="berichttitel">
<?php echo $rot;?>
</td>
</tr>
</table>
<br>
<table width="98%" border="0" cellspacing="3" cellpadding="1" align="center">
<tr>
<td class="textnormfett">Spielbericht</td>
</tr>
<tr>
<td class="berichttitel">
<?php echo $bericht;?>
</td>
</tr>
</table>
<br>
<table width="98%" border="0" cellspacing="3" cellpadding="1" align="center">
<tr>
<td class="textnormfett">Die SPG Reichenau/Aldrans II spielte wie folgt</td>
</tr>
<tr>
<td class="berichttitel">
<?php echo $team;?>
</td>
</tr>
</table>
<hr align="center" class="linieblau">
<p>
<?php
}
mysql_close($db);

?>
</p>
</div>


Wenn ich auf den Link im Kurzkommentar klicke, dann kommt in der Statuszeile ../bla/bla(ID= und dann nichtsmehr.
Verflucht, was mach ich blos falsch, glaube habe einen Knopf in meinen Gehirnwindungen
 
Könntest du mir bitte die genauer schildern

<a href="detailseite.php?id=[was ich hier genau einfügen soll]"><span class="link">Details.
vielen Dank im voraus
 
Also zunächst musst du dafür sorgen, dass bei der Übersichtsseite auch die ID aus der Datenbank geholt wird, sonst kannst Du sie nicht in den Link weitergeben.

Aus deinem Code entnehme ich, dass die Bezeichnung der Spalte mit der ID "ID_bericht" heißt. Daraus ergibt sich wiederum, dass hier auf der Detailseite ein Fehler ist:
PHP:
abfrage="SELECT * FROM erste WHERE ID = '$_GET[ID]'";
Das muss dann so lauten:
PHP:
abfrage="SELECT * FROM erste WHERE ID_bericht = '$_GET[ID]'";

Probier das mal und überarbeite mal deine Abfrage; ist recht kompliziert.
 
Danke Moritz
Bin ich ein Idiot, wie soll er die ID erkennen, wenn ich sie nicht abfrage.
Nochmals Danke, habe Monate an diesem Problem gearbeitet.
Mein PHP Kenntnisse sind schlecht, aber ich werde daran arbeiten
 

Neue Beiträge

Zurück