Avatar billede clausberg Nybegynder
14. april 2005 - 22:40 Der er 7 kommentarer og
1 løsning

SELECT FROM problemer

Hej
Jeg har problemer med at få mine scripts til at virke.

Følgende script har jeg gemt som search.htm:

<html>
<form method="post" action="http://www.xxxxx.dk/results.php" target="_blank">
<div align="center">
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td bordercolor="#000000">
<p align="center">
<select name="metode" size="1">
<option value="name">Name</option>
<option value="telephone">Telephone</option>
<option value="birthday">Birthday</option>
</select> <input type="text" name="search" size="25"> &nbsp;<br>
Search database: <input type="submit" value="Go!!" name="Go"></p>
</td>
</tr>
</table>
</div>
</form>
</html>

Følgende script har jeg gemt som results.php:

<center>
<table border="1" cellpadding="5" cellspacing="0" bordercolor="#000000">
<tr>
<td width="60"><b>id</b></td>
<td width="100"><b>name</b></td>
<td width="70"><b>telephone</b></td>
<td width="150"><b>birthday</b></td>
</tr>
<tr>
<td>
<? $hostname = "XXXXX";
$username = "XXXXX";
$password = "XXXXX";
$usertable = "details";
$dbName = "XXXXX";

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 $metode LIKE '%$search%' LIMIT 0, 50");
while ($row = @mysql_fetch_array($query))
{
$variable1=$row["id"];
$variable2=$row["name"];
$variable3=$row["telephone"];
$variable4=$row["birthday"];
//table layout for results

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

Jeg har oprettet en DB med de relevante felter i phpmyadmin og har også indlagt noget data jeg kan søge efter. Når jeg så kører scriptet, så kommer der en vindue frem med teksten "No Record Found, to search again please close this window"...

og jeg forstår ikke hvorfor??? Hjælp plz!!! :)
Avatar billede busschou Praktikant
14. april 2005 - 22:54 #1
Du har din
$query = mysql_query("SELECT * FROM details WHERE $metode LIKE '%$search%' LIMIT 0, 50");
Men mangler du ikke oven over at hente den ind fra den forige side?
altså
$search = $_POST['search']
Avatar billede busschou Praktikant
14. april 2005 - 22:57 #2
og har du et felt i databasen som hedder "$metode" ? .. vil det ikke konflikte i php med doller tegn foran?
Jeg ville foreslå dig ikke bruge det @ foran dine database ting. Det underkender jo fejlbeskeder. Dermed får du kun din egen fejlbesked i stedet for en måske mere relevant fejl besked
Avatar billede detox Nybegynder
14. april 2005 - 23:08 #3
Så det skal vel være:

$query = mysql_query("SELECT * FROM details WHERE ".$_POST['metode']." LIKE '%".$_POST['search']."%' LIMIT 0, 50");
Avatar billede clausberg Nybegynder
15. april 2005 - 09:21 #4
Hey busschou
Mange tak for dit svar - jeg rodede lidt rundt med tingene og fik det til at virke :) og tak for inputtet omkring @ funktionen - den havde jeg ikke regnet ud.

Kaster du lige et svar, som jeg kan acceptere = point til dig.

Forresten: jeg har ikke et felt i min DB der hedder metode, men umiddelbart opstår der ikke konflikter når jeg kører scriptet efter mine ændringer. Hvad står metode egentlig for??? det lyder dansk, hvor php er på engelsk.
Avatar billede busschou Praktikant
15. april 2005 - 09:32 #5
Det er din <select> som har navnet metode....men dens værdi bliver så Name eller Telephone osv
Avatar billede clausberg Nybegynder
15. april 2005 - 11:22 #6
Nå ja... selvfølgelig :-D
Tak for din hjælp - den er værdsat!
Og hermed point til dig......
Avatar billede clausberg Nybegynder
15. april 2005 - 11:26 #7
Busschou: fik du dine point??? Jeg kom vist til at afvise enten mig selv eller dig...
Og selvfølgelig skal du have dine point :-D
Avatar billede busschou Praktikant
15. april 2005 - 11:32 #8
jo tak tak :o)
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