Avatar billede julemandenb Nybegynder
18. april 2010 - 23:43 Der er 11 kommentarer og
1 løsning

Hent bruger oplysninger fra brugerens ID

Hej alle eksperter ;b

Jeg har et forum system hvor på jeg
ønsker at gemme brugerens ID nummer.
med dette ønsker jeg så at PHP skal
hentes hans brugerens oplysninger ud

F.eks
hvis nu id 37 skriver et indlæg skal der står

hej, dette er min besked

________________________________
skrevet af klausboy374 Kl 23:41


brugeren af denne besked har id 37 og php
skal selv finde id 37's brugernavn og skrive der (:

Håber i forstår mig ;b

M.v.h
Mikkel Bering
Avatar billede swiatecki Novice
19. april 2010 - 00:27 #1
Jeg antager du har

Tabel "brugere": (id,brugernavn)

Så er det bare at lave en Select-query med en where-betingelse ala. brugere.id = $bruger_idet

og udskrive dette
Avatar billede showsource Seniormester
19. april 2010 - 02:16 #2
Og en bruger er vel logget ind, og tjekkes med f.eks. sessions.
F.eks. ved korrekt login:

$_SESSION["brugerid"] = 37;

Brugerid bruges så til at hente brugernavn ved visning af indlæg.
Men noget mere info om tabelopbygning etc. er nødvendi, hvis du vil ha' kode.
Avatar billede julemandenb Nybegynder
20. april 2010 - 19:04 #3
Okay. min tabeller til brugere ser således ud.


CREATE TABLE IF NOT EXISTS `brugere` (
  `id` int(11) NOT NULL auto_increment,
  `navn` varchar(250) collate latin1_danish_ci NOT NULL,
  `user` varchar(255) collate latin1_danish_ci NOT NULL,
  `pass` varchar(255) collate latin1_danish_ci NOT NULL,
  `email` varchar(255) collate latin1_danish_ci NOT NULL,
  `bruger_id` varchar(255) collate latin1_danish_ci NOT NULL default '1',
  `status` varchar(255) collate latin1_danish_ci NOT NULL default 'Alm. Bruger',
  `profil_text` longtext collate latin1_danish_ci NOT NULL,
  `arktiv` varchar(255) collate latin1_danish_ci NOT NULL default '0',
  `ip` varchar(255) collate latin1_danish_ci NOT NULL COMMENT
  `rang` varchar(255) collate latin1_danish_ci NOT NULL default '0',


Hvis i ikke forstod mig. så vil jeg gerne have at hvis user = preben og man så skriver et debat indlæg i en debat, så skal der stå, skrevet af preben
hvis man så ændre username til eksperten så skal den self hente det nye username.

Andre koder / sqler, så sig til :D
Avatar billede swiatecki Novice
20. april 2010 - 20:30 #4
Under samme antagelse som showsource, at brugeren er logget ind og bruger_id er gemt i en session er det noget ala.

$q = mysql_querry("Select id,user from brugere where id=$_SESSION['id']");

echo "Skrevet af ". $q['user'];

Har ikke lige tjekket syntax, men det er derhen af
(tilpas selv med beskyttelse mod sql injections osv.)
Avatar billede showsource Seniormester
21. april 2010 - 07:56 #5
Når du henter fra forum, skal du også hente navn fra brugertabellen.

Når du gemmer i forumtabel, gemmer du så id på den som skriver.
Avatar billede danco Nybegynder
23. april 2010 - 23:33 #6
Kan du ikke prøve at smide den tabel op hvor den gemmer indlægget?

Desuden må du gerne smide op hvilken engine du bruger i din database, det kan godt betyde større muligheder i dit database design.
men derudover kan jeg ikke se hvorfor problemet ikke er løst, de alle andre har jo givet dig resultatet.

Medmindre du er ude efter at bruge noget JOIN, hvilket jeg ikke vil anbefale :)
Avatar billede julemandenb Nybegynder
23. april 2010 - 23:39 #7
Tak alle sammen. vil kigge på det i løbet er weekenden ;)
Avatar billede julemandenb Nybegynder
08. maj 2010 - 16:29 #8
Hej igen.

Undskyld det forsinkede svar men jeg har været en af de mange skoleelever som blev ramt at eksamen ;)

Jeg har kigget på det som #4 sendte og er kommet i et lille problem

Jeg har denne her kode
____________________________________________

<?php
$sql = "select * from guide";
$result = mysql_query($sql) or die(mysql_error());

while ($row = mysql_fetch_assoc($result))
{
?>
<table width="467" border="0" cellpadding="5" cellspacing="0" style=" width:410px; border: 1px solid #adadad;">
<tr>
<td class="lable" valign="top">
<a href="index.php?side=guide/guide_vis&id=<?=$row['id'] ?>"><?=$row['emne'] ?></a><br /><br />
<?php
echo wordwrap(nl2br($row[beskrivelse]),100, "n/");
?>
</td>
</tr>
</table>
<?php
}
?>
______________________________________________

Den henter alle nyhederne ud. men jeg vil også gerne
have så den skifter username hvis brugeren med id'et skulle
skifte...


Jeg har forsøgt således
______________________________________________

<?php
$sql = "select * from guide";
$result = mysql_query($sql) or die(mysql_error());

while ($row = mysql_fetch_assoc($result))
{
$hent = mysql_querry("Select user from brugere where id = $row['user_id']"); // HER ER REDIGERET
?>
<table width="467" border="0" cellpadding="5" cellspacing="0" style=" width:410px; border: 1px solid #adadad;">
<tr>
<td class="lable" valign="top">
<a href="index.php?side=guide/guide_vis&id=<?=$row['id'] ?>"><?=$row['emne'] ?></a><br /><br />
<?php
echo wordwrap(nl2br($row[beskrivelse]),100, "n/");
?>
<br /><br />
<?php
echo "Skrevet af ". $hent['user']; // HER ER REDIGERET
?>
</td>
</tr>
</table>
<?php
}
?>
_________________________________________________

Og jeg får denne fejl.



Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /web/web/web10/www/coolboom.dk/v2/community/guide/index.php on line 18


Nogle som gider hjælpe?

M.v.h
Mikkel Bering
Avatar billede showsource Seniormester
08. maj 2010 - 19:00 #9
$hent = mysql_querry("Select user from brugere where id = '". $row['user_id']."'");


Eller:

$sql = "select *.guide, user.brugere as forfatter from guide, brugere WHERE id.guide = id.brugere";

Så har du $row["forfatter"] som navn.

Utestet ! :O)
Avatar billede julemandenb Nybegynder
09. maj 2010 - 00:52 #10
Showsource.
Den forstod jeg ikke ret meget af :D
- Kan du prøve at udybbe lidt ?
Avatar billede showsource Seniormester
09. maj 2010 - 07:01 #11
Hvis nu vi tager din
$hent = mysql_querry("Select user from brugere where id = $row['user_id']");

og "splitter op" i en streng og selve query'en:
( havde set forkert forresten, troede det var navnet du ville bruge ? )

$hentsql = "Select user from brugere where id = $row['user_id']";
$hent = mysql_querry($hentsql) or die (mysql_error());

Her bruger du ' i $row['user_id']

$hentsql = "Select user from brugere where id = ".$row['user_id'];
$hent = mysql_querry($hentsql) or die (mysql_error());

burde virke.

Personligt er jeg til " og ikke ', og en go' ting er nok at enten bruge det ene eller det andet, så der ikke sker dumme misforståelser.

$hentsql = "Select user from brugere where id = ".$row["user_id"];

kommentaren under "eller" er et forsøg på at hente både indhold af guide, samt navn på forfatter til guide, på samme tid.
Avatar billede julemandenb Nybegynder
16. januar 2011 - 10:11 #12
Lukket
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester