Bild einer Url ändern / Mysql Tabelle verknüpfen

  • Themenstarter Themenstarter blong1550
  • Beginndatum Beginndatum
B

blong1550

Hallo,

ich habe 2 Probleme:

1)
Ich habe 3 Bilder die abhängig von den Punkten eines Users durchgewechselt werden sollen.
Der User erhält aber einen festen Link der sich nicht verändert. Das Bild soll sich aber trotzdem verändern.

also Link für den User z.b. http://www.blub.de/bla.jpg und das Bild soll sich je nach Punkte die er hat verändern.

Ich nehme an die richtige Url müsste dann irgendwie http://www.blub.de/bild.php?id=userid heißen.
Und auf der Php Seite wird dann wohl die Id ausgelesen. Aber wie binde ich das passende Bild ein?


2) Ich habe hier 2 mysql Tabellen
Eine User und die andere Buchungen, beide typ MyISAM falls das was bedeutet.

Nun kann jeder User mehrere Buchungseinträge haben.

Also hat die Tabelle Buchungen ein Feld Userid.
Nun konnte ich aber nicht rausfinden wie ich diese beiden Felder verknüpfe. Also Fremdschlüssel etc.

Wie geht das?



Grüße
 
Das sind mehrere Sachen mit einmal. Dein Problem mit dem Fremdschlüsseln kannst du (musst du?) über JOINs lösen. Für das Laden des speziellen Bildes über die ID eines Nutzers kannst du über die Imagefunktionen von PHP lösen. Für die JOINs bräuchte ich nähere Informationen über die Spalten deiner Tabelle.
 
Zuletzt bearbeitet:
1.Also ich hab jetzt folgendes probiert um ein Bild anzuzeigen

PHP:
<?php 
$image	=	"images/1.jpg";
imagejpeg($image); ?>

Allerdings ohne erfolg. Ist das so nicht richtig?



2. Tabelle "user" hat folgende Felder

ID | Vorname | Nachname | Benutezername | Email | Punkte


Tabelle "buchungen" hat folgende Felder
ID | Datum | Art | user_id



Später sollen dann alle Buchungen von einem Benutzernamen angezeigt werden können
 
Sieht schon gut aus, nur brauch die Funktion imagejpeg() als erstes Argument keine Pfadangabe sondern eine Resource-ID, welche du mit imagecreatefromjpeg() erzeugst. Außerdem musst du auch noch den Ausgabetyp als JPEG definieren. Das geht mit der Funktion header().

Das Ganze sieht dann in etwa so aus:
PHP:
<?php
header('Content-Type: image/jpeg');

$file = 'images/1.jpg';
$im   = imagecreatefromjpeg($file);
imagejpeg($im);
?>

Die MySQL-Abfrage müsste etwa so aussehen:
Code:
SELECT
  *
FROM
  `user`
LEFT JOIN
  `buchungen`
ON
  `buchungen`.`user_id` = `user`.`id`
 
1) Achso das wusste ich nicht. Werd ich gleich ausprobieren

2) Ach das geht doch so einfach ;) Ich dachte man muss in der Sql Datenbank was festlegen mit Fremschlüsseln. Kannte nur SQL aus der Schule mit Access und da verknüpft man die Felder ja auch erstmal.
Wenn das einfach über SQL Abfragen geht is das natürlich schön!
Werde ich auch gleich mal testen!


Vielen Dank für die schnelle Hilfe!


P.s. achso und wenn die Bilder in gif wären? Hab gerade gelesen das wohl imagegif nicht mehr unterstützt wird.
 
Du musst aber die Spalte user_id in der Tabelle buchungen als Index definieren.

Zu der Sache mit dem GIF-Format kann ich dir nichts sagen, weil ich mich damit nicht so detailliert auskenne.
 
Hab jetzt gerade das mit dem Bild getestet und es geht wohl nicht?
Kommt eine leere Seite auf der nur die Adresse aus der Adresszeile vom Browser steht.

Woran könnte es liegen?

Und noch die Frage zur Datenbank.
Wie Füge ich nun einen Eintrag hinzu sodass automatisch die richtige ID des nutzers gewählt wird?
Geht das auch mit Join oder liest man die vorher in der Datenbank aus?
 
Naja ich kann es über den Primärschlüssel von user laufen lassen also die ID oder über den Benutzernamen. Beides eindeutige Angaben.

Nur versteh ich grad nich was ich in der Tabelle Buchhaltung bei dem Feld user_id eintragen soll. Muss ja irgendwie verknüpft sein. Oder wird das erst bei einer Abfrage verknüpft?

Wenn das so wäre könnte ich ja einfach in buchaltung.user_id die user.ID eintragen.
Und dann bei einer Frage so wie in deinem Beispiel vorgehen.
 
Du musst in die Spalte `buchhaltung`.`user_id` die jeweilige ID aus `user`.`id` eintragen. Wenn du dann die Anfrage aus meinem Beispiel verwendest, werden dir die Spalten von `buchhaltung` angezeigt plus die jeweiligen Benutzerdaten zu der Nutzer-ID.
 
Zurück