2013-06-06 3 views
1

Я создал страницу, на которой отображаются все пользователи на сайте.Список пользователей, кнопка не работает должным образом

user_id и имя пользователя отображается для каждого пользователя. Я попробовал добавить , следуя за кнопкой на стороне каждого пользователя, и для того, чтобы следовать кто-то это захватывает их user_id.

К сожалению, я не могу заставить его работать, потому что user_id, который в настоящее время схватился всегда последний из базы данных, из-за петли.

Так что, если вы нажмете следовать кнопки для кого в списке, он всегда будет следовать последнего людей.

Как это исправить?

Я пытался различные методы для более чем 20 часов, но все они, кажется, имеют те же проблемы ...

Вот код:

<?php 
class Database() 
{ 
    // connect 
    // query 

    public function fetchAll() { 
     $this->rows = $this->result->fetch_all(MYSQLI_ASSOC); 
     return $this->rows; 
    } 

    public function display() { 
     $this->query("SELECT * FROM `users`"); 
     $this->fetchAll(); 
    } 
} 

$class = new Database(); 

$users = $class->display(); 

foreach ($users as $user) { 
    $user_id = $user['user_id']; 
    $username = $user['username']; 

    echo $user_id . ' ' . $username; 
    echo '<form action="" method="post">'; 
    echo '<input type="submit" name="follow" value="Follow">'; 
    echo '</form>'; 
} 

if ($_POST['follow']) { 
    $FClass->follow($user_id); 
} 

ответ

0

Да, это имеет смысл.

foreach ($users as $user) { 
    $user_id = $user['user_id']; // At the end of the loop this is the last user 
    $username = $user['username']; 

    echo $user_id . ' ' . $username; 
    echo '<form action="" method="post">'; 
    echo '<input type="submit" name="follow" value="Follow">'; 
    echo '</form>'; 
} 

if ($_POST['follow']) { 
    // Regardless of what you input you're getting the last user here 
    $FClass->follow($user_id); 
} 

Попробуйте что-то вроде этого

foreach ($users as $user) { 
    $user_id = $user['user_id']; // At the end of the loop this is the last user 
    $username = $user['username']; 

    echo $user_id . ' ' . $username; 
    echo '<form action="" method="post">'; 
    echo '<input type="hidden" name="userid" value="' . $user_id . '">'; 
    echo '<input type="submit" name="follow" value="' . $user_id . '">'; 
    echo '</form>'; 
} 

if ($_POST['follow']) { 
    // Regardless of what you input you're getting the last user here 
    error_log($_POST['follow']); // View your logs to verify 
    $FClass->follow($_POST['follow']); 
    // or 
    $FClass->follow($_POST['userid']); 
} 
+0

В этой форме вы никогда на самом деле, представляющем имя пользователя. Вы даже можете использовать скрытые поля. Я отредактирую, чтобы задуматься. – asafreedman

+0

Спасибо, человек! Он работает сейчас! Я не совсем понимаю, как это работает, но это так. –

+0

Нет проблем. Вы никогда не отправляли какую-либо информацию с вашей формой при подаче, так что вы никогда не получили что-либо обратно на свой php для ссылки. – asafreedman

 Смежные вопросы

  • Нет связанных вопросов^_^