Profile

Hallo.

Und zwar habe ich einen Chat, in dem ich Profile einbauen möchte.

In der Datenbank steht ja schon der Nickname und die ID:

Jetzt möchte ich es so machen, das ichd ei Datenbank um einige Spalten erweitern will

Alter, Hobbys…

Und ich würde die so aufbauen, wie die vom Nicknamen, weils ja fast das selbe ist.
Jetzt meine Frage:

Ich bräuchte eine seite, wo man die Sachen eingeben kann, also Alter, Hobbys… und eine seite für jeden user, wo dei Daten eben ausgegeben werden.

Habe mir das ungefähr so forgestellt:

profil.php?id=10
gb.php?id=10

z.b. für den User mit der id 10

Jetzt wäre natürlich die frage, wie ich das richtig mache.
Habe ehrlich gesagt nicht sehr viel ahnung.

Könnt ihr mir da vielleicht etwas weiterhelfen?

also ich nehme an der user muss sich einloggen, wenn dann beim einloggen z.b. eine session gesetzt wird, wäre das recht gut.
beispielsweise wird dann in der session die id des users gespeichert (bestfall)

dann ist alles ein kinderspiel.
du machst eine datei.php in der es inputfelder gibt:

<input type="text" name="hobby"> der name spielt dabei eine entscheidende rolle!
also nich lala eingeben, ich komme später dazu…
insgesamt sollte das so aussehen:

[code]


[/code] mit einen klick auf den submit button wird zur seite gelinkt, die in action steht, die daten aus dem [B]formular[/B] sind nun in einem globalem array gespeichert! dies ist: [php]$_POST[''];[/php] bei [code]method="get"[/code] wäre es [php]$_GET[''];[/php] gewesen! aber get wird an die URL dran gehängt und könnte andere variablen ersetzen, also nimm lieber immer post. um aber unabhängig sein zu können kannst du [php] $_REQUEST[''];[/php] nehmen, das holt sowohl post als auch get.

nun zur die_seite_in_der_ausgewertet_wird.php :

die könnte zum beispiel so aussehen:
(// leitet in php einen kommentar ein, nicht verwirren lassen)

[php]$sql = „…“; // in dieser variable speicherst du den sogenannten query
//der dann später verschickt wird.
$sql = „INSERT INTO table
(hobby[,spalte2,spalte3])“; // hier die spalten in die die werte kommen
VALUES // hier die werte
(‚„.$_REQUEST[‚hobby‘].“‘) // hier könnte jetzt z.b, stehen (‚spielen‘) aber wir haben ja das array
WHERE id = „.$_SESSION[‚id‘].“;"; // sagt er soll es dort einfügen, wo die id die ist, die dem user zu gewiesen wurde
[/php]

INFO: [php]WHERE id = „.$_SESSION[‚id‘].“;„;[/php] betrachte das: ;“;
das erste semikolon beendet den query, das anführungszeichen mit dem semikolon die variable.

so nun wird die variable verschickt:
[php]mysql_query($sql);[/php]

in der variable $sql steht nun der query (siehe oben)
jetzt sind die werte in der datebank,
dort sollte in der spalte mit der id, des users, der das hobby … hat, sein hobby stehen.

wenn was net geht einfach fragen :wink:

hoffe es war verständlich, rechtschreibfehler bitte entschuldigen, code tags folgen

Hi, schonmal vielen Dank, das du mir geholfen hast :slight_smile:

Ich habs jetzt mal so umgesetzt:

datei.php:

[php]

<?PHP include("include/mysql.php"); include("include/session.php"); Hobby:
Alter:
Wohnort:
Motto:
?>

[/php]

auswertung.php:

[php]

<?PHP include("include/mysql.php"); include("include/session.php"); $sql = "...."; // in dieser variable speicherst du den sogenannten query //der dann später verschickt wird. $sql = "INSERT INTO table (hobby,alter,wohnort,motto)"; // hier die spalten in die die werte kommen VALUES // hier die werte ('".$_REQUEST['hobby']."') // hier könnte jetzt z.b, stehen ('spielen') aber wir haben ja das array ('".$_REQUEST['alter']."') // hier könnte jetzt z.b, stehen ('spielen') aber wir haben ja das array ('".$_REQUEST['wohnort']."') // hier könnte jetzt z.b, stehen ('spielen') aber wir haben ja das array ('".$_REQUEST['motto']."') // hier könnte jetzt z.b, stehen ('spielen') aber wir haben ja das array WHERE id = ".$_SESSION['id'].";"; // sagt er soll es dort einfügen, wo die id die ist, die dem user zu gewiesen wurde ?>

[/php]

Wäre das so richtig?
LG Dominik

Probieren, probieren, probieren.

Btw:
Nein, es ist teilweise falsch.
Ersteres sollte so lauten:[PHP]<?php
include(„include/mysql.php“);
include(„include/session.php“);

echo '
Hobby:

Alter:

Wohnort:

Motto:

';

?> [/PHP]

achja, und due spalte ´alter´ solltest du umbenennen, das macht nur probleme, da es einen befehl in sql gibt, der so heißt.
ich nenne das bei meinem clan ´old´
nur um dir das stundenlange suchen (wie bei mir) zu ersparen xD

und bei der auswertung:
[php]

VALUES
(‚wert1‘, // komma, nich die klammer abschließen
‚wert2‘,
‚wert3‘,
‚…‘);"; // 2 semikolon 1 anführungszeichen, weißt ja warum
[/php]

achja, und das mit der session id geht natür5lich nur, wenn du auch die id des users in der session speicherst…

Achja nochetwas, wenn du das wirklich so zum laufen bekommen wolltest, wie du das gepostet hast, dann solltest du dich erst einmal mit Grundlagen beschäftigen.

@=]ReDHeaD[=,

warum umbenennen?
Spalten-, Tabellen-, …-Namen sollten sowieso immer in ´´ gepackt werden.

er soll aus der spalte ´alter´ , ´old´ machen, da alter zu propblemen
führen kann.
ich hab nich gemeint er soll alter in ´alter´ machen!

kann er natürlich ^^ ich machs nie, weil das zu umständlich is

Hi, danke für dei Hilfe.

Jetzt noch eine Frage.

Im chat kann man auch öffters die selbe email angeben.
was muss ich in der datenbank ändern, das man nur einmal die email angeben darf, also nicht 2 mal die selbe???

LG Dominik

die mail als primär-attribut stellen. (primary key)

Nils aka XraYSoLo

Meinst du binary?
was anderes gibts bei mir nicht…

email VARCHAR(50) NOT NULL PRIMARY KEY

Nils aka XraYSoLo