Autor Zpráva
Michales
Profil
Ahoj vespolek.

Potřeboval bych radu ohledně následujících scriptů.

Index.php:
<?php
session_start();
ob_start();
require_once "config.php";

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>

<title>Vyhledávač</title>
<script type="text/javascript" src="jquery.js"></script>
<script type='text/javascript' src='jquery.autocomplete.js'></script>
<link rel="stylesheet" type="text/css" href="jquery.autocomplete.css" />

<script type="text/javascript">
$().ready(function() {
    
    $("#course").autocomplete("get_course_list2.php", {
        width: 260,
        matchContains: true,
        mustMatch: true,
        //minChars: 3,
        //multiple: true,
        //highlight: false,
        //multipleSeparator: ",",
        selectFirst: false
    });
    
    $("#course").result(function(event, data, formatted) {
        $("#album").val(data[1]);
    });
});  
</script>

  <form autocomplete="off" action="show.php" class="search" name="searchform">
  <input type="text"  id="course" />
            <!--input type="button" value="Get Value" /-->
            <input  type="hidden" name="album" id="album" />
    <input type="submit" value="Search" />
  </form> 

</body>
</html>

get_course_list2.php:
<?php
require_once "config.php";
$q ='%'.mysql_real_escape_string (strtolower( $_GET["q"])).'%';
if (!$q) return;

$sql = "(SELECT Album as vyhledani,id as cislo from albums WHERE Album LIKE '$q') UNION ALL  (SELECT name as vyhledani,id as cislo from interprets WHERE name LIKE '$q')";
$rsd = mysql_query($sql);
while($rs = mysql_fetch_array($rsd)) {
    $cid = $rs['cislo'];
    $cname = $rs['vyhledani'];
    echo "$cname|$cid\n";
}
?><p><font color="#000000">recognize </font></p>

Nyní to funguje jako klasický vyhledávač s našeptávačem.
Potřeboval bych poradit ja na následující úpravu.

Nyní po výběru ve vyhledávači mě to směřuje na stránku show.php?album=......
Potřeboval bych následující.
Pokud je výsledek z tabulky interprets, mělo by to směřovat na stránku show.php?interpret=.....
Pokud je výsledek z tabulky Album, mělo by to směřovat na stránku show.php?album=......

Můžete mě prosím nasměrovat správným směrem jak toto vyřešit? Díky.
mimochodec
Profil
$sql = "(SELECT Album as vyhledani,id as cislo from albums WHERE Album LIKE '$q') UNION ALL  (SELECT name as vyhledani,id as cislo from interprets WHERE name LIKE '$q')";

uprav na

$sql = "
(SELECT 1 as odkud, Album as vyhledani,id as cislo from albums WHERE Album LIKE '$q') 
UNION ALL  
(SELECT 2 as odkud, name as vyhledani,id as cislo from interprets WHERE name LIKE '$q')
";

následně přidej sem:
    $cid = $rs['cislo'];
    $cname = $rs['vyhledani'];
    $odkud = $rs['odkud'];
    echo "$cname|$cid|$odkud\n";

a pak zpracuj v tom JS.

mmch v php máš chybu:
if (!$q) return; - toto nikdy nebude splněno.
Michales
Profil
mimochodec:
Díky, JS moc neovládám ale zkusím si s tím pohrát.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: