Tabellenzeile auslesen
locke
- php
Hallo,
ich habe aus einer Datenbank Inhalte ausgelesen und in eine Tabelle eingefügt. Weiterhin wird in jeder Zeile ein Button bearbeiten eingefügt. Nun möchte ich auf Bearbeiten klicken und eine neue Seite soll sich öffnen mit den Daten aus der Tabelle. Das öffnen der Seite hab ich, aber wie komme ich an die Daten?
<?php
mysql_connect("localhost", "root", "") or die ("Es ist eine Verbindung möglich!\n");
mysql_select_db("Verwaltung") or die ("Die gewählte Datenbank kann nicht angezeigt werden!\n ");
$i=0;
$sql="select a.*,h.Hersteller,b.Dateiname,t.typ,m.Modell
from artikel a left join hersteller h on a.h_id=h.h_id
left join bilder b on a.a_id=b.a_id
left join typ t on t.t_id=a.typ
left join modell m on m.m_id=a.m_id
order by a.neu";
$erg=mysql_query($sql);
if ( ! $erg )
{
die('Ungültige Abfrage: ' . mysql_error());
}
echo "<form name=\"Produkte\"".$i." action=\"index.php?option=com_content&view=article&catid=7&id=4\" target=\"_self\" method=\"post\"><table border='1'>
<tr align='center'\n>
<th></th><th>A_ID</th> <th>ArtNr</th> <th>extArtNr</th> <th>Modell</th> <th>Datum</th> <th>F_ID</th> <th>K_ID</th>
<th>Typ</th><th>Hersteller</th><th>Dateiname</th><th></th>
</tr>
";
while ($zeile = mysql_fetch_array( $erg, MYSQL_ASSOC))
{
echo "<tr>";
if ($zeile['neu'])
echo "<td>NEU</td>";
else echo "<td></td>";
echo "<td>". $zeile['A_ID'] . "</td>";
echo "<td>". $zeile['ArtNr'] . "</td>";
echo "<td>". $zeile['extArtNr'] . "</td>";
echo "<td>". $zeile['Modell'] . "</td>";
echo "<td>". $zeile['Datum'] . "</td>";
echo "<td>". $zeile['F_ID'] . "</td>";
echo "<td>". $zeile['K_ID'] . "</td>";
echo "<td>". $zeile['typ'] . "</td>";
echo "<td>". $zeile['Hersteller'] . "</td>";
echo "<td>". $zeile['Dateiname'] . "</td>";
echo "<td><INPUT type=\"submit\" name=\"Bearb\"".$i."\" id=\"".$i."\"value=\"Bearbeiten\"></td>";
echo "</tr>";
$i=$i+1;
}
echo "</form></table>";
mysql_free_result( $erg );
?>
Hi,
ich habe aus einer Datenbank Inhalte ausgelesen und in eine Tabelle eingefügt. Weiterhin wird in jeder Zeile ein Button bearbeiten eingefügt. Nun möchte ich auf Bearbeiten klicken und eine neue Seite soll sich öffnen mit den Daten aus der Tabelle. Das öffnen der Seite hab ich, aber wie komme ich an die Daten?
In dem du sie gezielt aus der Datenbank ausliest ...?
Übergebe die ID des Datensatzes als Parameter an dein Bearbeiten-Script.
MfG ChrisB
In dem du sie gezielt aus der Datenbank ausliest ...?
Übergebe die ID des Datensatzes als Parameter an dein Bearbeiten-Script.
MfG ChrisB
Die angezeigte Tabelle soll ja als Übersicht dienen und der Bearbeiter soll sich dann den Tabelleneintrag auswählen und bearbeiten. Deshal der Button Bearbeiten am Ende.
Wenn ich aber mit $_POST auf der neuen Seite auf die Daten zugreifen will, geht das nicht.
Wie kann ich das also machen?
Ich möchte die Daten, die in der Zeile stehen, in der Bearbeiten gedrückt wurde übergeben haben.
Hi,
Die angezeigte Tabelle soll ja als Übersicht dienen und der Bearbeiter soll sich dann den Tabelleneintrag auswählen und bearbeiten. Deshal der Button Bearbeiten am Ende.
Und was macht dieser Button?
Wenn ich aber mit $_POST auf der neuen Seite auf die Daten zugreifen will, geht das nicht.
Du kannst nur auf die Daten zugreifen, die du auch übergeben hast.
Wie kann ich das also machen?
Übergebe die Daten, die du auch der nächsten Seite brauchst.
Ich möchte die Daten, die in der Zeile stehen, in der Bearbeiten gedrückt wurde übergeben haben.
Dann müsstest du jede Zeile in ein eigenes Formular packen.
Aber warum willst du das? Wenn du die ID des Datensatzes übergibst, dann kannst du doch problemlos auf der Detailseite die Daten genau dieses Datensatzes gezielt aus der Datenbank auslesen.
Das ist eine absolut übliche Vorgehensweise.
MfG ChrisB
Und wie kann ich in der Tabelle den einen Eintrag auswählen den ich haben möchte? Deshalb hab ich ja die Buttons gemacht, weil ich keine andere Möglichkeit gefunden habe.
Hi!
Und wie kann ich in der Tabelle den einen Eintrag auswählen den ich haben möchte? Deshalb hab ich ja die Buttons gemacht, weil ich keine andere Möglichkeit gefunden habe.
Die ID des Datensatzes muss den Weg in das Formular finden. Du hast dich entscheiden, ein POST-Formular zu verwenden, was allerdings nicht so günstig ist. Ein Link wäre einfacher. Der müsste zum Beispiel auf details.php?id=xx verweisen (xx ist die ID des Datensatzes). Fertig. Für das POST-Formular müsste die Information der Datensatz-ID in den Absende-Button eingebaut werden. Im value geht nicht, weil da der anzuzeigende Wert drinsteht. Bleibt das name-Attribut und das wird etwas umständlich. Schreibst du id_xx, müsstest du in den Keys des $_POST-Arrays nach einem Key suchen, der mit id_ beginnt und dann die Nummer extrahieren. Schreibst du id[xx], ist das Element $_POST['id'] ein Array, dessen erstes Element den Key xx hat. Den bekommst du mit der Funktion key(). Zur Sicherheit schadet ein reset($_POST['id']) vorher nicht.
Lo!
Hi,
wenn ich den Weg über den Link gehe, wie kann ich dann auf die id zugreifen, die ich mit übergebe?
Hi!
wenn ich den Weg über den Link gehe, wie kann ich dann auf die id zugreifen, die ich mit übergebe?
Genau, die musst du mit übergeben, so wie ich das schon schrieb und im aufgerufenen Script steht sie in $_GET['parametername']. Ein Link, der einen GET-Request anstößt, reicht in dem Fall völlig. POST ist erst dann nötig, wenn die neuen Daten gesendet werden sollen. Und auch beim der Bestätigung des Löschens, denn das ginge zwar auch mit einem GET, aber dann löscht der erste vorbeikommende Suchmaschinen-Crawler oder Link-Checker deinen Datenbestand.
Lo!
Danke!
Hat geklappt.