Вам необходимо использовать правильную кодировку. Для данных запроса используйте urlencode
:
"<a href='../ad.php?ad_id=".urlencode($row['ad_id'])."&category=".urlencode($row['category'])."' target='_parent'>"
И поскольку &
внутри значения атрибута также необходимо правильно закодировать (используя htmlspecialchars
):
"<a href='".htmlspecialchars("../ad.php?ad_id=".urlencode($row['ad_id'])."&category=".urlencode($row['category']))."' target='_parent'>"
Создание правильного кода значительно усложняет задачу, а при использовании описанного выше варианта, вероятно, также становится более нечитаемым. Но вы можете разделить шаги следующим образом:
$row['ad_id'] = urlencode($row['ad_id']);
$row['category'] = urlencode($row['category']);
$href = htmlspecialchars("../ad.php?ad_id=$row[ad_id]&category=$row[category]");
$display_table .= "<a href='$href' target='_parent'>";
И если ad_id всегда является числовым значением, вам даже не нужно применять urlencode
к нему.