mysql php разрывает строку для ссылок?

#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 смотрите мою правку о том, как с этим правильно обращаться. Мы сохраним каждую ссылку в массив и повторно введем.