Panelen



Forumnavigering
Senast inloggade
RSS
Sponsorer

Forum > Övriga serverspråk > PHP

Medlemmarnas profil.

Saamir
Saamir

Gradering

#13251

Hejsan alla där ute.

 

Jag har ett stort problem eller kanske inte för er.

Jag försöker göra en egen profil till en hemsida där medlemmarna ska kunna ha "snabbfakta" om sig själv.

Bygger den med PHP +Mysql. 

 

Om man har några kategorier så som: Gillar, Ogillar, Lyssnar, Hemsida osv.

 

I mysql ser tabellen ut såhär:

Tabell: Members.

id  namn  email  password  gillar  ogillar  lyssnar  hemsida

 

Nu undrar jag hur frågan ser ut i PHP för att anropa mysql . tror det har med JOIN att göra men har försökt och försökt men inte fått det att fungera.

När en användare loggar in ska id jämföras med namnet som loggades in med och det stämmer printa ut id+namn raden dvs då printar den ut allt som jag vill hos den användaren. "gillar ogillar lyssnar hemsida". och inte dem andras rader.

 

Hur gör jag. Det kanske är mer än bara anropet som ska ändras. När medlemmar loggar in så hämtar den information namn+password från mysql. sen använder jag sessions för sidan.

 

Men det jag vill ha hjälp med är just det med printa ut just det id+namn rad som finns mysql db.

 

Hoppas ni förstår.

Tack

 

ID: #13251 | Skapades: 2008-11-10 14:07:17 | Tråden har 8 svar och har lästs 301 gånger.

voigtan
voigtan

Gradering

#13258

Du har ju det i en array, du visar ju redan det i ditt exempel i din andra fil:

$sid['username']
sID som variabel är en mycket förvirrande namn. Den innehåller ju så mycket mer än ett "sid" (som står för sid id min gissning?).

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #13258 | Skapades: 2008-11-10 14:54:56

<?php
$result = mysql_query("SELECT * FROM Members WHERE id = " . $_GET['id']) or die(mysql_error());

if (mysql_num_rows($result) == 0)
{
    echo 'Medlemmen hittades inte..';
}
else
{
    $line = mysql_fetch_assoc($result);

    echo 'Medlem: ' . $line['namn'];
}

resten får du lägga in själv, så som du vill ha det.

// www.Gimbergsson.com
ID: #13284 | Skapades: 2008-11-10 18:22:19

Saamir
Saamir

Gradering

#13298

Citerar Gimbergsson:

<?php
$result = mysql_query("SELECT * FROM Members WHERE id = " . $_GET['id']) or die(mysql_error());

if (mysql_num_rows($result) == 0)
{
    echo 'Medlemmen hittades inte..';
}
else
{
    $line = mysql_fetch_assoc($result);

    echo 'Medlem: ' . $line['namn'];
}

resten får du lägga in själv, så som du vill ha det.

 

Tja.

Försökte med ditt exempel men fick detta fel:

Du är inloggad!


You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

ID: #13298 | Skapades: 2008-11-11 12:59:30

voigtan
voigtan

Gradering

#13301

Du har inte ditt ID som ett tal:

$result = mysql_query("SELECT * FROM Members WHERE id = '" . $_GET['id'] . "'") or die(mysql_error());
(om jag följer ditt exempel på tråden innan)

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #13301 | Skapades: 2008-11-11 13:10:38

Saamir
Saamir

Gradering

#13302

Citerar voigtan:

Du har inte ditt ID som ett tal:

$result = mysql_query("SELECT * FROM Members WHERE id = '" . $_GET['id'] . "'") or die(mysql_error());
(om jag följer ditt exempel på tråden innan)

 

Det gick lite bättre faktist. men tyvärr:

Du är inloggad!


Medlemmen hittades inte..


Logga ut :(( blää

 

Nu är frågan om vad GET ger mig. Ni ska få se hur mitt checklogin ser ut

<?php
ob_start();
$host="localhost"; // Host name
$username="root"; // Mysql username
$password=""; // Mysql password
$db_name="login"; // Database name
$tbl_name="members"; // Table name

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

// Define $myusername and $mypassword
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];

// To protect MySQL injection (more detail about MySQL injection)
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);

$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);

// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row

if($count==1){
// Register $myusername, $mypassword and redirect to file "login_success.php"
session_register("myusername");
session_register("mypassword");

header("location:login_success.php?id=");
}
else {
header("location:index.php");
}

ob_end_flush();
?>

 

$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];

 

Detta kommer från form där man loggar in.

 

Kanske ni förstår mig lite bättre.

Tack åter igen för all besvärrrr

ID: #13302 | Skapades: 2008-11-11 13:16:15

voigtan
voigtan

Gradering

#13304

i din

$result=mysql_query($sql);
så har du ju alla fält ifrån tabellen, ta ut ['id'] och lagra denna i en session något i stil med:

$_SESSION['id'] = $result['id'];
kan jag tänka mig.

 

Eller så kör du om du vill vara beroende över queystring:

header("location:login_success.php?id=");
byt den till:

header("location:login_success.php?id=" . $result['id']);
eller liknande.

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #13304 | Skapades: 2008-11-11 14:14:09

Saamir
Saamir

Gradering

#13314

Tror nog jag inte har förstått det hela. Får läsa på allt om session. :(

 

tack för alla svar.

ID: #13314 | Skapades: 2008-11-11 16:05:22

Timi
Timi

Gradering

#13363

Citerar Saamir:

Citerar voigtan:

Du har inte ditt ID som ett tal:

$result = mysql_query("SELECT * FROM Members WHERE id = '" . $_GET['id'] . "'") or die(mysql_error());
(om jag följer ditt exempel på tråden innan)

 

Det gick lite bättre faktist. men tyvärr:

Du är inloggad!


Medlemmen hittades inte..


Logga ut :(( blää

 

Nu är frågan om vad GET ger mig. Ni ska få se hur mitt checklogin ser ut

<?php
ob_start();
$host="localhost"; // Host name
$username="root"; // Mysql username
$password=""; // Mysql password
$db_name="login"; // Database name
$tbl_name="members"; // Table name

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

// Define $myusername and $mypassword
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];

// To protect MySQL injection (more detail about MySQL injection)
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);

$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);

// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row

if($count==1){
// Register $myusername, $mypassword and redirect to file "login_success.php"
session_register("myusername");
session_register("mypassword");

header("location:login_success.php?id=");
}
else {
header("location:index.php");
}

ob_end_flush();
?>

 

$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];

 

Detta kommer från form där man loggar in.

 

Kanske ni förstår mig lite bättre.

Tack åter igen för all besvärrrr


Har du ens gjort rätt, du vet att localhost osv ska bytas ut?

kan säga lite...

Localhost: Mysql host

Root: Mysql användarnamn

Pw: Mysql lösen

Login: Database namn

 

Ändra Members till den titel du använt i phpmyadmin

Hej
ID: #13363 | Skapades: 2008-11-13 09:30:21
© Copyright 2007-2009 Shadi Domat | Version 3.0 | Sidkarta | Policy