кликабельные результаты в php

Попытка отобразить результаты, которые кликабельны.

<form method="post" action="AF9.php">
            <input type="submit" name="submit" value=" search ">
            <input type="text" name="search" />
</form>

а вот частично файл AF9.php:

<?php

        $connection = @new mysqli(HOSTNAME, MYSQLUSER, MYSQLPASS, MYSQLDB);
        if ($connection->connect_error) {
         die('Connect Error: ' . $connection->connect_error);
        }
        else {

        $search=$_POST["search"];

        $query="SELECT *,  FROM comments AS c JOIN namestable2 AS w ON c.w1 = w.w1
        WHERE name like '%$search%' 
        ORDER BY name DESC";                         
        $connection->query("SET NAMES utf8");               
        $result_obj = '';
        $result_obj = $connection->query($query);             

        while($result = $result_obj->fetch_array(MYSQLI_ASSOC)) {   
        $items[] = $result;
        }                               

        foreach ($items as $item) {
        echo('<a href="AF9.php?search='.$item['word'].'">'.$item['word'].'</a>');

}?>

однако, когда я нажимаю на результат, он говорит: «Неопределенный индекс: поиск». Пожалуйста помоги


person Aaron F    schedule 09.10.2013    source источник
comment
Вы пытались распечатать каждую переменную POST, чтобы увидеть, что на самом деле передается?   -  person Floris    schedule 09.10.2013
comment
спасибо всем, ваши ответы решили мою проблему.   -  person Aaron F    schedule 09.10.2013
comment
Помещать $_POST данные прямо в запрос без экранирования? Что может пойти не так!?. Помните, что mysqli имеет метод bind_param. Используйте.   -  person tadman    schedule 09.10.2013


Ответы (3)


Жестко закодированные ссылки, которые заканчиваются на «?key=value», например «?search=xyz», будут проходить через поток GET, а не POST. Попробуйте изменить это:

$search=$_POST["search"];

к этому:

$search=$_GET["search"];
person Will Hannah    schedule 09.10.2013

Вы уверены, что хотели сделать $search=$_POST["search"];?

Если вы отправляете его в URL-адресе, вместо этого вам нужно будет сделать $search=$_GET["search"];.

person Dan Johnson    schedule 09.10.2013

Ваша ссылка является изменением $_GET, а не $_POST

$search=$_POST["search"];

to

$search = $_GET['search'];
person Casey    schedule 09.10.2013
comment
нет, он говорит о кликабельной ссылке. Я предполагаю, что эта строка echo('<a href="AF9.php?search='.$item['word'].'">'.$item['word'].'</a>'); не является отправкой формы. - person Casey; 09.10.2013