Avatar billede dennis_p Nybegynder
09. januar 2006 - 16:07 Der er 16 kommentarer og
1 løsning

Jeg har lavet en Mysql db. 1 tabel, med 4 strenge

Jeg har lavet en tabel med brugere. Der er 4 strenge: Id, usename, password, Rank.

Mit problem er at den henter Rank, men det henter kun Rank ud fra den første person der er oprettet (ID 1). Hvordan får jeg den til at kunne kende forskel på dem der logger ind ? Altså at id 2, der henter den og den Rank der står der...

Det må være et eller andet med id, jeg skal have sat ind et eller andet sted:

Her er login koden:

<?php require_once('../Connections/PDA.php'); ?><?php
mysql_select_db($database_PDA, $PDA);
$query_RsRank = "SELECT * FROM brugere";
$RsRank = mysql_query($query_RsRank, $PDA) or die(mysql_error());
$row_RsRank = mysql_fetch_assoc($RsRank);
$totalRows_RsRank = mysql_num_rows($RsRank);
?>

Her er det felt hvor den henter Rank'en ind og visser den:

<?php echo $row_RsRank['Rank']; ?>
Avatar billede dennis_p Nybegynder
09. januar 2006 - 16:09 #1
ups der skulle have stået: Mit problem er at den IKKE henter Rank korrekt, men henter kun Rank ud fra den første person der er oprettet......OSV
Avatar billede arne_v Ekspert
09. januar 2006 - 16:17 #2
skal du ikke have en WHERE på som udvælger den række som du er interesseret i ?
Avatar billede danielic Nybegynder
09. januar 2006 - 17:24 #3
hmm.

fra mit øje ser det ud som du vil have fat i den bruger som er loggt pås rank...

Her er et lille Eks, ved ik om det virker men man har da lov at prøve:
log_on.php
<? session_start(); ?>

<form method="post" action="user_info.php">
username: <input type="text" name="username"><BR>
Password: <input type="password" name="password"><BR>
<input type="submit" name="submit" value="Log on">
</form>


log_on.php slut

user_info.php
<? session_start(); ?>
<html>
<body>
<?
if($_POST["username"]){
    $_SESSION["username"] = $_POST["username"];}
if($_POST["password"]){
    $_SESSION["password"] = $_POST["password"];}
?>
<?
$db = mysql_connect("localhost","danielic_dk","password");
mysql_select_db("danielic_dk", $db");

$foresp = mysql_query("SELECT * FROM navn_på_din_tabel WHERE username = '$_SESSION["username"]' password = '$_SESSION["password"]'");

while($data = mysql_fetch_array($foresp)){
echo "Bruger nr:";
echo $data["id"];
echo "<BR>Username:";
echo $data["username"];
echo "<BR>Password:";
echo $data["password"];
echo "<BR>Rank:";
echo $data["rank"];
}
?>
Slut på user_info.php
Husk alle de steder du skal have vist brugerens Rank skal du bruge den mysql kode jeg skrev. Du skal også huske at starte session_start(); i toppen på filen...

Vis du ikke kender til session skulle du måske lige læse lidt om det på nette fordi det kan godt være lidt svært ellers :P...

Håber du kan bruge det...

MvH Daneil
Avatar billede danielic Nybegynder
09. januar 2006 - 17:24 #4
ps jeg hedder Daniel :-)
og vis du kan bruge mit svar så acepter den her, kom til at skrive kommentar ;-)
Avatar billede dennis_p Nybegynder
09. januar 2006 - 17:47 #5
Jeg kan ikke rigtig se mig ud af den kode..

Jeg bruger dreamweaver, så jeg henter sådan set direkte fra databasen "træk & slip" princippet. Jeg laver en recordset og henter dataerne ud på den måde.

Jeg har alle 4 punkter derinde, men der skal være en form for sorterings "kode" der kan finde ud af om det er ID 1 eller 2 der logger ind og tager så Rank strengen og visser den..


Men daniel du har fat i den rigtig tanke omkring hvordan det skal laves...

Men jeg kan ikke finde rundt i den. Login delen er lavet, men er der ikke bare en simpel kode der skal sættes ind så den kan finde ud af det ?
Avatar billede dennis_p Nybegynder
09. januar 2006 - 17:58 #6
Her er min LOG IN kode:

?php require_once('Connections/PDA.php'); ?>
<?php
// *** Validate request to login to this site.
session_start();

$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($accesscheck)) {
  $GLOBALS['PrevUrl'] = $accesscheck;
  session_register('PrevUrl');
}

if (isset($_POST['username'])) {
  $loginUsername=$_POST['username'];
  $password=$_POST['password'];
  $MM_fldUserAuthorization = "Rank";
  $MM_redirectLoginSuccess = "Fx45Zjklwer/index.php";
  $MM_redirectLoginFailed = "index.php";
  $MM_redirecttoReferrer = false;
  mysql_select_db($database_PDA, $PDA);
     
  $LoginRS__query=sprintf("SELECT username, password, Rank FROM brugere WHERE username='%s' AND password='%s'",
  get_magic_quotes_gpc() ? $loginUsername : addslashes($loginUsername), get_magic_quotes_gpc() ? $password : addslashes($password));
 
  $LoginRS = mysql_query($LoginRS__query, $PDA) or die(mysql_error());
  $loginFoundUser = mysql_num_rows($LoginRS);
  if ($loginFoundUser) {
   
    $loginStrGroup  = mysql_result($LoginRS,0,'Rank');
   
    //declare two session variables and assign them
    $GLOBALS['MM_Username'] = $loginUsername;
    $GLOBALS['MM_UserGroup'] = $loginStrGroup;         

    //register the session variables
    session_register("MM_Username");
    session_register("MM_UserGroup");

    if (isset($_SESSION['PrevUrl']) && false) {
      $MM_redirectLoginSuccess = $_SESSION['PrevUrl'];   
    }
    header("Location: " . $MM_redirectLoginSuccess );
  }
  else {
    header("Location: ". $MM_redirectLoginFailed );
  }
}
?>
Avatar billede dennis_p Nybegynder
09. januar 2006 - 18:22 #7
ups forkert kode, sådan skal den se ud:

<?php require_once('Connections/PDA.php'); ?>
<?php
// *** Validate request to login to this site.
session_start();

$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($accesscheck)) {
  $GLOBALS['PrevUrl'] = $accesscheck;
  session_register('PrevUrl');
}

if (isset($_POST['username'])) {
  $loginUsername=$_POST['username'];
  $password=$_POST['password'];
  $MM_fldUserAuthorization = "";
  $MM_redirectLoginSuccess = "Fx45Zjklwer/index.php";
  $MM_redirectLoginFailed = "index.php";
  $MM_redirecttoReferrer = false;
  mysql_select_db($database_PDA, $PDA);
 
  $LoginRS__query=sprintf("SELECT username, password FROM brugere WHERE username='%s' AND password='%s'",
    get_magic_quotes_gpc() ? $loginUsername : addslashes($loginUsername), get_magic_quotes_gpc() ? $password : addslashes($password));
 
  $LoginRS = mysql_query($LoginRS__query, $PDA) or die(mysql_error());
  $loginFoundUser = mysql_num_rows($LoginRS);
  if ($loginFoundUser) {
    $loginStrGroup = "";
   
    //declare two session variables and assign them
    $GLOBALS['MM_Username'] = $loginUsername;
    $GLOBALS['MM_UserGroup'] = $loginStrGroup;         

    //register the session variables
    session_register("MM_Username");
    session_register("MM_UserGroup");

    if (isset($_SESSION['PrevUrl']) && false) {
      $MM_redirectLoginSuccess = $_SESSION['PrevUrl'];   
    }
    header("Location: " . $MM_redirectLoginSuccess );
  }
  else {
    header("Location: ". $MM_redirectLoginFailed );
  }
}
?>
Avatar billede wetdog Nybegynder
10. januar 2006 - 20:23 #8
når du i din sql sætning skriver "SELECT * FROM BRUGERE" vil den hente alle records fra tabellen BRUGERE. Du skal på et eller andet niveau indikere hvilken record du vil have ud af tabellen.
Avatar billede wetdog Nybegynder
10. januar 2006 - 20:25 #9
og når du udskriver resultatsættet med <?php echo $row_RsRank['Rank']; ?> uden at sætte denne i en eller anden form for løkke, vil der blive udskrevet den første record i dette resultatsæt.

håber dette kan hjælpe dig lidt på vej, ellers sig endelig til....
Avatar billede dennis_p Nybegynder
12. januar 2006 - 09:21 #10
Hvordan indikere jeg hvilken record jeg vil have ud af tabellen ?

Jeg vil mene det var noget med ID, der indikere hvilken konto det er, der logger på, men hvordan det skal laves ved jeg ikke...

Håber du kan hjælpe !

Altså som det er nu så henter den hele tiden record 1 ud af tabellen...
Avatar billede wetdog Nybegynder
12. januar 2006 - 22:00 #11
<?php require_once('Connections/PDA.php'); ?>
<?php
// *** Validate request to login to this site.
session_start();

$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($accesscheck)) {
  $GLOBALS['PrevUrl'] = $accesscheck;
  session_register('PrevUrl');
}

if (isset($_POST['username'])) {
  $loginUsername=$_POST['username'];
  $password=$_POST['password'];
  $MM_fldUserAuthorization = "";
  $MM_redirectLoginSuccess = "Fx45Zjklwer/index.php";
  $MM_redirectLoginFailed = "index.php";
  $MM_redirecttoReferrer = false;
  mysql_select_db($database_PDA, $PDA);

  $LoginRS__query=sprintf("SELECT * FROM brugere WHERE username='%s' AND password='%s'",
    get_magic_quotes_gpc() ? $loginUsername : addslashes($loginUsername), get_magic_quotes_gpc() ? $password : addslashes($password));

  $LoginRS = mysql_query($LoginRS__query, $PDA) or die(mysql_error());
  $loginFoundUser = mysql_num_rows($LoginRS);
  if ($loginFoundUser) {
    $loginStrGroup = "";
 
   
    //find user rank
    while($row = mysql_fetch_array($LoginRS)) {
      $rank = $row['Rank'];
    }

    //declare 3 session variables and assign them
    $GLOBALS['MM_Username'] = $loginUsername;
    $GLOBALS['MM_UserGroup'] = $loginStrGroup;
    $GLOBALS['MM_Rank'] = $rank;       

    //register the session variables
    session_register("MM_Username");
    session_register("MM_UserGroup");
    session_register("MM_Rank");

    if (isset($_SESSION['PrevUrl']) && false) {
      $MM_redirectLoginSuccess = $_SESSION['PrevUrl']; 
    }
    header("Location: " . $MM_redirectLoginSuccess );
  }
  else {
    header("Location: ". $MM_redirectLoginFailed );
  }
}
?>

nu har du rank i variablen $MM_Rank på samme måde som du har Username i variablen $MM_Username og UserGroup i $MM_UserGroup
Avatar billede dennis_p Nybegynder
13. januar 2006 - 08:42 #12
Probelemmet er at, den kode jeg viste dig var fra index siden, her er koden fra den side hvor den skal være:

<?php require_once('../Connections/PDA.php'); ?>
<?php
mysql_select_db($database_PDA, $PDA);
$query_rsRANK = "SELECT * FROM brugere";
$rsRANK = mysql_query($query_rsRANK, $PDA) or die(mysql_error());
$row_rsRANK = mysql_fetch_assoc($rsRANK);
$totalRows_rsRANK = mysql_num_rows($rsRANK);
?>

længere nede står det her, hvor jeg vil have den til at visse det:

<td class="style11"><?php echo $row_rsRANK['Rank']; ?></td>
Avatar billede wetdog Nybegynder
14. januar 2006 - 15:29 #13
brug denne sql sætning istedet:

SELECT * FROM brugere WHERE username='%s' AND password='%s'",
    get_magic_quotes_gpc() ? $loginUsername : addslashes($loginUsername), get_magic_quotes_gpc() ? $password : addslashes($password)
Avatar billede dennis_p Nybegynder
17. januar 2006 - 13:55 #14
Det virker ikke helt efter hensigten :(

Den kommer op med en fejl, når jeg får vist siden...

Hmm jeg er meget nybegynder indefor ren php kode, derfor er jeg glad for dreamweaver klar det meste. Men hvis du kan visse hvordan det skal se ud færdigt, så vil jeg ikke be' om mere..
Avatar billede wetdog Nybegynder
17. januar 2006 - 22:34 #15
hvad er fejlen
Avatar billede dennis_p Nybegynder
19. januar 2006 - 13:07 #16
<?php require_once('../Connections/PDA.php'); ?>
<?php
mysql_select_db($database_PDA, $PDA);
SELECT * FROM brugere WHERE username='%s' AND password='%s'",
get_magic_quotes_gpc() ? $loginUsername : addslashes($loginUsername), get_magic_quotes_gpc() ? $password : addslashes($password)
?>

FEjl: Parse error: syntax error, unexpected T_STRING in C:\WEB\Fx45Zjklwer\index.php on line 4
Avatar billede dennis_p Nybegynder
31. januar 2006 - 13:17 #17
Lukker blev ikke rigitg klogere
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
Computerworld tilbyder specialiserede kurser i database-management

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