Как я могу передать данные в сеанс, поступающий из массива, который также приходит из базы данных в PHP?

php session

34 просмотра

1 ответ

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

<?php
session_start();
$_SESSION['indicator'] = "";
$conn = mysqli_connect("localhost","root","","appnimal") 
or die ("Could not connect to mysql because ".mysql_error());
$sql=mysqli_query($conn,"SELECT * FROM tbl_pet_animal WHERE pet_owner_id='$user'")
or die(mysql_error());
while($row=mysqli_fetch_array($sql))
{echo  "<tr class='even pointer record'>        
        <td class=' '>",$row[1],"</td>
        <td class=' '>",$row[2],"</td>
        <td class=' '>",$row[3],"</td>
        <td class=' '>",$row[4],"</td>
        <td class=' '>",$row[5],"</td>
        <td class=' '>",$row[6],"</td>
        <td class=' '>",$row[7],"</td>
        <td class=' '>",$row[8],"</td>
        <td class=' '>",$row[9],"</td>
        <td class=' '>",$row[10],"</td>
        <td><button type='button' 
                 onClick=location.href='try.php?".$_SESSION['indicator']."=$row[1]'>
       </td>";
 ?>

Что я пытаюсь сделать , это , скажем, echoна $_SESSION['indicator']значение в другой странице. Это мой код с другой страницы, где я хочу echoзначение:

<?php
    session_start();
    $indicator="";
    $indicator= $_SESSION['indicator'];
    $conn = mysqli_connect("localhost","root","","appnimal") 
    or die ("Could not connect to mysql because ".mysql_error());
    $sql=mysqli_query($conn, "SELECT pet_animal_name FROM tbl_pet_animal WHERE pet_animal_name='$indicator'") or die(mysql_error());
    while($row=mysqli_fetch_array($sql)){
       echo ($row['pet_animal_name']);
    }
?>

Но когда я иду туда, это ничего не показывает. Пожалуйста, помогите мне.

Автор: John Marvic Dianco Источник Размещён: 08.11.2019 11:19

Ответы (1)


1 плюс

Он ничего не отображает, потому что (по крайней мере) в этом коде ваш $ _SESSION ['индикатор'] равен "" (пустая строка), и вы, вероятно, не имеете pat с именем "".

Вы можете заменить эту часть в первом скрипте:

<?php
session_start();
$_SESSION['indicator'] = "";
$conn = mysqli_connect("localhost","root","","appnimal") 

С участием

<?php
session_start();
$_SESSION['indicator'] = "ANY_NAME_FROM_DB"; // N.B.: strings can be case-sensitive.
$conn = mysqli_connect("localhost","root","","appnimal") 

А потом проверь, получишь ли ты что-нибудь.

ОБНОВЛЕНИЕ № 1 (из комментариев)

Если вы хотите присвоить значение на линии

onClick=location.href='try.php?".$_SESSION['indicator']."=$row[1]'

Вы должны сделать это вместо этого:

onClick=location.href='try.php?".$_SESSION['indicator']=$row[1]."'

Потому что в вашем примере "=$row[1]"это часть строки, а не код php. Это означает, что .'=whatever'не будет иметь никакого влияния на вашу ценность $_SESSION['indicator'].

Автор: Vladimir Размещён: 20.08.2016 12:45
Вопросы из категории :
32x32