Avatar billede clausberg Nybegynder
06. juni 2005 - 22:22 Der er 2 kommentarer og
1 løsning

Select From - hjælp!

Hej :)
Jeg er ved at lave en hjemmeside, hvor jeg vil samle alle mine madopskrifter. For at søge i databasen har jeg lavet følgende søgeformular:

<html>
<form method="post" action="http://www.xxxxxxxxxxxx.dk/results.php" target="_blank">
<div><p>
<label for="t1">Søgeord:</label><input type="text" name="Navn" id="t1" /><br>
<label for="t1">Kategori:</label><select name="Kategori" id="t1" size="1">
<option value="alle">Alle</option>
<option value="brunch">Brunch</option>
<option value="saucer">Saucer</option>
<option value="dessert">Dessert</option>
</select>
<br>
<label for="t1">Ingredienser:</label><input type="text" name="Ingredienser" id="t1">
<br>
<label for="t1">Land:</label><select name="Land" id="t1" size="1">
<option value="alle">Alle</option>
<option value="italien">Italien</option>
<option value="frankrig">Frankrig</option>
<option value="tyrkiet">Tyrkiet</option>
</select>
<br>
<label for="t1">Kuverter:</label><select name="Kuverter" id="t1" size="1">
<option value="alle">Alle</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="4">4</option>
</select>
<br>
</div>
Search database: <input type="submit" value="Go!!" name="Go">
</form>                   
</html>

For at gøre det hele mere overskueligt, har jeg udeladt CSS koderne.

Den fil der henvises til i 1. linie (results.php) ser sådan ud:

<center>
<table border="1" cellpadding="5" cellspacing="0" bordercolor="#000000">
<tr>
<td width="60"><b>id</b></td>
<td width="100"><b>Søgeord</b></td>
<td width="70"><b>kategori</b></td>
<td width="150"><b>ingredienser</b></td>
<td width="70"><b>land</b></td>
<td width="70"><b>kuverter</b></td>
</tr>
<tr>
<td>
<? $hostname = "localhost";
$username = "xxxxxxxxxxxx"; // The username you created for this database.
$password = "xxxxxxxxxxx"; // The password you created for the username.
$usertable = "details"; // The name of the table you made.
$dbName = "xxxxxxxxxxxx"; // This is the name of the database you made.

MYSQL_CONNECT($hostname, $username, $password) OR DIE("DB connection unavailable");
@mysql_select_db( "$dbName") or die( "Unable to select database");
?>
<?
//error message (not found message)begins
$XX = "No Record Found, to search again please close this window";
//query details table begins
$query = mysql_query("SELECT * FROM details WHERE ".$_POST['navn']." LIKE '%".$_POST['search']."%' LIMIT 0, 50");
while ($row = @mysql_fetch_array($query))
{
$variable1=$row["id"];
$variable2=$row["søgeord"];
$variable3=$row["kategori"];
$variable4=$row["ingredienser"];
$variable5=$row["land"];
$variable6=$row["kuverter"];
//table layout for results

print ("<tr>");
print ("<td>$variable1</td>");
print ("<td>$variable2</td>");
print ("<td>$variable3</td>");
print ("<td>$variable4</td>");
print ("<td>$variable5</td>");
print ("<td>$variable6</td>");
print ("</tr>");
}
//below this is the function for no record!!
if (!$variable1)
{
print ("$XX");
}
//end
?>
</table>
</center>

Jeg er kommet så langt ind til videre:

Hvis en bruger af siden KUN søger på navn (fx banankage), og undlader at udfylde alle de andre felter, så skal jeg vel skrive:
$query = mysql_query("SELECT * FROM details WHERE `navn` LIKE '%".$_POST['navn']."%' LIMIT 0, 50") or die (mysql_error());

Hvis nu den samme bruger leder efter en helt specifik opskrift, og derfor gør brug af alle felter, så skal jeg vel bare bruge AND eller OR - det har jeg også styr på.

Men mit store problem er, at jeg ikke ved HVOR jeg skal skrive det?????? Jeg går ud fra at det er i den fil mit script refererer til - altså filen results.php (eller hvad????)

Men jeg ved ikke hvordan jeg skal skrive selve scriptet således at det kan søge i DB både når brugeren kun søger via "navn", men også når brugeren vælger at benytte alle felter (navn, ingredienser, land)

Help plz :)
-Claus
Avatar billede clausberg Nybegynder
06. juni 2005 - 22:41 #1
Ved godt at der er problemer med print funktionen - den skal i bare ignorere - det er selve sqlquery sætningen der volder mig big time trouble
Avatar billede clausberg Nybegynder
07. juni 2005 - 08:59 #2
...
Avatar billede clausberg Nybegynder
07. juni 2005 - 23:59 #3
intet 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