База данных Mysql не работает с дефисом (-)

Пользователь говорит, в каком федеральном государстве (Германия) он живет.
Важный код действительно прост:

echo "<a href=\"FirstLogin.php?Name=Baden-Würtemberg\">Baden-Würtemberg</a><br>";
echo "<a href=\"FirstLogin.php?Name=Bayern\">Bayern</a><br>";
echo "<a href=\"FirstLogin.php?Name=Berlin\">Berlin</a><br>";
echo "<a href=\"FirstLogin.php?Name=Brandenburg\">Brandenburg</a><br>";
echo "<a href=\"FirstLogin.php?Name=Bremen\">Bremen</a><br>";
...
exit (0);

Пользователь нажимает на ссылку, которая показывает название федерального государства, в котором он живет, и он будет перенаправлен на FirstLogin.php с федеральным государством как $ _GET.
Теперь проблема:
На этом сайте пользователь должен выбрать город, в котором он живет.
В базе данных mysql все города сохранены.
Все города, которые находятся в федеральной земле, выбранной пользователем, будут показаны:

$FederalState = $_GET["Name"];
$sql = "SELECT Towns FROM Towns WHERE Federal State = '$FederalState'";
foreach ($pdo->query($sql) as $row) {
$Towns[] = $row["Towns"];
}
for ($i=0;$i<count($Towns);$i++) {
$Town = $Towns[$i];
echo "<a href=\"NextPage.php?Name=$Town\">$Town</a><br>";
}

Это все работает хорошо, если пользователь выбирает «Бавария», «Берлин» или другой нормальный федеральный штат. Но, если пользователь выбирает федеративное государство с — (дефис или минус), это не работает! Ссылки не приходят!
И если я сделаю

foreach ($pdo->query($sql) as $row) {
echo $row["Staedte"]."<br>";
}

Города федеративного государства отображаются только в том случае, если в федеральном государстве нет гипена соответственно минус (-).
Я не знаю, что нужно сделать, чтобы скрипт работал.
Пожалуйста, помогите мне и дайте мне решение.

РЕДАКТИРОВАТЬ 1:
Дело не в дефисе,
дело в Баден-Вюртемберге,
Я пробовал это с «Северный Рейн-Вестфален», и это сработало
Но в начале я использовал <meta charset="utf-8"/>

0

Решение

Вместо этого:

$FederalState = $_GET["Name"];
$sql = "SELECT Towns FROM Towns WHERE Federal State = '$FederalState'";
foreach ($pdo->query($sql) as $row) {
$Towns[] = $row["Towns"];
}
for ($i=0;$i<count($Towns);$i++) {
$Town = $Towns[$i];
echo "<a href=\"NextPage.php?Name=$Town\">$Town</a><br>";
}

Попробуйте этот код:

$pdo->exec("set names utf8");
$FederalState = urldecode ($_GET["Name"]);
$sql = "SELECT Towns FROM Towns WHERE Federal State = '$FederalState'";
foreach ($pdo->query($sql) as $row) {
$Towns[] = $row["Towns"];
}
for ($i=0;$i<count($Towns);$i++) {
$Town = $Towns[$i];
echo "<a href=\"NextPage.php?Name=$Town\">$Town</a><br>";
}

Надеюсь, что это работает для вас…

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]