Avatar billede raan Nybegynder
08. marts 2007 - 16:40 Der er 29 kommentarer og
1 løsning

søg i en database.

jeg har siddet og kigget lidt på alle de søge'maskiner' der er lavet herinde, men kan ikke rigtig få det til at virke.

den skal søge i én bestem database også er lige ligemeget med where osv, for den skal finde alt inden for den database.

en som kan hjælpe?
Avatar billede jakobdo Ekspert
08. marts 2007 - 18:03 #1
Du kan ikke søge, uden du bruger WHERE.
Hvis du vil have alt, så skal du bare bruge: SELECT * FROM tabel
Avatar billede raan Nybegynder
08. marts 2007 - 18:19 #2
okay. men hvordan gør jeg så det?
Avatar billede jakobdo Ekspert
08. marts 2007 - 18:40 #3
Du lave f.eks. en form:

<form action="search.php" method="post">
Søg: <input type="text" name="search"><br />
<input type="submit" value="SØG" name="submit">
</form>

Og så din search.php side kan indeholde:

//forbind til mysql
$search = mysql_real_escape_string($_GET['search']);
$query = mysql_query("SELECT * FROM table WHERE field LIKE '%".$search."%'");
if(mysql_num_rows($query)>0)
{
while($row = mysql_fetch_assoc($query))
{
echo $row['field'] . "<br />";
}
}
Avatar billede raan Nybegynder
08. marts 2007 - 19:59 #4
får denne fejl:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /customers/turistbornholm.dk/turistbornholm.dk/httpd.www/only/search.php on line 5

og min side ser sådan ud:
<?
include("sql.php");
$search = mysql_real_escape_string($_GET['search']);
$query = mysql_query("SELECT * FROM vaelger WHERE field LIKE '%".$search."%'");
if(mysql_num_rows($query)>0)
{
while($row = mysql_fetch_assoc($query))
{
echo $row['field'] . "<br />";
}
}
?>
Avatar billede jakobdo Ekspert
08. marts 2007 - 20:13 #5
Har du et felt der hedder: field  ??

Det skal jo være feltet du vil søge i.
Avatar billede raan Nybegynder
08. marts 2007 - 20:20 #6
sådan, nu virker det.

men hvordan får man den kun til at vise, det man søger på, og ikke alt det andet.
Avatar billede jakobdo Ekspert
08. marts 2007 - 20:31 #7
Det er netop derfor du har WHERE med.
Den vil så kun vise det som matcher din søgning.
Avatar billede jakobdo Ekspert
08. marts 2007 - 20:31 #8
Prøv evt. at test lidt her: http://www.w3schools.com/sql/sql_tryit.asp
Avatar billede raan Nybegynder
08. marts 2007 - 20:36 #9
nej, den viser alle.
har faktik lige fundet ud af den slet ikke søger, men den bare finder tabellen frem?
Avatar billede jakobdo Ekspert
08. marts 2007 - 21:07 #10
Må jeg se din kode?
Avatar billede raan Nybegynder
08. marts 2007 - 21:09 #11
<?
include("sql.php");
$search = mysql_real_escape_string($_GET['search']);
$query = mysql_query("SELECT * FROM vaelger WHERE firma LIKE '%".$search."%'");
if(mysql_num_rows($query)>0)
{
while($row = mysql_fetch_assoc($query))
{
echo $row['firma'] . "<br />";
}
}
?>

<form action="?s=search" method="post">
Søg: <input type="text" name="search"><br />
<input type="submit" value="SØG" name="submit">
</form>
Avatar billede jakobdo Ekspert
08. marts 2007 - 21:13 #12
Hvordan ser din tabel ud?
Avatar billede raan Nybegynder
09. marts 2007 - 07:45 #13
CREATE TABLE `vaelger` (
  `id` int(11) NOT NULL auto_increment COMMENT 'Vælger',
  `gruppe` varchar(255) NOT NULL default '',
  `city` varchar(255) NOT NULL default '',
  `firma` longtext NOT NULL,
  `adr` longtext NOT NULL,
  `tel` longtext NOT NULL,
  `fax` longtext NOT NULL,
  `mail` longtext NOT NULL,
  `web` longtext NOT NULL,
  `pic` longtext NOT NULL,
  `beskrivelse` longtext NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
Avatar billede jakobdo Ekspert
09. marts 2007 - 08:16 #14
Og hvordan kunne en række med data se ud?
Avatar billede raan Nybegynder
09. marts 2007 - 11:41 #15
fx. Autoforum eller et eller andet firma?
Avatar billede jakobdo Ekspert
09. marts 2007 - 12:29 #16
Hvad får du af resultat, hvis du bruger denne sql:

SELECT * FROM vaelger WHERE firma LIKE '%auto%'
Avatar billede raan Nybegynder
09. marts 2007 - 13:22 #17
nu virker det.
men hvordan får jeg det så til at virke, så man kan søge?
Avatar billede jakobdo Ekspert
09. marts 2007 - 15:17 #18
<?
include("sql.php");
$search = mysql_real_escape_string($_GET['search']);
$query = mysql_query("SELECT * FROM vaelger WHERE firma LIKE '%".$search."%'");
if(mysql_num_rows($query)>0)
{
while($row = mysql_fetch_assoc($query))
{
echo $row['firma'] . "<br />";
}
}
?>

<form action="?s=search" method="post">
Søg: <input type="text" name="search"><br />
<input type="submit" value="SØG" name="submit">
</form>
Avatar billede jakobdo Ekspert
09. marts 2007 - 15:19 #19
Du skal lave det sådan her:

<?
if(isset($_POST['submit']))
{
    include("sql.php");
    $search = mysql_real_escape_string($_GET['search']);
    $query = mysql_query("SELECT * FROM vaelger WHERE firma LIKE '%".$search."%'");
    if(mysql_num_rows($query)>0)
    {
        while($row = mysql_fetch_assoc($query))
        {
            echo $row['firma'] . "<br />";
        }
    }
}
?>

<form action="?s=search" method="post">
Søg: <input type="text" name="search"><br />
<input type="submit" value="SØG" name="submit">
</form>
Avatar billede raan Nybegynder
10. marts 2007 - 06:56 #20
det virker ikke?
den viser bare en blank side!
Avatar billede jakobdo Ekspert
10. marts 2007 - 09:17 #21
Så er den der:

<?
//http://www.eksperten.dk/spm/766882

if(!empty($_GET['search']))
{
    require("sql.php");
    $search = mysql_real_escape_string($_GET['search']);
    $query = mysql_query("SELECT * FROM vaelger WHERE firma LIKE '%".$search."%'");
    if(mysql_num_rows($query)>0)
    {
        while($row = mysql_fetch_assoc($query))
        {
            echo $row['firma'] . "<br />";
        }
    }
}
?>

<form action="<?=$_SERVER['PHP_SELF'];?>" method="get">
Søg: <input type="text" name="search"><br />
<input type="submit" value="SØG">
</form>
Avatar billede raan Nybegynder
11. marts 2007 - 16:00 #22
det virker.
har dog lige et problem, jeg køre mine sider via include($page); altså ?s=soeg
også når jeg søger tror den jo det er en side, også laver den det om .. hvad skal jeg gøre?
Avatar billede jakobdo Ekspert
11. marts 2007 - 21:06 #23
Så skal du rette:
action="<?=$_SERVER['PHP_SELF'];?>"
til:
action="<?=$_SERVER['PHP_SELF'];?>?s=soeg"
Avatar billede raan Nybegynder
12. marts 2007 - 11:05 #24
det virker ikke.
den skriver bare ?search=auto og ikke siden.
Avatar billede jakobdo Ekspert
12. marts 2007 - 11:53 #25
Så lav et hidden input felt:

<input type="hidden" name="s" value="soeg">
Avatar billede raan Nybegynder
12. marts 2007 - 12:04 #26
hvordan skal det så se ud?
Avatar billede jakobdo Ekspert
12. marts 2007 - 12:44 #27
<form action="<?=$_SERVER['PHP_SELF'];?>" method="get">
<input type="hidden" name="s" value="soeg">
Søg: <input type="text" name="search"><br />
<input type="submit" value="SØG">
</form>
Avatar billede raan Nybegynder
12. marts 2007 - 13:29 #28
så skete der noget :D
smid et svar?
Avatar billede jakobdo Ekspert
12. marts 2007 - 13:59 #29
Svar!
Avatar billede jakobdo Ekspert
12. marts 2007 - 14:40 #30
Takker for point.
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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