Avatar billede datasource Nybegynder
28. august 2006 - 18:00 Der er 8 kommentarer

Søge på flere tabeller ?

Hej eksperter.

Jeg bruger flg kode til at søge med:

<?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>Søg på et nummer...</p>";
  exit;
  }

// check for a search parameter
if (!isset($var))
  {
  echo "<p>Indtast venligst et nummer!</p>";
  exit;
  }

//connect to your database ** EDIT REQUIRED HERE **
mysql_connect("localhost","brugernavn","kodeord"); //(host, username, password)

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

// Build SQL Query 
$query = "select * from nummre where nummer 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>Din søgning: &quot;" . $trimmed . "&quot; gav ingen resultater</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>Du søgte på: &quot;" . $var . "&quot;</p>";

// begin to show results set
echo "Resultater";
$count = 1 + $s ;

// now you can display the results returned
  while ($row= mysql_fetch_array($result)) {
  $title = $row["nummer"];

  echo "$count.)&nbsp;<a href=\"order.php?nummer=$title\">$title" ;
  $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;
  Forrige 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\">Næste 10 &gt;&gt;</a>";
  }

$a = $s + ($limit) ;
  if ($a > $numrows) { $a = $numrows ; }
  $b = $s + 1 ;
  echo "<p>Viser resultaterne $b ttil $a af $numrows</p>";
 
?>

men det der er mit problem er at den skal ikke kun søge i tabellen "nummre" i rækkken "nummer". Men også i tabellen "nummerserie" og disse rækker:
nummer0
nummer1
nummer2
nummer3
nummer4
nummer5
nummer6
nummer7
nummer8
og nummer9.

200 points til den der kan klare det ;)
Avatar billede datasource Nybegynder
28. august 2006 - 20:53 #1
Slet ingen der kan finde ud af sådan noget ?
Avatar billede datasource Nybegynder
28. august 2006 - 21:23 #2
Går ud fra det er noget her:
$query = "select * from nummre where nummer like \"%$trimmed%\"
  order by id"; // EDIT HERE and specify your table and field names for the SQL query

der skal ændres ?
Avatar billede datasource Nybegynder
28. august 2006 - 21:52 #3
Kom nu kan sådan en SELECT sætning virkelig være så svær ?
Avatar billede arne_v Ekspert
29. august 2006 - 01:35 #4
(SELECT * FROM nummre WHERE nummer LIKE '...')
UNION
(SELECT * FROM nummerserie WHERE nummer0 LIKE '...' OR ... nummer9 LIKE '...')

måske
Avatar billede datasource Nybegynder
29. august 2006 - 14:13 #5
skal paranteserne så være med og union i mellem ?
Avatar billede datasource Nybegynder
29. august 2006 - 14:15 #6
og hvor skal order by id så være ?
Avatar billede arne_v Ekspert
30. august 2006 - 01:08 #7
ja

til aller sidste
Avatar billede arne_v Ekspert
30. september 2006 - 20:55 #8
datasource ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester