• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Profile

Status
Für weitere Antworten geschlossen.

dominik

Neues Mitglied
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?
 
Werbung:
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:
Code:
<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:
<form action="die_seite_in_der_ausgewertet_wird.php" method="[B]post[/B]">
<input type="text" name="hobby">
...
<input type="submit">
</form>
mit einen klick auf den submit button wird zur seite gelinkt, die in action steht, die daten aus dem formular sind nun in einem globalem array gespeichert!
dies ist:
PHP:
$_POST[''];
bei
Code:
method="get"
wäre es
PHP:
$_GET[''];
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[''];
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



INFO:
PHP:
WHERE id = ".$_SESSION['id'].";";
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);

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 :)

Ich habs jetzt mal so umgesetzt:

datei.php:

PHP:
<?PHP
include("include/mysql.php");
include("include/session.php");

<form action="die_seite_in_der_ausgewertet_wird.php" method="post">
Hobby: <input type="text" name="hobby"><br>
Alter: <input type="text" name="alter"><br>
Wohnort: <input type="text" name="wohnort"><br>
Motto: <input type="text" name="motto"><br>
<input type="submit">
</form>

?>

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 

?>

Wäre das so richtig?
LG Dominik
 
Werbung:
Probieren, probieren, probieren.

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

echo '<form action="die_seite_in_der_ausgewertet_wird.php" method="post">
Hobby: <input type="text" name="hobby"><br>
Alter: <input type="text" name="alter"><br>
Wohnort: <input type="text" name="wohnort"><br>
Motto: <input type="text" name="motto"><br>
<input type="submit">
</form>';

?>
 
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

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.
 
Werbung:
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
 
Werbung:
Status
Für weitere Antworten geschlossen.
Zurück
Oben