Autor | Zpráva | ||
---|---|---|---|
ShanoyX Profil * |
#1 · Zasláno: 14. 8. 2006, 15:54:59
Dobrý den, mám kód: SELECT * FROM home WHERE (nadpis like '%$vyraz%') OR (text like '%$vyraz%') ORDER BY ID DESC LIMIT ".$zaciatok.", $stranky a potrebujem aby to nevyhladávalo iba v jednej tabulke ale v celej databáze ň.. som tu skusal pomocou AND no nefunguje to..poradite mi?
|
||
Kajman_ Profil * |
#2 · Zasláno: 14. 8. 2006, 16:29:48
Pro každou tabulku bude nutný nový select. Pokud budou z těchto selectů vypadávat stejné sloupečky, můžete je spojit přes union.
|
||
ShanoyX Profil * |
#3 · Zasláno: 14. 8. 2006, 16:44:49
a to ako je cez UNION?
|
||
nightfish Profil |
#4 · Zasláno: 14. 8. 2006, 17:30:38
SELECT * FROM tabulka1 WHERE (nadpis like '%$vyraz%') OR (text like '%$vyraz%') ORDER BY ID DESC LIMIT ".$zaciatok.", $stranky
UNION SELECT * FROM tabulka2 WHERE (nadpis like '%$vyraz%') OR (text like '%$vyraz%') ORDER BY ID DESC LIMIT ".$zaciatok.", $stranky UNION SELECT * FROM tabulka3 WHERE (nadpis like '%$vyraz%') OR (text like '%$vyraz%') ORDER BY ID DESC LIMIT ".$zaciatok.", $stranky ... |
||
ShanoyX Profil * |
#5 · Zasláno: 14. 8. 2006, 17:43:16
aha moc diki
|
||
AlešD Profil |
#6 · Zasláno: 14. 8. 2006, 17:45:31
No, v tomto případě bych se v prvé řadě zamyslel nad návrhem struktury databáze. Jedním ze základních pravidel (říká se tomu nějak jako "1.normální forma") je to aby stejné údaje byly v v rámci databáze uvedeny unikátně. Tj. v jednom poli a v jedné tabulce, v případě klíčových slov potom jako číselník.
Kvalitní návrh struktury databáze nejen zjednoduší dotazy, ale také je podstatně zrychlý. Případné vazby mezi tabulkami lze řešit spojením relací (třeba pomocí left/right/inner join). Nějaké info k problematice je třeba tady: http://dbsvet.cz/ Výrazným pomocníkem pro návrh složitějších relačních databází je nějaký case nástroj, vřele doporučuji. |
||
ShanoyX Profil * |
#7 · Zasláno: 14. 8. 2006, 17:52:54
nj....ja neviem mam stranku vyhladaj.php kod: <FORM ACTION="hladaj.php" METHOD="get">
<INPUT TYPE="text" NAME="vyraz" SIZE=20 MAXLENGTH=50> <INPUT TYPE="submit" VALUE="Najdi"></form> a stranku hladaj.php kod: <?php $vyraz = $_GET['vyraz']; print "<B> Výsledky vyhľadávania pre výraz: </B> $vyraz <br><br>"; require("nastavenie.php"); $pripoj=MySQL_Connect($SQL_Server, $SQL_Uzivatel, $SQL_Heslo) or Die(MySQL_Error()); MySQL_Select_Db($Databaza) or Die(MySQL_Error()); if(!isset($_GET["od"])) { $zaciatok=0; } else { $zaciatok=$_GET["od"]; } $stranky=10; //počet člankov na stranku $prikaz = mysql_query("SELECT * FROM mswin WHERE (nadpis like '%$vyraz%') OR (text like '%$vyraz%') ORDER BY ID DESC LIMIT ".$zaciatok.", $stranky; UNION SELECT * FROM google WHERE (nadpis like '%$vyraz%') OR (text like '%$vyraz%') ORDER BY ID DESC LIMIT ".$zaciatok.", $stranky; UNION SELECT * FROM down WHERE (nadpis like '%$vyraz%') OR (text like '%$vyraz%') ORDER BY ID DESC LIMIT ".$zaciatok.", $stranky"); while ($zaznam = MySQL_Fetch_Array($prikaz)){ $nadpis=$zaznam["nadpis"]; $datum=$zaznam["datum"]; $text=$zaznam["text"]; echo "<div class='nadpisclanku'> <b>".$nadpis."</b> | <small>Vydané [ ".$datum." ]</small></div>"; echo "<div class='teloclanku'>".$text."</div><br>"; } echo "Stránka: "; $result=$prikaz; $total=mysql_numrows($result); $pages=$total/$stranky; $i=0; while ($i < $pages) { $zaciatok1=($i*$stranky); $strana=$i+1; if($i != 0) echo "<span> | </span>"; / if($zaciatok1==$zaciatok) { echo "$strana"; } else { echo "<a href=\"hladaj.php?vyraz=$vyraz&od=".$zaciatok1."\">$strana</a>"; } $i++; } ?> a stale mi to nejde.no ked amm iba jednu tabulku tak to ide...mam tam neco zle? |
||
Kajman_ Profil * |
#8 · Zasláno: 14. 8. 2006, 18:02:36
Možná, když si vypíše mysql_error(), tak vám řekne, že tam nemáte ve všech tabulkách slučitelné sloupečky (třeba jejich různý počet). Pak nahraďte * za výčet sloupečků, které potřebujete.
|
||
ShanoyX Profil * |
#9 · Zasláno: 14. 8. 2006, 18:11:03
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '; UNION SELECT nadpis,text FROM google WHERE (nadpis like '%ked%') OR (text lik' at line 1
http://shanoy.warez-forum.sk/vyhladaj.php tam to je....mozete vyskusat |
||
Kajman_ Profil * |
#10 · Zasláno: 14. 8. 2006, 18:51:30
Tak a máte jasno. Středíky před union nemají co dělat.
|
||
ShanoyX Profil * |
#11 · Zasláno: 14. 8. 2006, 19:20:53
uz to nende vobec..nj...a nemate nejaky script na vyhladavanie?
|
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0