Avatar billede clausberg Nybegynder
22. juli 2005 - 22:07 Der er 12 kommentarer og
1 løsning

Sql query spørgsmål

Så er den gal igen :-D

1) Når jeg kører en søgning i min database med min sql sætning, så får jeg en masse resultater som er sorteret efter deres id - fint så langt.
Men hvordan gør jeg mine resultater til links som brugeren kan klikke på og læse mere om det han/hun har fundet frem til???

2) I min "søgemaskine" så har man mulighed for at vælge mellem en række tal, og er det ikke noget med at når man bruger tal i en sql sætning så gælder der særlige regler???

3) Hvis man skal søge på alt i en DB, så kan man vist bruge et jokertegn, men hvordan ser et sådanne ud (er det bare *)????

:-D
Avatar billede arne_v Ekspert
22. juli 2005 - 22:09 #1
re 1)

det laver du i din applikation (PHP/ASP/whatever)

re 2)

der skal ikke '' omkring men ellers er de ret normale

re 3)

wildcard er % ikke *
Avatar billede arne_v Ekspert
22. juli 2005 - 22:10 #2
mere re 3)

og det er jo altså LIKE og ikke =
Avatar billede clausberg Nybegynder
22. juli 2005 - 22:17 #3
Takker :-D

Jeg har dog ikke helt forstået re 1)... skal jeg lave det i selve phpmyadmin eller bare i den .php fil som sql query sætningen forefindes i... og hvordan ser en sådanne sætning ud (har du et eksempel jeg kunne læne mig op ad?)
Avatar billede kalp Novice
22. juli 2005 - 22:19 #4
du kan evt. kigge på dette ASP søgescript.. siger ikke det er godt.. men bare for at danne dig et billede:) http://www.asp.dk/sources.asp?mode=view_source&tech_id=1&id=905
Avatar billede arne_v Ekspert
22. juli 2005 - 22:20 #5
du genererer links i dit PHP script
Avatar billede arne_v Ekspert
22. juli 2005 - 22:20 #6
eksempel (ikke nødvendigvis godt men):

<?php
$con = mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("Test") or die(mysql_error());
?>
<table border="1">
<tr>
<th>F1</th>
</tr>
<?php
$rs = mysql_query("SELECT * FROM T1") or die(mysql_error());
while ($row = mysql_fetch_array($rs, MYSQL_ASSOC)) {
    print "<tr>\n";
    print "<td><a href='showone?F1=" . $row["F1"] . "'>" . $row["F1"] . "</a></td>\n";
    print "</tr>\n";
}
mysql_free_result($rs);
?>
</table>
<?php
mysql_close($con);
?>
Avatar billede clausberg Nybegynder
22. juli 2005 - 22:42 #7
Kast lige et blik på denne script:

<html>
<head>
<title>XXX</title>
</head>
<body>
<center>
<table>
<tr>
<td>
<? $hostname = "XXX";
$username = "XXX";
$password = "XXX";
$usertable = "XXX";
$dbName = "XXX";

MYSQL_CONNECT($hostname, $username, $password) OR DIE("DB connection unavailable");
@mysql_select_db( "$dbName") or die( "Unable to select database");
?>
<?

$XX = "Ingen resultater blev fundet - prøv igen";

$query = mysql_query("SELECT * FROM biler WHERE titel LIKE '%".$_POST['titel']."%' or kategori LIKE '%".$_POST['search']."%' or hjul LIKE '%".$_POST['hjul']."%' or antal LIKE '%".$_POST['search']."%' LIMIT 0, 50");
while ($row = @mysql_fetch_array($query))
{
$variable1=$row["id"];
$variable2=$row["titel"];
$variable3=$row["kategori"];
$variable4=$row["hjul"];
$variable5=$row["antal"];

print ("<tr>");
print ("<td>$variable1</td>");
print ("<td>$variable2</td>");
print ("<td>$variable3</td>");
print ("<td>$variable4</td>");
print ("</tr>");

}

if (!$variable1)
{
print ("$XX");
}
?>
</table>
</center>
</body>
</html>


Kunne du skrive ind i mit script et eksempel på hvordan man laver et link. Jeg forstod nemlig det første gang :-D (er showone og F1 kommandoer jeg skal have styr på)

På forhånd tak
/Claus
Avatar billede arne_v Ekspert
22. juli 2005 - 22:49 #8
F1 er bare et felt i min tabel !
Avatar billede arne_v Ekspert
22. juli 2005 - 22:49 #9
showone.php ser ud som:

<?php
$con = mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("Test") or die(mysql_error());
?>
<table border="1">
<tr>
<th>F1</th>
<th>F2</th>
</tr>
<?php
$f1 = $_GET["F1"];
$rs = mysql_query("SELECT * FROM T1 WHERE F1=$f1") or die(mysql_error());
while ($row = mysql_fetch_array($rs, MYSQL_ASSOC)) {
    print "<tr>\n";
    print "<td>" . $row["F1"] . "</td>\n";
    print "<td>" . $row["F2"] . "</td>\n";
    print "</tr>\n";
}
mysql_free_result($rs);
?>
</table>
<?php
mysql_close($con);
?>
Avatar billede clausberg Nybegynder
22. juli 2005 - 22:58 #10
aha :-D Nu er jeg ved at fatte det.

Jeg forstår bare ikke hvorfor du skriver følgende:
$rs = mysql_query.....
hvad er $rs???

og hvad svarer:
$f1 = $_GET["F1"];
til i mit script

ellers så er jeg ved at have styr på - fedt :-D !!!!
Avatar billede arne_v Ekspert
22. juli 2005 - 23:06 #11
$rs er result set fra query

showall.php laver links:

<a href="showone.php?F1=7">7</a>

og showone.php bruger den linie til at hente værdien af F1
Avatar billede clausberg Nybegynder
22. juli 2005 - 23:13 #12
konge :-D

Nu tror jeg det virker - og du har vist fortjent de 100 point - smid en svar :-D
Avatar billede arne_v Ekspert
22. juli 2005 - 23:14 #13
svar
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