Spezieller Bilder-Upload und Spielabsagen mit Datenbank verknüpfen

Dude23

Mitglied
Hallo,

wie man vielleicht an meinem letzten Thema sehen kann, arbeite ich derzeit an einem kleinen Projekt. Es ist für eine Hobbyfußball-Liga. Gestern konnte ich bereits ein sehr gut funktionierendes Login-System "installieren" (habe nach Tutorial "Login-System mit Sessions" gearbeitet"). Dabei wurde mir hier schon sehr geholfen. Leider fiel mir kein passenderer Thread-Titel ein.

Heute hätte ich gleich zwei Anfragen, aber vorne weg: Ich frage hier nicht nach "Bitte kann mir das jemand schreiben?", sondern nach Ansätzen, wie ich das am besten selbst umsetzen kann - möchte ja dabei was lernen ;)

Nun zum Thema, Frage 1:

Der eingeloggte User kann die Seite "Spielabsagen" anklicken. Hier würde ich gerne folgendes realisieren: Wenn der User auf den Link "Spielabsagen" geht, soll der Spielplan des Users ausgegeben werden, User sind in meinem Fall die Teams. Team A geht also drauf und es soll nur der Spielplan von Team A angezeigt werden, wenn Team B sich einloggt soll der Spielplan von Team B angezeigt werden usw.

Dabei sollen die Gegner mit E-Mail-Adressen hinterlegt sein, denn: Ich stelle mir das so vor, dass hinter jeder angezeigten Begegnung ein Kontrollkästchen zu sehen ist, wo der User ein Häckchen machen kann. Unter den Begegnungen dann ein Button "Absagen". Hat er z.B. zwei Begegnungen mit dem Häkchen markiert und geht dann auf Absagen, soll eine automatische E-Mail an die dementsprechenden Gegner und die Teamleitung (Teamleitung ist immer die selbe Adresse) verschickt werden.

Ich gehe davon aus, dass man diese Spielpläne am besten mit den in der mySQL-Datenbank eingetragenen login-berechtigten Usern verknüpft. Mir fehlt nur jeglicher Ansatz ;)

Frage 2:

Neben dem Link "Spielabsagen" gibt es einen weiteren Link namens "Kader erstellen". Hier geht es darum, dass in unserer Liga künftig nur zu Saisonbeginn und zur Winterpause neue Spieler in bestehende Teams einsteigen können. Unsere Planung war demnach, dass jedes Team auf der Homepage in seinem Login-Bereich den eigenen Kader einpflegen kann. Dabei soll der User ein Bild des Spielers hochladen und mit Namen+Geburtsdatum als Beschreibung versehen können. Danach sollen auf der Seite die Bilder ausgegeben werden und unter jedem Bild der Name+Geburtsdatum. Auch hier wieder das (für mich) große Problem: Jeder User soll natürlich nur seinen eigenen Kader sehen können.
Das Upload-Formular würde ich dann einfach nach Saisonbeginn bis zur Winterpause wieder rausnehmen.
Erneut fehlt mir der Ansatz, ich habe nachgelesen, dass man Bilder nicht in Datenbanken speichern sollte.

Vielleicht nimmt jemand die Mühe auf sich, das ganze hier durchzulesen ;)

Danke im Voraus!

MfG
Dude23
 
Team A geht also drauf und es soll nur der Spielplan von Team A angezeigt werden

WHERE-Klausel in SQL und Verarbeiten vom Ergebnis (Result) per mysql_fetch_row und while-Schleife in php:
SQL:
SELECT * FROM `tabelle` WHERE `userID` = 1


Dabei sollen die Gegner mit E-Mail-Adressen hinterlegt sein
Aber nicht an den Benutzer senden. Schön in der Datenbank lassen.

hinter jeder angezeigten Begegnung ein Kontrollkästchen zu sehen ist, wo der User ein Häckchen machen kann

http://de.selfhtml.org/html/formulare/auswahl.htm#checkboxen
http://de.selfhtml.org/html/formulare/index.htm

geht dann auf Absagen, soll eine automatische E-Mail an die dementsprechenden Gegner und die Teamleitung (Teamleitung ist immer die selbe Adresse) verschickt werden

Die Daten des gesendeten Formulars sind in $_POST oder $_GET erfasst. Diese einfach Nutzen für die SQL-Anweisung zum Auslesen (SELECT) der Mail-Adressen, gefiltert wieder mit WHERE `mail` = ... OR `mail` = ...
Und dann Mail senden mit mail(): http://www.php.net/mail


Soweit erstmal. Realisiere das mal bis zu den Checkboxen und dann melde dich nochmal ;) zum Kontrolle lesen.
 
Zuletzt bearbeitet von einem Moderator:
Danke dir für diese Tipps, ich werd das mal versuchen. Zwei kleinere Fragen hätte ich dazu aber noch:

1.
PHP:
SELECT * FROM `tabelle` WHERE `userID` = 1

userID kann ich aber doch nicht auf 1 fixieren oder? Wenn sich der User mit ID 3 einloggt, soll ja auch nur der Spielplan für ID 3 abgerufen werden.

2.
Ich hab mit MySQL noch nicht soviel gearbeitet, höchstens mal bezüglich kleineren Dingen. Wie bring ich denn die Spielpläne da überhaupt rein? Also wie man die Datenbank mit Inhalt füllt is mir schon bewusst, aber geht das auch mit ner Tabelle (sprich formatiert durch HTML) oder sollte man das besser so machen, dass jeder Spielplan eine eigene Datei ist, die dann von der Datenbank aufgerufen wird (wenn das überhaupt geht)? Das wiederum würde aber verhindern, dass ich die Gegnernamen mit E-Mail-Adressen verknüpfe oder?

Ich glaub ich kann weniger als du denkst ;)
 
PHP:
SELECT * FROM `tabelle` WHERE `userID` = 1

userID kann ich aber doch nicht auf 1 fixieren oder? Wenn sich der User mit ID 3 einloggt, soll ja auch nur der Spielplan für ID 3 abgerufen werden.

Die ID kann selbstverständlich dynamisch sein. In PHP ist es ja nur ein Text (String):
PHP:
$sql = "SELECT * FROM `tabelle`";
$sql .= " WHERE `userID` = ";
$sql .= 123;
mysql_query($sql);
Wie du siehst kannst du damit machen was du willst ;)

http://tut.php-quake.net/de/mysql.html

Ich hab mit MySQL noch nicht soviel gearbeitet, höchstens mal bezüglich kleineren Dingen.

Ich empfehle dir dazu ein Tutorial das du von Punkt 27. "MySQL" bis Punkt 34. "Gästebuch" einmal durchliest. Punkt 33. "Newsskript" kannst du hierbei auslassen.
Hier der Link zu Punkt 27: http://tut.php-quake.net/de/mysql.html

Danach dürften sich die anderen Fragen so gut wie erledigt haben.

Ich glaub ich kann weniger als du denkst ;)
Mittlerweile kann ich das schon relativ gut abschätzen ;) Mir liegt nur viel daran es immer ein kleinen Schritt höher zu Erklären als der Stand der Leute ist, damit die gefordert werden, recherchieren und damit nicht nur PHP lernen, sondern auch eigenständiger werden.

Bin gespannt wie weit dir das hilft. Wenn danach noch was ist, kannst gerne Fragen.
Deine Lösung würde ich aber trotzdem gern sehen hinterher ;)
Viel Erfolg.
 
Abermals danke für die Tipps. Werd mich heut Abend gleich mal ans Werk machen ;) Ich meld mich dann wieder.
 
Also womit ich immernoch hänge ist die Sache mit der id.

Ich hab hier z.B.:

PHP:
<?
$connectionid = mysql_connect ("localhost", "", "");
if (!mysql_select_db ("", $connectionid))
{
  die ("Keine Verbindung zur Datenbank");
}
$sql = " SELECT Spielplan FROM benutzerdaten";
$sql .= " WHERE Id = ";
$sql .= "  ";
$plan = mysql_query($sql);

while($row = mysql_fetch_row($plan));
    {
echo nl2br ( $row->Spielplan );
    }
die(mysql_error());
  ?>

Wie habe ich das "123" zu interpretieren, das du verwendet hast? Es funktioniert nur, wenn ich dort die genaue ID reinschreibe. Aber die soll ja variabel sein, je nachdem wer sich eingeloggt hat. Ich benötige ja die ID aus meiner login.php, wo die ID als Variable festgelegt wurde. Wie kann ich diese Variable "rüberholen"?
 
Hmm...nun gut, da komm ich heute nicht mehr weiter. Seh schon alles doppelt ;) Werd mich der Sache morgen nochmal annehmen, denn entweder die Sache ist nicht ganz einfach oder ich bin wirklich schon sehr müde :-)
 
Ich habs jetzt zumindest mal geschafft, die ID mit Session "mitrüberzunehmen". Gebe ich oben ein

PHP:
session_start();
echo $_SESSION["user_id"];

bekomme ich tatsächlich die richtige ID angezeigt. Soweit so gut. In der Abfrage unten funktioniert das aber bisher nicht.
Wo ich gestern noch das richtige Ergebnis angezeigt bekam (als ich den Code gepsotet habe), bekomme ich mittlerweile gar nichts mehr (auch nicht, wenn ich den Code von gestern wieder nehme). Das war in PHP, bzw. MySQL-Geschichten schon immer das, woran dann mein Wille gescheitert ist. Es fukntioniert, dann will man es modifizieren, es gibt nicht mehr - stellt man den Urzustand wieder her, gehts auf einmal trotzdem nicht mehr.

Also gestern hatte ich:

PHP:
<?
$connectionid = mysql_connect ("localhost", "***", "***");
if (!mysql_select_db ("***", $connectionid))
{
  die ("Keine Verbindung zur Datenbank");
}
$sql = " SELECT Spielplan FROM benutzerdaten";
$sql .= " WHERE Id = ";
$sql .= " 5 ";
$plan = mysql_query($sql);

while($row = mysql_fetch_row($plan));
    {
echo nl2br ( $row->Spielplan );
    }
die(mysql_error());
  ?>

Das brachte mir das richtige Ergebnis für die ID 5.

Dann wollte ich das heute folgendermaßen machen:

PHP:
<?
session_start ();
$connectionid = mysql_connect ("localhost", "web57", "eisbaeren");
if (!mysql_select_db ("usr_web57_24", $connectionid))
{
  die ("Keine Verbindung zur Datenbank");
}
$sql = " SELECT Spielplan FROM benutzerdaten";
$sql .= " WHERE Id = ";
$sql .= " '".$_SESSION['user_id']."' ";
$plan = mysql_query($sql);

while($row = mysql_fetch_row($plan));
    {
echo nl2br ( $row->Spielplan );
    }
die(mysql_error());
  ?>

Hier bekomm ich ne leere Seite. Gut, dacht ich mir, mal schaun ob das $_SESSION['user_id'] überhaupt nen Inhalt hat. Mit echo bekam ich dann die 5 ausgegeben, mit der ich auch eingeloggt bin. Muss also drin sein.

Dann gings wieder zurück auf die oberen Code, der mir dann urplötzlich aber auch ne leere Seite anzeigte.
 
So, ich glaube ich fang nochmal von vorne an. Hier was ausprobiert, da was ausprobiewrt, gehn tut gar nix mehr - das wird zu unübersichtlich.

Ich kann doch in der Abfrage $_SESSION["user_id"] so benutzen, oder? Warum gibt das dann kein Ergebnis *grübl*
 
Zurück