Эхо-переменная в базе данных

Таким образом, у меня есть этот код, который в настоящее время отображает имя пользователя из моей базы данных, между прочим. Я пытаюсь изменить свой код, чтобы он также отражал имя, но я не могу на всю жизнь понять, как это сделать. Продолжаю два дня, сейчас пытаюсь это выяснить. Я новичок в PHP, и я надеюсь, что кто-то может помочь указать, что мне нужно изменить или добавить. На данный момент успешно повторяется имя пользователя. Ниже приведен код PHP для всей страницы, поэтому вы увидите код, который может не относиться к данному вопросу, но мне трудно найти, какую часть этого кода необходимо изменить. Или мне просто добавить новый запрос к БД?

<?php
include('./classes/DB.php');
include('./classes/Login.php');
include('./classes/Post.php');

$username = "";
$verified = False;
$isFollowing = False;
if (isset($_GET['username'])) {

if (DB::query('SELECT username FROM users WHERE username=:username', array(':username'=>$_GET['username']))) {

$username = DB::query('SELECT username FROM users WHERE username=:username', array(':username'=>$_GET['username']))[0]['username'];

$userid = DB::query('SELECT id FROM users WHERE username=:username', array(':username'=>$_GET['username']))[0]['id'];

$verified = DB::query('SELECT verified FROM users WHERE username=:username', array(':username'=>$_GET['username']))[0]['verified'];

$followerid = Login::isLoggedIn();

if (isset($_POST['follow'])) {


if ($userid != $followerid) {


if (!DB::query('SELECT follower_id FROM followers WHERE user_id=:userid AND follower_id=:followerid', array(':userid'=>$userid, ':followerid'=>$followerid))) {

if ($followerid == 31) {

DB::query('UPDATE users SET verified=1 WHERE id=:userid', array(':userid'=>$userid));

}

DB::query('INSERT INTO followers VALUES (\'\', :userid, :followerid)', array(':userid'=>$userid, ':followerid'=>$followerid));

} else {

echo 'Already following!';

}

$isFollowing = True;

}

}

if (isset($_POST['unfollow'])) {


if ($userid != $followerid) {


if (DB::query('SELECT follower_id FROM followers WHERE user_id=:userid AND follower_id=:followerid', array(':userid'=>$userid, ':followerid'=>$followerid))) {

if ($followerid == 31) {

DB::query('UPDATE users SET verified=0 WHERE id=:userid', array(':userid'=>$userid));

}

DB::query('DELETE FROM followers WHERE user_id=:userid AND follower_id=:followerid', array(':userid'=>$userid, ':followerid'=>$followerid));

}

$isFollowing = False;

}

}

if (DB::query('SELECT follower_id FROM followers WHERE user_id=:userid AND follower_id=:followerid', array(':userid'=>$userid, ':followerid'=>$followerid))) {

//echo 'Already following!';

$isFollowing = True;

}


if (isset($_POST['deletepost'])) {

if (DB::query('SELECT id FROM posts WHERE id=:postid AND user_id=:userid', array(':postid'=>$_GET['postid'], ':userid'=>$followerid))) {

DB::query('DELETE FROM posts WHERE id=:postid and user_id=:userid', array(':postid'=>$_GET['postid'], ':userid'=>$followerid));

DB::query('DELETE FROM post_likes WHERE post_id=:postid', array(':postid'=>$_GET['postid']));

//echo 'Post deleted!';

}

}



if (isset($_POST['post'])) {

if ($_FILES['postimg']['size'] == 0) {

Post::createPost($_POST['postbody'], Login::isLoggedIn(), $userid);

} else {

$postid = Post::createImgPost($_POST['postbody'], Login::isLoggedIn(), $userid);

Image::uploadImage('postimg', "UPDATE posts SET postimg=:postimg WHERE id=:postid", array(':postid'=>$postid));

}

}


if (isset($_GET['postid']) && !isset($_POST['deletepost'])) {
Post::likePost($_GET['postid'], $followerid);

}


$posts = Post::displayPosts($userid, $username, $followerid);

} else {

die('User not found!');

}
}
?>

-1

Решение

Ваше заявление

DB::query('SELECT _ FROM users WHERE username=:username', array(':username'=>$_GET['username']))[0]['username'];

возвращает значение в массиве с ключом username, Также известен как ассоциативный массив. Он построен так:

array('username' => 'TjOlmsy');

например. Но этот массив хранится в другом массиве выбранных пользователей, поэтому у вас есть [0] сразу после

 DB::query('SELECT _ FROM users WHERE username=:username', array(':username'=>$_GET['username']))

Это потому, что вы выбираете первый элемент массива (первый пользователь в списке пользователей)

И при получении username этого пользовательского массива, вы просто используете ['username'], а также положить [0] впереди, потому что мы все еще нацеливаемся на первый массив в массиве (многомерный массив)

Так что вместо того, чтобы хватать username, мы хотим захватить то, что вы сохранили имя, как, предполагая, firstname или же first_name, Итак, взгляните на свою базу данных, посмотрите, как вы назвали строку, и получите ее, выполнив:

DB::query('SELECT _ FROM users WHERE username=:username', array(':username'=>$_GET['username']))[0]['ROW NAME HERE'];
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector