Forum > Övriga serverspråk > PHP
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
Du har ju det i en array, du visar ju redan det i ditt exempel i din andra fil:
$sid['username']
<?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.
<?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
Du har inte ditt ID som ett tal:
$result = mysql_query("SELECT * FROM Members WHERE id = '" . $_GET['id'] . "'") or die(mysql_error());Du har inte ditt ID som ett tal:
$result = mysql_query("SELECT * FROM Members WHERE id = '" . $_GET['id'] . "'") or die(mysql_error());
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
i din
$result=mysql_query($sql);
$_SESSION['id'] = $result['id'];
Eller så kör du om du vill vara beroende över queystring:
header("location:login_success.php?id=");header("location:login_success.php?id=" . $result['id']);Tror nog jag inte har förstått det hela. Får läsa på allt om session. :(
tack för alla svar.
Du har inte ditt ID som ett tal:
$result = mysql_query("SELECT * FROM Members WHERE id = '" . $_GET['id'] . "'") or die(mysql_error());
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