簡體   English   中英

如何在同一頁面上的div中顯示php結果

[英]how do I display php results in div on same page

我無法弄清楚如何將我的搜索結果顯示在具有搜索欄的div中的同一頁上。這是我的PHP。

 // Get the search variable from URL $var = @$_GET['q'] ; $trimmed = trim($var); //trim whitespace from the stored variable // rows to return $limit=10; // check for an empty string and display a message. if ($trimmed == "") { echo "<p>Please enter a search...</p>"; exit; } // check for a search parameter if (!isset($var)) { echo "<p>We dont seem to have a search parameter!</p>"; exit; } //connect to your database ** EDIT REQUIRED HERE ** mysql_connect("localhost","USERNAME","PW"); //(host, username, password) //specify database ** EDIT REQUIRED HERE ** mysql_select_db("DB") or die("Unable to select database"); //select which database we're using // Build SQL Query $query = "select * from TABLE where ID like \"%$trimmed%\" order by ID"; // EDIT HERE and specify your table and field names for the SQL query $numresults=mysql_query($query); $numrows=mysql_num_rows($numresults); // If we have no results, offer a google search as an alternative if ($numrows == 0) { echo "<h4>Results</h4>"; echo "<p>Sorry, your search: &quot;" . $trimmed . "&quot; returned zero results</p>"; // google echo "<p><a href=\"http://www.google.com/search?q=" . $trimmed . "\" target=\"_blank\" title=\"Look up " . $trimmed . " on Google\">Click here</a> to try the search on google</p>"; } // next determine if s has been passed to script, if not use 0 if (empty($s)) { $s=0; } // get results $query .= " limit $s,$limit"; $result = mysql_query($query) or die("Couldn't execute query"); // display what the person searched for echo "<p>You searched for: &quot;" . $var . "&quot;</p>"; // begin to show results set echo "<p>Results</p>"; $count = 1 + $s ; // now you can display the results returned while ($row= mysql_fetch_array($result)) { $title = $row["name"]; $picture = $row["thumbnail"]; $code = $row["thumbnail"]; echo "<p>$count.&nbsp;$picture&nbsp;$title</p>" ; $count++ ; } $currPage = (($s/$limit) + 1); //break before paging echo "<br />"; // next we need to do the links to other results if ($s>=1) { // bypass PREV link if s is 0 $prevs=($s-$limit); print "&nbsp;<a href=\"$PHP_SELF?s=$prevs&q=$var\">&lt;&lt; Prev 10</a>&nbsp&nbsp;"; } // calculate number of pages needing links $pages=intval($numrows/$limit); // $pages now contains int of pages needed unless there is a remainder from division if ($numrows%$limit) { // has remainder so add one page $pages++; } // check to see if last page if (!((($s+$limit)/$limit)==$pages) && $pages!=1) { // not last page so give NEXT link $news=$s+$limit; echo "&nbsp;<a href=\"$PHP_SELF?s=$news&q=$var\">Next 10 &gt;&gt;</a>"; } $a = $s + ($limit) ; if ($a > $numrows) { $a = $numrows ; } $b = $s + 1 ; echo "<p>Showing results $b to $a of $numrows</p>"; ?> 

這是html表單輸入:

嗯...效率低下。 您執行兩次查詢。 一次只是獲取匹配的行數,然后再次使用LIMIT子句僅獲取結果的“一頁”。

使用MySQL,您可以將其合並為一個查詢:

$sql = "SELECT SQL_CALC_FOUND_ROWS ... LIMIT $x,$limit"

這樣,mysql仍將找出沒有limit子句的匹配的行數,但仍僅返回LIMIT中指定的行。 然后,您可以使用更簡單的方法(以及更輕量的方法)來檢索總行數:

SELECT found_rows();

您可以通過AJAX執行此操作。 但是,您將不得不減少代碼的過程性。

您不能僅使用PHP / HTML做到這一點,您將需要使用AJAX / JavaScript或將PHP表單發布到嵌套在搜索頁面中的IFRAME。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM