Autor | Zpráva | ||
---|---|---|---|
Jan Žák Profil |
#1 · Zasláno: 20. 2. 2017, 19:05:33
Dobrý den všem,
rád bych vás požádal o radu či pomoc. Mám napsaný jednoduchý příkaz na vyhledání ve třech tabulkách, viz níže: <?php // gets value sent over search form if (isset($_GET['query'])) $query = $_GET['query']; // you can set minimum length of the query if you want $min_length = 3; // if query length is more or equal minimum length then if(strlen($query) >= $min_length){ // changes characters used in html to their equivalents, for example: < to > $query = htmlspecialchars($query); // makes sure nobody uses SQL injection $query = mysql_real_escape_string($query); $results = "(SELECT company_name, street FROM company WHERE company_name LIKE '%" . $query . "%' OR street LIKE '%" . $query ."%') UNION (SELECT firstname, lastname FROM contacts WHERE firstname LIKE '%" . $query . "%' OR lastname LIKE '%" . $query ."%') UNION (SELECT contract_name, contract_second_name FROM contracts WHERE contract_name LIKE '%" . $query . "%' OR contract_second_name LIKE '%" . $query ."%')"; $result = mysql_query($results) or die ("Unable to select data because: ".mysql_error()); // if one or more rows are returned do following if ($result && mysql_num_rows($result) > 0) { // $results = mysql_fetch_array($raw_results) puts data from database into array, while it's valid it does the loop while($row = mysql_fetch_array($result)){ ?> Pak jen vyhledané fráze vypíšu <td><?php echo $row['company_name']; ?> <?php echo $row['street']; ?></td> Sice je to takové krkolomné ale funguje to. Rád bych ale ten výpis udělal aby se mi vypsali hodnoty z tabulky company pak z tabulky contacts a pak z poslední contracts. Toto by bylo odděleno třeba nadpisem. Lze tohoto nějak dosáhnout? Díky moc všem. |
||
Keeehi Profil |
#2 · Zasláno: 20. 2. 2017, 19:54:52
Dá se sestavit i takový dotaz, který by to zvládl, ale mnohem jednodušší mi přijde ten dotaz rozdělit na 3 a vypsat každý zvlášť
Řádek 13. tam nemá co dělat. V databázi by data neměla být nijak escapovaná. Funkci htmlspecialchars bys měl volat až při výpisu dat do html stránky. Kdyby jsi data vypisoval třeba do části, kde je javascript, použil by jsi zase úplně jinou escapovací funkci. |
||
Jan Žák Profil |
#3 · Zasláno: 21. 2. 2017, 08:25:00
Keeehi:
Děkuji za odpověď, asi to bude opravdu lehčí to třikrát vypsat a díky za info ohledně řádku 13, to jsem si neuvědomil. |
||
Časová prodleva: 6 let
|
0