вставка значения unserialize () с serialize () базы данных. - PullRequest
1 голос
/ 30 августа 2011

я вставляю в значения базы данных (массив) с использованием функции serialize(), как их можно отразить с unserialize() в теге <ul><li>...?

У меня есть в базе данных это: a:6:{i:0;s:15:"Coffee";i:1;s:14:"Satellite";i:2;s:11:"Game Notes";i:3;s:14:"Internet";i:4;s:10:"Pool";i:5;s:0:"";}

LIKE:

  • Кофе
  • Примечания к игре
  • Интернет
  • Бассейн

Ответы [ 2 ]

2 голосов
/ 30 августа 2011

Вам нужно использовать unserialize(), как вы сказали, с циклом foreach(), например:

$arr = unserialize($dbString);

echo "<ul>";

foreach($arr as $key => $val)
{
    echo "<li>$val</li>";
}

echo "</ul>";

Это отобразит список, содержащий value, поскольку foreach() выполняет итерацию поunserialize() d массив, как вы указали в своем вопросе.

$key => $part - это глазурь на торте для foreach();если вы хотите получить ключ массива, просто укажите $key.Если вы хотите получить данные для этого ключа, используйте $val.


Если вы хотите отобразить только один элемент (ваш пример Internet), просто не используйте цикл и ссылайтесь на негопо ключу (целому числу):

$arr = unserialize($dbString);

echo $arr[2];

Это echo третий третий элемент в массиве.

0 голосов
/ 30 августа 2011

Оригинальный вопрос

Десериализация данных и их циклическая распечатка. Обратите внимание, что я также добавил в проверки, чтобы убедиться, что мы получаем массив и что он содержит что-то перед циклом.

$data = unserialize($row['like']);
if(is_array($data) and count($data)) {
    echo '<ul>';
    foreach($like as $value) {
        echo '<li>' . $value . '</li>';
    }
    echo '</ul>';
}

Интернет

Я думаю, это то, что вы просите. Вывести значение только в том случае, если оно Internet.

$data = unserialize($row['like']);
if(is_array($data) and count($data)) {
    echo '<ul>';
    foreach($like as $value) {
        if('Internet' != $value) {
            continue;
        }
        echo '<li>' . $value . '</li>';
    }
    echo '</ul>';
}

1012 * JSON * Если бы вы могли, я бы прекратил использовать serialize и использовал вместо этого json_encode. Его проще кодировать и декодировать на большем количестве языков программирования, и его легче редактировать людям, если вам необходимо обновить БД напрямую.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...