Допълване на PHP код

pechkata

Registered
Имам фаил config.php
PHP:
<? 
$conn = mysql_connect("localhost","root","vertrigo"); 
mysql_select_db(login) or die(mysql_error()); 
$logged = MYSQL_QUERY("SELECT * from smslogin WHERE id='$_COOKIE[id]' AND password = '$_COOKIE[pass]'"); 
$logged = mysql_fetch_array($logged); 
?>

И login.php
PHP:
<? 
include("config.php"); 
if (!$logged[username]) 
{ 
if (!$_POST[login]) 
{ 
echo(" 
<center><form method=\"POST\"> 
<table> 
<tr> 
<td align=\"right\"> 
Nickname: <input type=\"text\" size=\"15\" maxlength=\"25\" name=\"username\"z> 
</td> 
</tr> 
<tr> 
<td align=\"right\"> 
Парола: <input type=\"password\" size=\"15\" maxlength=\"25\" name=\"password\"> 
</td></tr><tr> 
<td align=\"center\"> 
<input type=\"submit\" name=\"login\" value=\" Влез \"> 
</td></tr><tr> 
<td align=\"center\"> 
<a href=\"register.php\">Регистрирай се</a> | <a href=\"lostpass.php\">Забравена Парола</a>
</td></tr></table></form></center>"); 
} 
if ($_POST[login]) { 
// the form has been submitted. We continue... 
$username=$_POST['username'];
$password = $_POST[password]; 
// the above lines set variables with the submitted information. 
$info = mysql_query("SELECT * FROM smslogin WHERE username = '$username'") or die(mysql_error()); 
$data = mysql_fetch_array($info); 
if($data[password] != $password) { 
// the password was not the user's password! 
echo "Грешен потребител или парола! <meta http-equiv=\"Refresh\" content=\"3; URL=./\"/>"; 
}else{ 
// the password was right! 
$query = mysql_query("SELECT * FROM smslogin WHERE username = '$username'") or die(mysql_error()); 
$user = mysql_fetch_array($query); 
// gets the user's information 
setcookie("id", $user[id],time()+(60*60*24*5), "/", ""); 
setcookie("pass", $user[password],time()+(60*60*24*5), "/", ""); 
// the above lines set 2 cookies. 1 with the user's id and another with his/her password. 
echo ("<meta http-equiv=\"Refresh\" content=\"3; URL=./\"/>Вие успешно влязохте в акаунта си."); 
// modify the above line...add in your site url instead of yoursite.com 
} 
} 
} 
else 
{
// we now display the user controls. 
echo ("<center>Добре дошъл ,<br><b>$logged[username]</b><br /></center>");
echo ("
<a href=\"logout.php\">Излез &nbsp <img src=\"images/logout.gif\" alt=\"some_text\"/> </a>"); 
}
?>
?>

И SQL Таблица
[sql]CREATE TABLE `smslogin` (
`id` int(11) NOT NULL auto_increment,
`username` varchar(30) NOT NULL default '',
`password` varchar(255) NOT NULL default '',
`email` varchar(40) NOT NULL default '',
`points` varchar(40) NOT NULL default '',
`var1` varchar(40) NOT NULL default '',
`var2` varchar(40) NOT NULL default '',
`var3` varchar(40) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM; [/sql]


Да речем , че логнатия потебител има 2 'points' да бъдат по някакъв начин изведени.



И второто


Ако логнатия потребител има 5 точки да се показва примерно "честито имате 5 точки " , а ако няма "не ви достигат точки" или нещо от сорта.



Благодаря :)
 
$query = mysql_query("SELECT * FROM smslogin WHERE username = '$logged[username]'');
$array_za_potrebitelq = mysql_fetch_array($query);
echo $array_za_potrebitelq['points'];
if($array_za_potrebitelq['points'] > 2){
echo "Имате над 2 точки";
}else{
echo "Не ви достигат точки";
}
Ако има нещо неясно питай. ;)
 
xu6thuklx каза:
$query = mysql_query("SELECT * FROM smslogin WHERE username = '$logged[username]'');
$array_za_potrebitelq = mysql_fetch_array($query);
echo $array_za_potrebitelq['points'];
if($array_za_potrebitelq['points'] > 2){
echo "Имате над 2 точки";
}else{
echo "Не ви достигат точки";
}
Ако има нещо неясно питай. ;)

Благодаря за кода , но нека да допълня нещо , на мен ми трябва ако потебителя има 2 точки да показва 2 , ако има 4 да показва 4 и тнт , а не дали има над/под.Извинете , че ви занимавам :oops:
 
pechkata каза:
xu6thuklx каза:
$query = mysql_query("SELECT * FROM smslogin WHERE username = '$logged[username]'');
$array_za_potrebitelq = mysql_fetch_array($query);
echo $array_za_potrebitelq['points'];
if($array_za_potrebitelq['points'] > 2){
echo "Имате над 2 точки";
}else{
echo "Не ви достигат точки";
}
Ако има нещо неясно питай. ;)

Благодаря за кода , но нека да допълня нещо , на мен ми трябва ако потебителя има 2 точки да показва 2 , ако има 4 да показва 4 и тнт , а не дали има над/под.Извинете , че ви занимавам :oops:

PHP:
$query = mysql_query("SELECT * FROM smslogin WHERE username = '$logged[username]'");
$userArr = mysql_fetch_array($query);
if($userArr['points'] >= 5){
echo "Честито имате " . $userArr['points'] . " точки";
}else{
echo "Не ви достигат точки";
}
 
Както видя от двете мнения, за да изкараш нещо от запис от ДБ ти трябва следната конструкция

1.Заявка към датабазата кой ред да изведе

Код:
"SELECT * FROM smslogin WHERE username = '$logged[username]'"

Тук освен по username, можеш да вадиш за всяко поле.

Код:
WHERE id = '$id'
WHERE email = '$emai'

и т.н.

2.След като си извадил реда от датабазата чрез заявка, за да изкараш конкретните данни чрез масив на дадена променлива (звучи сложно, но всъщност не е) ти трябва:
Код:
$zaqvkata = "SELECT * FROM banani WHERE cvqt = 'jult'";
$promenliva = mysql_fetch_array($zaqvkata);

3.Сега вече спокойно можеш да си вадиш данни от този запис
За унагледяване, ако имаш таблица banani и в нея има 3 записа
id cvqt kolichestvo probno probno2
1 jult 10 aaa 5555
2 red 15 bbb 12131
3 blue 1 cccc 53213135

След следните действия:
Код:
$zaqvka = mysql_query("SELECT * FROM babani WHERE cvqt ='red'");
$masiv = mysql_fetch_array($zaqvka);
echo $masiv[cvqt];  Ще ти изведе red
echo $masiv[id];  Ще ти изведе 2
echo $masiv[kolichestvo];  Ще ти изведе 15
echo $masiv[probno];  Ще ти изведе bbb
echo $masiv[probno2];  Ще ти изведе 12131

Вече ти си преценяваш за какво ще използваш данните.
Например
Код:
if($masiv[tochki] > 0){
echo "Вие имате $masiv[tochki] точки";
}else{
echo "Нямате точки, но ако ви е харесал коментара ми, може да ми дадете съпорт точка :)";
}

Важно е да хванеш принципа, за да можеш да се справиш и в доста по заплетени ситуации :)
 
xu6thuklx каза:
Както видя от двете мнения, за да изкараш нещо от запис от ДБ ти трябва следната конструкция

1.Заявка към датабазата кой ред да изведе

Код:
"SELECT * FROM smslogin WHERE username = '$logged[username]'"

Тук освен по username, можеш да вадиш за всяко поле.

Код:
WHERE id = '$id'
WHERE email = '$emai'

и т.н.

2.След като си извадил реда от датабазата чрез заявка, за да изкараш конкретните данни чрез масив на дадена променлива (звучи сложно, но всъщност не е) ти трябва:
Код:
$zaqvkata = "SELECT * FROM banani WHERE cvqt = 'jult'";
$promenliva = mysql_fetch_array($zaqvkata);

3.Сега вече спокойно можеш да си вадиш данни от този запис
За унагледяване, ако имаш таблица banani и в нея има 3 записа
id cvqt kolichestvo probno probno2
1 jult 10 aaa 5555
2 red 15 bbb 12131
3 blue 1 cccc 53213135

След следните действия:
Код:
$zaqvka = mysql_query("SELECT * FROM babani WHERE cvqt ='red'");
$masiv = mysql_fetch_array($zaqvka);
echo $masiv[cvqt];  Ще ти изведе red
echo $masiv[id];  Ще ти изведе 2
echo $masiv[kolichestvo];  Ще ти изведе 15
echo $masiv[probno];  Ще ти изведе bbb
echo $masiv[probno2];  Ще ти изведе 12131

Вече ти си преценяваш за какво ще използваш данните.
Например
Код:
if($masiv[tochki] > 0){
echo "Вие имате $masiv[tochki] точки";
}else{
echo "Нямате точки, но ако ви е харесал коментара ми, може да ми дадете съпорт точка :)";
}

Важно е да хванеш принципа, за да можеш да се справиш и в доста по заплетени ситуации :)
Благодаря това много ми трябваше след малко ще се пробвам да го спретна и ще пиша :)
 
PHP:
<?php include ("./login/config.php") ?>
<?php
$query ="SELECT * FROM smslogin WHERE username = '$logged[username]'"; 
$result = mysql_query($query) or die(mysql_error());

while($row = mysql_fetch_array($result)) 

{ 
echo 'И тук зацепвам'; 
} 
?>

Стигнах до тука и немога да продължа :?
Изкам да изведа [sql]`points` varchar(40) NOT NULL default '',[/sql]
 
Няма смисъл при извеждането да вадиш резултатите с цикъл, при положение че очакваш един резултат - излишен разход на ресурс е.

PHP:
<?php
include ("./login/config.php");

/*
В края на заявката можеш да си добавиш и "LIMIT 1".
Друга хубава практика е да извличаш данни само от колоните, от които се нуждаеш, не от всички. В нашия случай това е само `points`.
*/
$query = "SELECT `points` FROM `smslogin` WHERE `username` = '{$logged['username']}' LIMIT 1"; 
$result = mysql_query($query) or die(mysql_error());

/* Можеш да използваш mysql_fetch_assoc() вместо mysql_fetch_row(). В този случай е по-подходящо */
$row = mysql_fetch_assoc($result);
/* Извеждането на `points` от SQL-а, го правиш по този начин: */
echo $row['points'];
/* $row ти е масива, който съдържа данните, които извличаме от SQL чрез заявката в $query, и обработваме чрез mysql_fetch_assoc(). */
?>
 
MakeAWish каза:
Няма смисъл при извеждането да вадиш резултатите с цикъл, при положение че очакваш един резултат - излишен разход на ресурс е.

PHP:
<?php
include ("./login/config.php");

/*
В края на заявката можеш да си добавиш и "LIMIT 1".
Друга хубава практика е да извличаш данни само от колоните, от които се нуждаеш, не от всички. В нашия случай това е само `points`.
*/
$query = "SELECT `points` FROM `smslogin` WHERE `username` = '{$logged['username']}' LIMIT 1"; 
$result = mysql_query($query) or die(mysql_error());

/* Можеш да използваш mysql_fetch_assoc() вместо mysql_fetch_row(). В този случай е по-подходящо */
$row = mysql_fetch_assoc($result);
/* Извеждането на `points` от SQL-а, го правиш по този начин: */
echo $row['points'];
/* $row ти е масива, който съдържа данните, които извличаме от SQL чрез заявката в $query, и обработваме чрез mysql_fetch_assoc(). */
?>
Изникна един проблем
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\Program Files\VertrigoServ\www\includes\profile.php on line 10

PHP:
<?php
include ("./login/config.php");
$query = "SELECT `points` FROM `smslogin` WHERE `username` = '{$logged['username']}' LIMIT 1"; 
$result = mysql_query($query) or die(mysql_error());

/* Можеш да използваш mysql_fetch_assoc() вместо mysql_fetch_row(). В този случай е по-подходящо */
$row = mysql_fetch_assoc($result);
/* Извеждането на `points` от SQL-а, го правиш по този начин: */
echo ("Вие имате  : '$row['points']' точки");
/* $row ти е масива, който съдържа данните, които извличаме от SQL чрез заявката в $query, и обработваме чрез mysql_fetch_assoc(). */
?>
 

Back
Горе