Hallo allemaal,

Ik ben bezig met een opdracht waarin ik een zoekfunctie heb die tabellen afzoekt naar de zoekterm.

Nu moet ik een dropdown erbij programmeren die bepaald in welke tabel hij moet zoeken.

Nu is mijn vraag:
Hoe kan ik van het geselecteerde item in het dropdownmenu een variabele maken zodat ik deze in de SQL Query kan plaatsen, dus --> 'WHERE $gekozendropdownitem'.
Thomas Weber op 18/10/2010 15:32:44

Hallo allemaal,

Ik ben bezig met een opdracht waarin ik een zoekfunctie heb die tabellen afzoekt naar de zoekterm.

Nu moet ik een dropdown erbij programmeren die bepaald in welke tabel hij moet zoeken.

Nu is mijn vraag:
Hoe kan ik van het geselecteerde item in het dropdownmenu een variabele maken zodat ik deze in de SQL Query kan plaatsen, dus --> 'WHERE $gekozendropdownitem'.


Gewoon d.m.v. php sturen als POST waarde, dit opvangen en door een query scheiden..
Bedankt voor je reactie, alhoewel ik je niet helemaal snap. Ik ben niet geweldig in PHP dus je zult me even moeten helpen.

Dit is mijn code nu en bestaat uit 2 bestanden.

3.php

<title>Opdracht 3</title>

<form name="form" action="search2.php" method="get">
<input type="text" name="q" />
<input type="submit" name="Submit" value="Search" />
</form>

<?php

/***************************************************************
*
* Autheur: Joe D.S. Rubio
* Studentennummer: 08024472
*
***************************************************************/

$dbhost = 'localhost';
$dbuser = 'joe';
$dbpass = 'droe7rle';

$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Kon geen verbinding met de database maken');

$dbname = 'autogarage';
mysql_select_db($dbname);

// Dropdown maken
function dropdown( $name, array $options, $selected=null )
{
/*** begin the select ***/
$dropdown = '<select name="'.$name.'" id="'.$name.'">'."\n";

$selected = $selected;
/*** loop over the options ***/
foreach( $options as $key=>$option )
{
/*** assign a selected value ***/
$select = $selected==$key ? ' selected' : null;

/*** add each option to the dropdown ***/
$dropdown .= '<option value="'.$key.'"'.$select.'>'.$option.'</option>'."\n";
}

/*** close the select ***/
$dropdown .= '</select>'."\n";

/*** and return the completed dropdown ***/
return $dropdown;
}
?>

<form>

<?php
$name = 'my_dropdown';
$options = array( 'modelnaam', 'cc', 'kleur' );
// $selected = 0;

echo dropdown( $name, $options, $selected );

?>
</form>

<?php
// Display Merken
$sql = "SELECT * FROM merk";
$result = mysql_query ($sql);

echo "<b>Merken:</b><br />";

while ($row = mysql_fetch_array($result))
{
$field1= $row["merknaam"];

echo "$field1<br>";
}

// Display Modellen
$sql = "SELECT * FROM model";
$result = mysql_query ($sql);

echo "<br>";
echo "<b>Auto's:</b><br />";

while ($row = mysql_fetch_array($result))
{
$field1= $row["modelnaam"];
$field2= $row["cc"];
$field3= $row["kleur"];

echo "<b>Model:</b> $field1 ";
echo "<b>Cilinderinhoud:</b> $field2 ";
echo "<b>Kleur:</b> $field3 <br>";

}


?>


en de search2.php

<title>Zoekmachine</title>

<?php

/***************************************************************
*
* Autheur: Joe D.S. Rubio
* Studentennummer: 08024472
*
***************************************************************/

include '3.php';
$dbhost = 'localhost';
$dbuser = 'joe';
$dbpass = 'droe7rle';

$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Kon geen verbinding met de database maken');

$dbname = 'autogarage';
mysql_select_db($dbname);


// Variabele opvragen

$var = @$_GET['q'] ;
$trimmed = trim($var);


// Aantal rijen die worden teruggegeven
$limit=10;

// Controleer of er geen lege zoekterm is ingevoerd
if ($trimmed == "")
{
echo "<p>Geef een geldige zoekterm op!</p>";
exit;
}

// Controleer zoekparameter
if (!isset($var))
{
echo "<p>We dont seem to have a search parameter!</p>";
exit;
}





// SQL Query
$sql2 = "SELECT * FROM model WHERE $selected like \"%$trimmed%\"";
$result2 = mysql_query ($sql2);

$numresults=mysql_query($sql2);
$numrows=mysql_num_rows($numresults);

if ($numrows == 0)
{
echo "<p>Sorry, de term bij onderdeel $key: &quot;" . $trimmed . "&quot; is niet gevonden</p>";
}
else {
echo "<b>Merken:</b><br />";

while ($row = mysql_fetch_array($result2))
{
$field1= $row["merknaam"];

echo "$field1<br>";
}
}

?>


Heb je iemand anders zijn werk gejat ofzo? Ik was een lijsje met fouten aan het maken tot ik zag dat de autheurs naam != was aan de jouwe. En we moeten niks, we kunnen je wel helpen maar dan moet je er zelf wel ook wat tijd in steken. En dat wil niet zeggen het werk van je medestudenten gebruiken. Daar leer je niks van.
Dit is niet het geval, ik zit bij Thomas op kantoor en achter zijn laptop. Ik zit dus ook op zijn account van dit forum om deze vraag te stellen. Dit is toch geen probleem neem ik aan?

Er wordt hier niks gestolen of gekopieerd oid..

[size=xsmall]Toevoeging op 18/10/2010 16:25:26:[/size]

Zou iemand me aub gewoon even kunnen helpen, volgens mij is het niet veel werk maar ik kom er gewoon niet uit..
een variabele in een query typ je (althans zoals ik et doe, geen flauw idee of er verschil in zit) op deze manier: .'"$variabele"'. dus SELECT * FROM weetikveel WHERE dropdown = '".$dropdown."' ;
Dat begrijp ik maar ik zoek een manier om het gekozen item in het dropdownmenu om te zetten naar een variabele die ik dan weer in de query kan plaatsen.
Dat is basic php => $_GET['...'] of $_POST['....'].
Dat zou misschien kunnen, maar ik begrijp dus niet hoe ik dat moet toepassen.

Zou je mij het voorbeeld in de de code kunnen geven?

[size=xsmall]Toevoeging op 18/10/2010 18:20:21:[/size]

Ik krijg nu ook namelijk 2 submitbuttons, 1 van de textsearch en 1 van de dropdown. Hoe combineer ik die in 1 submitknop?
Leer eerst basic html want daar valt het formulier onder.
Bedankt voor de hulp

[size=xsmall]Toevoeging op 18/10/2010 18:33:29:[/size]

Heb nu overigens een andere dropbox gebruikt namelijk:

// Dropdown
if (!isset($_POST['submit'])) {
echo '
<form action="" method="POST">
Zoeken op:
<select name="number">
<option>modelnaam
<option>cc
<option>kleur
</select>
<br>
<input type="submit" name="submit" value="submit">
</form>
'; }
else {
if ($_POST['number'] == modelnaam) {
echo 'you chose option #1';
$onderwerp = 'modelnaam';
}

if ($_POST['number'] == cc) {
echo 'you chose option #2';
$onderwerp = 'cc';
}

if ($_POST['number'] == kleur) {
echo 'you chose option #3';
$onderwerp = 'kleur';
}
}

Nu zou ik dus $onderwerp kunnen gebruiken in de query. Hoe plaats ik hier nu nog een searchbox bij onder 1 submitknop?

Reageren