sql >> Databasteknik >  >> RDS >> Mysql

mysql &php sökmarkering

I detta kodblock:

//display results
while ($row = $stmt->fetch())
{
    $explode_criteria = explode(" ", $_GET['criteria']);
    foreach ($explode_criteria as $key)
    {
        $highlight = preg_replace("/" . $key . "/", "<span class='highlight'>" . $key . "</span>", $row['name']);

        echo '<td><a target="_blank" href="' . $row['url'] . '">' . $highlight . '</a></td>';
        echo '<td>' . $row['version'] . '</td>';
        echo '<td>' . $row['cat'] . '</td>';
        echo '<td>' . $row['author'] . '</td>';

        echo '<td>' . $row['added'] . '</td>';
        echo '<td>' . $row['auth_dept'] . '</td>';

        echo '<td>';
    }
}

Slingan hänvisar hela tiden till $row['name'] , så ersättningen är klar, men nästa gång loopen inträffar ersätter den nästa ord på den ursprungliga omodifierade $row['name']

Jag tror att det här borde hjälpa dig:

//display results
while ($row = $stmt->fetch())
{
    $explode_criteria = explode(" ", $_GET['criteria']);
    $highlight = $row['name']; // capture $row['name'] here
    foreach ($explode_criteria as $key)
    {
        // escape the user input
        $key2 = preg_quote($key, '/');
        // keep affecting $highlight
        $highlight = preg_replace("/" . $key2 . "/", "<span class='highlight'>" . $key . "</span>", $highlight);

        echo '<td><a target="_blank" href="' . $row['url'] . '">' . $highlight . '</a></td>';
        echo '<td>' . $row['version'] . '</td>';
        echo '<td>' . $row['cat'] . '</td>';
        echo '<td>' . $row['author'] . '</td>';

        echo '<td>' . $row['added'] . '</td>';
        echo '<td>' . $row['auth_dept'] . '</td>';

        echo '<td>';
    }
}



  1. Varför behövs UTFÖR OMEDELBART här?

  2. hur man löser misslyckades med att ansluta till /192.168.15.186 (port 80):anslutning misslyckades:ETIMEDOUT (Timeout för anslutning) i Windows-brandväggen

  3. Ett icke-numeriskt tecken hittades där ett numeriskt tecken förväntades

  4. fil eller LOB-operation FILEOPEN misslyckades när en XML-fil laddades in i en tabell