Also bevor dir Blutgerinsel alle Möglichkeiten hier auflistet die dich auf umwegen zum Ziel bringt, möchte ich noch schnell mein Senf dazugeben
Bei einem Formular schickt man doch die eingegebenen Daten an eine Datei, die dann die Daten verarbeitet und z.B in eine DB schreibt.
Wie kann ich das Array ($userdata[user_id]) an das Script schicken, das die Formulareingaben verarbeitet ? Es soll halt mit dem Formular geschickt werden, wenn das irgendwie möglich ist.
das Array brauchste net weiter zu geben, da alle deine Seiten die du erstellst so aussehen sollten. Somit wird das Array $userdata immer wieder ersetllt.
Da du nach dieser Vorlage arbeitest ist es einfach dir eine Hilfestellung zu geben.
Als erstes solltest du eine Seite (z. B. inserate_edit.php) erstellen und nur den Link zu dieser Seite anzeigen lassen, wenn der User auch angemeldet ist. Das kannste wie folgt bewerkstelligen:
Code: Alles auswählen
if( $userdata['user_id'] != ANONYMUS )
{
assign_block_vars('inserat_edit', array('LINK' => '<a href="inserate_edit.php">Inserate bearbeiten</a>'));
}
in der Templates sie das dann so aus:
Code: Alles auswählen
<!-- BEGIN inserat_edit -->
{LINK}
<!-- END inserat_edit -->
So und wenn er nun seine Einträge editieren möchte, wäre eine gute Idee seine eingtragenen Inserate anzeigen zu lassen (und zwar nur seine).
Dies kannste mit so einer SQL-Anweisung machen:
Code: Alles auswählen
$sql = "SELECT * FROM phpbb_inserate WHERE userid = '" . $userdata['user_id'] . "'";
$result = $db->sql_query($sql);
while( $inserate = $db->sql_fetchrow($result) )
{
//Anweisung
}
So mit haste im Array $inserate alle Daten die du in der Datenbank gesichert hast enthalten. Als Index stehen nun die Feldnamen wie userid, title oder sowas zur Verfügung.
Nun solltest du bei der Stelle wo //Anweisung steht, deinen Code schreiben um die einzelnen Einträge auszugeben.
Nun solltest du bei jedem deiner Inserate einen Link haben der eine Variable mit der GET-Methode (z. B. inserate_edit.php?mode=edit, in diesem Beispiel ist mode die Variable und edit der Inhalt der Variable, mit $HTTP_GET_VARS['mode'] kannste abfragen ob diese gesetzt ist und wenn ja, ob sie edit oder evtl. del beinhaltet) übergibt.
Tipp:
fürs editieren machste am einfachsten mode=edit
und fürs löscehn machst du mode=del
und die ID des Inserates mit übergeben wie zum Beispiel: id=$inserate['id']
Einen GET-String zu Bilden mit den oberen Daten sollte dann so aussehen:
? bedeutet für den Browser, das alles was danach folgt, Daten für das Script sind
zwei Variablen tust du mit einem & (in HTML &) von einander trennen.
Wenn nun der User auf einen der Links klickt, solltest du dafür in der selben PHP-Datei eine if-Abfrage haben wie folgt:
Code: Alles auswählen
if( $HTTP_GET_VARS['mode'] == 'edit' )
{
/*
Anweisung: Ein Formular ausgeben um das Inserat zu editieren
*/
}
else if( $HTTP_GET_VARS['mode'] == 'del' )
{
/*
Anweisung: Eine Sicherheitsabfrage ob der User das Inserat wirklich löschen möchte
*/
}
else
{
//Hier die Anweisung um die Liste auszugeben
}
Bei beiden Methoden verwendest du nun Formulare mit der POST Methode und kannst dann deine if - else Anweisung noch erweitern:
Code: Alles auswählen
//Zwischen else if{} und else einfügen:
else if( $HTTP_POST_VARS['mode'] == 'save' )
{
// Anweisung um den editierten Beitrag in der Datenbank Upzudaten
}
else if( HTTP_POST_VARS['mode'] == 'y_del' )
{
// Anweisung um den Beitrag nach dem einstimmen des Users zu löschen
}
Um nun diese Variablen nun via HTML zu übergeben verwendest du die hidden-Tags:
Ich hoffe das hat dir weitergeholfen.
wenn was net klar sein sollte oder auf bestimmte Sachen weiter eingehen möchtest: Frag
Alle Angaben wie MySQL Tabelle phpbb_inserate müsstest du dann eh angleichen.
Mfg
MrMind