vyhladavanie v DB vo vsetkych tabulkach
Re: vyhladavanie v DB vo vsetkych tabulkach
áno, id potrebuješ, lenže ak budeš postupovať kopírovaním insert into ... select ... pri druhom použití ti vyhodí varovanie z duplicity; pretože, ak predpokladám správne, tak každá tabuľka obsahuje číslovanie pesničky od 1. Odstránením idčka, "spojením" všetkých tabuliek, a znovu vytvorení idčka v novej tabuľke sa ti priradia správne hodnoty. Ale! ak si mal odkaz na nejakú pesničku, už nebude platný pretože sa menilo radenie... uf. No, snáď to nejako spravíš... No, ale toto platí k tomu čo som písal predtým, ak si to už spojil inak, tak v pohode...
Re: vyhladavanie v DB vo vsetkych tabulkach
dikes ide to len som znova spravil celu tabulku 
//autoeditácia príspevku (24 Jan 2010, 15:37)
mam upravene jedno vyhladavanie ale zalezi na tom ci zadam do hladania velke alebo male pismenko napr zadam pri vyhladavani pesniciek Akon tak najde vysledky ale ked zadam akon tak nic nenajde co s tym?
//autoeditácia príspevku (24 Jan 2010, 15:37)
mam upravene jedno vyhladavanie ale zalezi na tom ci zadam do hladania velke alebo male pismenko napr zadam pri vyhladavani pesniciek Akon tak najde vysledky ale ked zadam akon tak nic nenajde co s tym?
Kód: Vybrať všetko
<?php #vyhladavanie.php
echo "<form action='{$_SERVER[PHP_SELF]}' method='get'>";
echo " Text:<br /><input name='retazec' type='text' /><br />";
echo " <input type='submit' value='Vyhľadaj' />";
echo "</form>";
require_once("mysql.php");
if(isset($_GET[retazec])){
if(empty($_GET[retazec])){
$retazec = FALSE;
$error = "Nezadali ste reťazec pre vyhľadávanie!<br />";
} else {
$retazec = $_GET[retazec];
}
$podla = "meno";
if($retazec){
echo "Výsledky vyhľadávania pre hľadaný výraz: <strong>$retazec</strong><br />";
echo ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .<br>";
$retazec = explode(" ",$retazec);
$sql = "SELECT meno FROM songs WHERE $podla LIKE '%".$retazec[0]."%'";
for ($num=1;$num<count($hladaj);$num++) {
$sql .= "$sql AND $podla LIKE '%".$hladaj[$num]."%'";
}
$sql = "$sql ORDER BY meno ASC";
$vysledok = mysql_query($sql);
$pocet = mysql_num_rows($vysledok);
if($pocet == NULL){
echo("Zadaný reťazec sa v databáze nenachádza!<br />");
}
while($zaznam = mysql_fetch_object($vysledok)){
$meno = $zaznam->meno;
echo "$meno<br />";
}
unset($meno);
echo "<br><br>Výsledkov: <strong>$pocet</strong>";
} else {
echo $error;
}
}
?>-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
Re: vyhladavanie v DB vo vsetkych tabulkach
buď si to budeš premieňať na malé písmená a porovnávať iba tie (strtolower() na strane php, lcase na strane mysql) alebo použiješ vyhľadávanie cez match-against a nie cez like. Tam si ale budeš musieť pridať fulltext. A poslednou, asi najlepšou možnosťou, je nastaviť tomu stlpcu s menami kde hľadáš collation na nejaký ci (case insensitive) a like sa prispôsobi (nebude rozlišovať veľké a malé)
Re: vyhladavanie v DB vo vsetkych tabulkach
jo parada dik za radu...este mohli by ste sa mi pozriet na toto co som opravil ale nevypisuje mi to dobre neviem kde mam chybu..potrebujem aby to vypisalo pre dany riadok v ktorom sa nasiel v poli meno hladany vyraz aby nevypisal iba meno ale aj link a datum...skusal som no nefachci to
//autoeditácia príspevku (25 Jan 2010, 22:46)
poradiiii mi niekto?
Kód: Vybrať všetko
<?php #vyhladavanie.php
echo "<form action='{$_SERVER[PHP_SELF]}' method='get'>";
echo " Text:<br /><input name='retazec' type='text' /><br />";
echo " <input type='submit' value='Vyhľadaj' />";
echo "</form>";
require_once("mysql.php");
if(isset($_GET[retazec])){
if(empty($_GET[retazec])){
$retazec = FALSE;
$error = "Nezadali ste reťazec pre vyhľadávanie!<br />";
} else {
$retazec = $_GET[retazec];
}
$podla = "meno";
if($retazec){
echo "Výsledky vyhľadávania pre hľadaný výraz: <strong>$retazec</strong><br />";
echo ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .<br>";
$retazec = explode(" ",$retazec);
$sql = "SELECT meno FROM songs WHERE $podla LIKE '%".$retazec[0]."%'";
for ($num=1;$num<count($hladaj);$num++) {
$sql .= "$sql AND $podla LIKE '%".$hladaj[$num]."%'";
}
$sql = "$sql ORDER BY meno ASC";
$vysledok = mysql_query($sql);
$pocet = mysql_num_rows($vysledok);
if($vysledok == NULL){
echo("Zadaný reťazec sa v databáze nenachádza!<br />");
}
while($zaznam = mysql_fetch_assoc($vysledok)){
echo '<div style="text-align: left; margin-bottom: 3px; margin-top: 3px;">';
echo ' " <a href="',$zaznam['link'],'">',$zaznam['meno'],'</a> "<br>';
echo '<font color="gray" size="1">date: ',$zaznam['datum'],'</font></div>';
}
echo "<br><br>Výsledkov: <strong>$pocet</strong>";
} else {
echo $error;
}
}
?>poradiiii mi niekto?
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
Re: vyhladavanie v DB vo vsetkych tabulkach
v tom selecte vyberáš iba meno:
$sql = "SELECT meno FROM songs WHERE $podla LIKE '%".$retazec[0]."%'";
$sql = "SELECT meno FROM songs WHERE $podla LIKE '%".$retazec[0]."%'";
Re: vyhladavanie v DB vo vsetkych tabulkach
aaaaaaaa...
...diiik