Problem mit Veranstaltungen anzeigen lassen

EuropaChat

Erfahrenes Mitglied
Hallo,

habe eine Community und in diesem Code wird es nur so geregelt das es die Veranstaltungen von dem User anzeigt die man selbst erstellt hat aber nicht alle Veranstaltungen von allen Usern. Wie mach ich das, das alle Veranstaltungen aufgelistet werden die in der Datenbank stehen und das ich nur die Veranstaltungen löschen kann die ich mit meinem Nick erstellt habe?

Habe es so versucht:

PHP:
$abfrage_gruppen = "SELECT * FROM veranstaltung_member ORDER BY id";

das klappt aber nicht ganz.

Hier der Code:

Veranstaltungen.php http://paste42.de/2837/
Veranstaltungen.inc.php http://paste42.de/2838/

Wer kann mir helfen das zu programmieren?


Danke Gruß Markus.
 
WHERE.
Ergänze dein SQL mit WEHRE

SQL:
SELECT
    * 
FROM
    veranstaltung_member
WHERE
    user = 'hans'
ORDER BY
    id
 
Zuletzt bearbeitet von einem Moderator:
Was meinst du denn mit der Aussage "Es klappt nicht ganz"? Wir können dir nur helfen, wenn du eine präzise Angabe des Problems gibst.
 
Wenn du alle Veranstaltungen willst, bist du mit dieser Abfrage schon mal richtig dabei:
PHP:
$abfrage_gruppen = "SELECT * FROM veranstaltung_member ORDER BY id";

Dann musst du, weil die Tatsache ob du etwas löschen kannst oder nicht eher auf PHP basiert, einfach so etwas einbauen:
PHP:
$abfrage_gruppen = "SELECT * FROM veranstaltung_member ORDER BY id";
$abfrage_gruppen_qry = mysql_query($abfrage_gruppen,$sql);
while($row = mysql_fetch_object($abfrage_gruppen))
{
    if($row->userid == $_SESSION['userid'])
    {
          echo($row->name."deleteme");
    } else {
          echo($row->name);
    }
}
Das Script liest alle Veranstaltungen aus. Wie genau deine Datenbankstruktur ist, weiß ich leider auch nicht. Naja egal. Das Script vergleicht dann von jedem Eintrag die userID mit der aktuellen Session. Dadurch kann der eingeloggte Benutzer nur seine Einträge löschen.
"deleteme" ersetzen durch deine Löschfunktion oder deinen Löschlink, wie auch immer...

Gruß

€:
Theoretisch kannst du auch erst alle Veranstaltungen auslesen und dann die deines aktuellen Benutzers, oder umgekehrt. Das erleichtert dir die Programmierung aber nicht, sondern ist nur von der Benutzung anders und ich persönlich fände es nicht so ansprechend.
 
Zuletzt bearbeitet:
Hi einwandfrei Danke für den Script ich verstehe dein Edit nicht dort sagst du das man theoretisch alle Veranstaltungen ausgeben kann das ist ja der Script den du mir gepostet hast bzw. ist das so gemeint das man umschalten kann auf Meine Veranstaltung Alle Veranstaltungen? Wenn ich nur meine Anzeigen lassen will nehme ich ja einfach nur den Code von mir wenn ich alle Anzeigen will den Code von dir oder?

Einfach Veranstaltungen-alle.php dein code rein
meine-veranstaltungen.php meinen Code rein und per Link abrufen.


Gruß Markus
 
Also der etwas längere Code liest alle Veranstaltungen aus. Ich gehe mal von einer einfachen Struktur der Tabelle aus, wobei zusätzliche Felder egal wären. Wichtig sind nur die Felder id, name, userID (wie genau die heißen ist ja ziemlich wurscht, muss halt angepasst werden!)
Wenn ein Benutzer eingeloggt ist, wird er ja eine SESSION mit seiner userID haben, oder?
Die while-Schleife gibt dann alle Veranstaltungen aus und vergleicht bei jedem Eintrag die userID mit der aktuellen Session. Wenn der Eintrag also vom aktuellen Benutzer kommt, wird einfach noch das "Löschen"-Zeichen angezeigt, oder wie auch immer du das handhabst.

Der Edit soll eigentlich sagen, dass du zwei Abfragen machen könntest:
1) Alle Veranstaltungen, außer die des aktuellen Benutzers
2) Alle Veranstaltungen des aktuellen Benutzers

bei 2) könnte der Benutzer dann alle bearbeiten und löschen.

Gruß
 
Cool danke jetzt verstehe ich es. Dann muss ich die ersten beiden Zeilen ersetzen oder?

PHP:
$abfrage_gruppen = "SELECT * FROM veranstaltung_member WHERE username = '$username_session'";
$ergebnis_gruppen = mysql_query($abfrage_gruppen);
$anzahl_gruppen1 = mysql_num_rows($ergebnis_gruppen);
 
Wenn du es so machst, bekommst du
1) nur die Einträge des aktuellen Benutzers
2) nur die Anzahl der Einträge

Ist es das, was du möchtest?
 
Nein, ich habe diesen Code verwendet

PHP:
$abfrage_gruppen = "SELECT * FROM veranstaltung_member ORDER BY id"; 
$abfrage_gruppen_qry = mysql_query($abfrage_gruppen,$sql); 
while($row = mysql_fetch_object($abfrage_gruppen)) 
{ 
    if($row->userid == $_SESSION['userid']) 
    { 
          echo($row->name."deleteme"); 
    } else { 
          echo($row->name); 
    } 
}

und diesen gelöscht:

PHP:
$abfrage_gruppen = "SELECT * FROM veranstaltung_member WHERE username = '$username_session'";
$ergebnis_gruppen = mysql_query($abfrage_gruppen);

bin mir aber nicht sicher ob die zweite Zeile stehen bleiben solle, weil es werden die anderen Gruppen nicht angezeigt.

Bei den Userid In meiner DB gibt es eine Tabelle Namens Member und dort drin sind alle Nicknamen aufgelistet und auch die id "ID".

Hast ICQ dann kann ich es dir besser erklären.
 
Zuletzt bearbeitet:
Zurück