简体   繁体   English

MySQL-在一个字段标题下显示多行

[英]Mysql - display multiple rows under one field header

Okay, been thrashing around with this for longer than I care to think about! 好吧,这件事比我想的要花更长的时间了!

I am trying to drag event data from mysql so that it displays the Event Name once and several products under that Event Name 我正在尝试从mysql拖动事件数据,以便它一次显示事件名称 ,并在该事件名称下显示多个产品

For Example: 例如:

Event Name 活动名称
product 1 产品1
product 2 产品2
product 3 产品3

What is currently happening is that the Event Name is displayed above each product, like this 当前正在发生的事件事件名称显示在每个产品上方,就像这样

Event Name 活动名称
product 1 产品1
Event Name 活动名称
product 2 产品2
Event Name 活动名称
product 3 产品3

The PHP Code is: PHP代码是:

    <?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("xxxxxxxx","xxxxxxxx","xxxxx"); //(host, username, password)

//specify database ** EDIT REQUIRED HERE **
mysql_select_db("event_db") or die("Unable to select database"); //select which database we're using

// Build SQL Query  
$query = "select  * from event where event_name like \"%$trimmed%\"  
  order by event_name"; // 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 "Results<br /><br />";


// now you can display the results returned
  while ($row= mysql_fetch_array($result)) {
  $title = $row["event_name"] . "<br />";
  $title2 = $row["location"] . " - " . $row["style_name"] . "<br />";

  echo "<b>$title</b>";
  echo "$count&nbsp;$title2";

  }

$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>";

?>

Any thoughts would be greatly received. 任何想法都会受到欢迎。

simply use group_concat -> group_concat query performance 只需使用group_concat > group_concat查询性能

details -> http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat 详细信息-> http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat

newbie including myself, please try google before posting the question 包括我在内的新手,请在发布问题之前先尝试使用Google

// now you can display the results returned
  while ($row= mysql_fetch_array($result)) {
  if($row["event_name"] != $lasteventname){
      $title = $row["event_name"] . "<br />";
      $lasteventname = $row["event_name"];
      echo "<b>$title</b>";
  }

  $title2 = $row["location"] . " - " . $row["style_name"] . "<br />";
  echo "$count&nbsp;$title2";

  }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM