2013-05-02 4 views
-1

Я знаю, что этот вопрос может быть легким, но поскольку я новичок в PHP и MySQL, я не знаю, как это решить. Я хочу получить данные из таблицы, но только для этого одного пользователя. Это система, чтобы проверить, исправлено ли их оборудование, и я только хочу, чтобы клиент увидел свое оборудование, а не другие. Поэтому я думаю, что это делается путем сравнения идентификатора в каждой таблице, и если оно равно, это показывает. У вас есть ключ, как я могу это сделать? это код, который я до сих пор:Выбор данных из базы данных по ID

<?php 
// A sessão precisa ser iniciada em cada página diferente 
if (!isset($_SESSION)) session_start(); 
?> 
<head> 
    <link href="css/style.css" rel="stylesheet" type="text/css" /> 
    <link href="favicon.ico" rel="shortcut icon"> 
<title>Verificar estado</title></head> 
<body> 
<?php 
    //Tentativa de estabelecer uma ligação à BD 
    $connection = new mysqli('****', '****', '******', '****'); 

    //Verificar se a ligação foi estabelecida com sucesso 
    if (mysqli_connect_errno()) { 
     echo "</h2>Erro no acesso à base de dados.</h2>" . mysqli_connect_error(); 
     exit(); 
     } 
    $user = $_SESSION['id']; 
    $sql = "SELECT id_user, id_ficha, avaria FROM fichas"; 

    //Executar a Query! 
    $result = $connection->query($sql); 
    echo "<div id='listanomes'>User ID - ID Ficha - Avaria</div>"; 
    ?> 
    <div id="lista"> 
    <div class="consultar"> 
    <?php 
    while ($userproduto = $result-> fetch_object()) { 
     echo '<table border="1">'; 
     echo "<tr>"; 
      echo "<td>" . $userproduto->id_user . "</td>"; 
      echo "<td>" . $userproduto->id_ficha . "</td>"; 
      echo "<td>" . $userproduto->avaria . "</td>"; 
      echo "</tr>"; 
     echo "</table>"; 
    } 
     echo '</div>'; 
     echo '</div>'; 
    //Termina o script 

     echo '<div class="foot">'; 
     echo '<p>Copyright © 2013 - Todos os direitos reservados - <a href="mailto:[email protected]">Númica</a></p>'; 
     echo '</div>'; 
     echo '</body>'; 
     echo '</html>'; 
exit(); 
    ?> 
+0

'ВЫБРАТЬ ПОЛЯ ИЗ ТАБЛИЦЫ WHERE UR_KEY_NAME = USER_ID'; – Red

ответ

1

изменить это

if (!isset($_SESSION)) session_start(); 

в

session_start(); 
if (isset($_SESSION['id'])) 

И использовать этот запрос с WHERE

$user = $_SESSION['id']; 
$sql = "SELECT id_user, id_ficha, avaria FROM fichas WHERE id_user = $user"; 
+0

привет я слышал, что мы не должны использовать прямой сеанс для запроса, я также следую за ним, но почему я не должен использовать сеанс непосредственно для запроса, он меня путает. вы можете уточнить –

+0

теперь есть проблема с while loop. Неустранимая ошибка: вызов функции-члена mysql_fetch_object() для не-объекта –

+0

@ JoãoPereira Это означает, что этот запрос не работает. повторите этот запрос и запустите его в 'phpmyadmin'. –

1

Вы отсутствующего ГДЕ в вашем запросе

$user = $_SESSION['id']; 
$sql = "SELECT id_user, id_ficha, avaria FROM fichas WHERE id_user = $user"; 
+0

Неустранимая ошибка: вызов функции-члена mysql_fetch_object() на не-объект –

+0

означает, что ваша запись не найдена. Сделайте предварительную подготовку перед началом тренировки. –

+0

хорошо, уже отредактировал запрос, а на phpmyadmin работает, но на php он не дает мне ошибку –

0

Если я правильно понимаю и fichas таблицы таблица связи между пользователем и оборудованием, то ваш запрос должен выглядеть

$sql = "SELECT id_user, id_ficha, avaria FROM fichas f 
     LEFT JOIN equipment_table eq ON eq.id_ficha = f.id_ficha 
     WHERE id_user = " . $id."; 

Этот запрос возвратит все оборудование для данного пользователя, и вы также получите значения из таблицы оборудования.

Не забудьте угадать значение id (избегайте SQL injection) - проанализируйте его, например, рядом.

+0

переменная $ id такая же, как и моя переменная $ user right? Я получаю сообщение об ошибке в функции fetch: S –

+0

Да, '$ id' является' $ user', какая ошибка вы получаете? Запрос должен быть изменен, я думаю, что у вас нет 'equipment_table' в вашей базе данных. Для получения дополнительной информации о ассоциации «многие ко многим» см. Http://www.tomjewett.com/dbdesign/dbdesign.php?page=manymany.php. –

+0

уже решил проблему, я перепробовал _SESSION ['id'], как у меня на моей индексной странице, и работает, имя было неправильным, спасибо! –

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