07. juli 2005 - 18:38Der er
15 kommentarer og 1 løsning
problemer til at få søgeformular til at vælge alle i gruppe
Nedenstående søgeformular virker, når man ønsker at søge efter biler.
Jeg har mulighed for at bruge kriterierne maerke, model og type.
So far so good.....
Men hvis man f.eks. ønsker at den skal vælge alle maerkene og ikke kun en... kan man ikke lave en default værdi, i de forskellige kriterier så søge formularen kan forstå at den skal tage alle med?
eks. på en søgning kunne være: maerke = alle maerker model = kadet type xl
i dette tilfælde har jeg problemet med min formular at jeg er nødt til at vælge et maerke!?
Så skal du enten lave en if-sætning der finder ud af om det er ét mærke eller alle mærker der søges efter og så lave et udtræk for de 2 muligheder. Eller du kan vælge at bruge IN() i dit SQL-udtræk. Et par eksempler:
SELECT * FROM tabel WHERE id IN(1, 2, 3) SELECT * FROM tabel WHERE id IN(1)
Hvordan sætter jeg en If struktur ind så den starter med som default at vælge alle mærkerne? Jeg kan ikke helt se hvordan der er du gør det? ------------- <select name="maerke"> <? include("config.php"); $db = mysql_connect($server, $user, $pass); mysql_select_db($database, $db);
$foresp = mysql_query("SELECT maerke, id FROM bil_maerke ORDER BY maerke"); include("config.php"); $db = mysql_connect($server, $user, $pass);
Nej, men så skal du jo tilføje et valg i din dropdown der hedder alle og som har en value der f.eks. er alle. Så kan du forespørge:
if($_POST['dropdown'] == "alle") { $foresp = mysql_query("SELECT maerke, id FROM bil_maerke ORDER BY maerke"); } else { $foresp = mysql_query("SELECT maerke, id FROM bil_maerke WHERE id = $id ORDER BY maerke"); }
En enkelt ting mangler lige at blive gjort lidt klarere for mig.
Mht if-strukturen bliver den for uoverskulig for mig, da der jo er mulighed for at alle søgemuligheder både kan antage en bestemt værdi eller have "alle"-værdien....
Var der kun tale om en enkelt kan jeg bare direkte bruge, den du viste mig, men når der nu er mange bliver det noget rod for mig!
CREATE TABLE `bil_bil` ( `id` int(11) NOT NULL auto_increment, `kategori` tinytext NOT NULL, `maerke` tinytext NOT NULL, `model` tinytext NOT NULL, `variant` tinytext NOT NULL, `type` tinytext NOT NULL, `bstof` tinytext NOT NULL, `farve` tinytext NOT NULL, `aar` tinytext NOT NULL, `km` tinytext NOT NULL, `pris` tinytext NOT NULL, `afgift` tinytext NOT NULL, `billede` tinytext NOT NULL, `billedea` tinytext NOT NULL, `billedeb` tinytext NOT NULL, `udstyr` tinytext NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
CREATE TABLE `bil_bil` ( `id` int(11) NOT NULL auto_increment, `kategori` tinytext NOT NULL, `maerke` tinytext NOT NULL, `model` tinytext NOT NULL, `variant` tinytext NOT NULL, `type` tinytext NOT NULL, `bstof` tinytext NOT NULL, `farve` tinytext NOT NULL, `aar` tinytext NOT NULL, `km` tinytext NOT NULL, `pris` tinytext NOT NULL, `afgift` tinytext NOT NULL, `billede` tinytext NOT NULL, `billedea` tinytext NOT NULL, `billedeb` tinytext NOT NULL, `udstyr` tinytext NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
$foresp = mysql_query("SELECT maerke, id FROM bil_maerke ORDER BY maerke"); while ($data = mysql_fetch_row($foresp)){ echo "<option value='$data[1]'>$data[0]</option>"; } ?> </select> <select name="model"> <? $foresp = mysql_query("SELECT model, id FROM bil_model ORDER BY model"); while ($data = mysql_fetch_row($foresp)){ echo "<option value='$data[1]'>$data[0]</option>"; } ?> </select> <select name="type"> <? $foresp = mysql_query("SELECT type, id FROM bil_type ORDER BY type"); while ($data = mysql_fetch_row($foresp)){ echo "<option value='$data[1]'>$data[0]</option>"; } ?> </select>
1. Forstår jeg ikke, virker fint her :) Kør lige koden igennem, måske jeg glemt at ændre en adgangskode eller noget lign. Jeg har jo ændret det hele til min lokale server.
2. Er jeg ikke 100% på om man kan eller ej - men du kan jo prøve. Ellers er der andre work-arounds.
3. Ja, det er helt præcis sådan det skal forstås.
Hvis der er flere problemer, især med nr. 1, så sig til, så må jeg jo lige teste det igen.
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.