#php #mysql #explode #implode
#php #mysql #взрывать #разрывает
Вопрос:
Не уверен, есть ли способ сделать это, но я могу вставить несколько категорий в MYSQL, используя :
GetSQLValueString(implode($_POST['r_category'],", "), "text"),
Итак, когда я повторяю:
<?php echo $row_Recordset1['r_category']; ?>
Это нормально, вот так: Cat 1, Cat 2, Cat 3
Я пытаюсь найти способ связать каждую категорию для удобства навигации!!
Вот так:
<a href="/page/results.php?r_category=<?php echo $row_Recordset1['r_category']; ?>"><?php echo $row_Recordset1['r_category']; ?></a>
Это отлично работает для одного кота, но если у меня несколько котов, то это одна большая ссылка …. не то, что я хочу.
Мне нужно использовать implode или explode, но не уверен, как это сделать? Заранее спасибо!!!
Это то, что я хотел бы:
Cat 1, Cat 2, Cat 3 (все это отдельные ссылки, извлекаемые из одной строки!)
Ответ №1:
Если $row_Recordset1[‘r_category’] — это строка «Cat 1, Cat 2, Cat 3», то вы можете преобразовать ее в массив, подобный этому:
$arr = explode(",", $row_Recordset1['r_category']);
затем пройдите по вашему массиву, чтобы создать ссылки:
$links = array();
foreach ($arr as $value)
{
$links[] = "<a href='/page/results.php?r_category=". trim($value) ."'>". trim($value) ."</a>";
}
$links_str = implode(", ", $links);
echo $links_str;
Комментарии:
1. хм .. отлично, позвольте мне попробовать. Работает ли это, если у меня только один Cat в строке, например, только Cat 1 .. ?
2. ОТЛИЧНО!! Это сработало, но теперь у меня возникают проблемы с повторением результата с запятой. Если есть только один Cat, то в них не должно быть никакой запятой, но если их несколько, например Cat 1 и Cat 2, то их должна разделять запятая?? ‘echo «<a href=’/страница/результаты.php?r_category=». обрезать (значение $) .»‘>». обрезать (значение$) .»</a>, «;’
3. @eberswine смотрите мою правку о том, как с этим правильно обращаться. Мы сохраним каждую ссылку в массив и повторно введем.