---
title: "2 selectboxar"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/119704-2-selectboxar"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Thistel"
published: "2005-01-09T20:43:27.000Z"
updated: "2005-01-13T20:36:55.000Z"
replies: 29
views: 557
page: 1
pages: 2
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/119704-2-selectboxar"
---

# 2 selectboxar

_Sida 1 av 2._

## #1 — Thistel, 2005-01-09T20:43Z

Om man har 2 selectboxar på sidan "foo" och "flo". Hur gör man i koden för att sql-satsen skall köra antingen värdet från "flo"eller "foo" selectboxen?

```
<form action="?" method="post">
<select name="foo">
<option value="bar1">Värde 1</option>
<option value="bar2">Värde 2</option>
<option value="bar3">Värde 3</option>
<option value="bar4">Värde 4</option>
</select>
<input type="submit" value="Skicka!">
</form>
]<form action="?" method="post">
<select name="flo">
<option value="bar1">Värde 1</option>
<option value="bar2">Värde 2</option>
<option value="bar3">Värde 3</option>
<option value="bar4">Värde 4</option>
</select>
<input type="submit" value="Skicka!">
</form>

<?php
if(isset($_POST['foo']){
$result = mysql_query('select * from tabell where foo = ' . $_POST['foo']);
//osv..
}
?>
```

Permalänk: https://www.webforum.nu/p/119704

## #2 — Snakes, 2005-01-10T11:53Z

```php
<?php
if(isset($_POST['foo']){
$result = mysql_query('select * from tabell where foo = ' . $_POST['foo']);
osv..
} elseif(isset($_POST['flo']){
$result = mysql_query('select * from tabell where foo = ' . $_POST['flo']);
osv..
}
?>
```

om jag förstått dig rätt

Permalänk: https://www.webforum.nu/p/1524603

## #3 — Thistel, 2005-01-10T12:22Z

Ja nästan. Tanken är rätt :) men kan man inte få in värdet från båda selectboxarna till samma sql sats?

Permalänk: https://www.webforum.nu/p/1524624

## #4 — Snakes, 2005-01-10T13:33Z

```php
<?php

if(isset($_POST['foo'])) {
$value = $_POST['foo'];
} elseif(isset($_POST['flo'])) {
$value = $_POST['flo'];
}

if(!empty($value){
$result = mysql_query('select * from tabell where foo = ' . $value);
osv..
}
?>
```

Permalänk: https://www.webforum.nu/p/1524675

## #5 — aasah, 2005-01-10T14:32Z

> **Thistel skrev:**
>
> Ja nästan. Tanken är rätt :) men kan man inte få in värdet från båda selectboxarna till samma sql sats?

Hur menar du? :q Endast en av dem kommer att skickas iväg och ha ett värde på nästa sida. Eftersom endast en kommer att "submittas". 

Om du vill att båda selectboxarna ska skickas iväg med värden i får du lägga dem i samma form. Alltså:

```
<form action="?" method="post">
<select name="foo">
<option value="bar1">Värde 1</option>
<option value="bar2">Värde 2</option>
<option value="bar3">Värde 3</option>
<option value="bar4">Värde 4</option>
</select>
<BR>
<select name="flo">
<option value="bar1">Värde 1</option>
<option value="bar2">Värde 2</option>
<option value="bar3">Värde 3</option>
<option value="bar4">Värde 4</option>
</select>
<input type="submit" value="Skicka!">
</form>
```

Permalänk: https://www.webforum.nu/p/1524712

## #6 — Thistel, 2005-01-10T18:32Z

Mja. Tanken är att värdet ur "foo" eller ur "flo" skall skickas in i sql frågan på nästa sida för at lista upp resultatet därefter.
Så här prova jag med Snakes kod men det funkar inte.

```php
$sql = 'SELECT tbl_37.Serial, tbl_colors.Colors, tbl_37_version.Version, tbl_37.In_service, tbl_37.Withdrawn, tbl_unit.Unit, tbl_37.Latest_code, tbl_37.Previous_codes, tbl_status.Status, tbl_37.Note, tbl_37_picture.Picture'
        . ' FROM tbl_37, tbl_colors, tbl_37_version, tbl_unit, tbl_status, tbl_37_picture'
        . ' WHERE ( ( tbl_colors.ColorsID = tbl_37.Colors ) AND ( tbl_unit.UnitID = tbl_37.Unit ) AND ( tbl_status.StatusID = tbl_37.Status ) AND ( tbl_37_picture.Serial = tbl_37.Serial ) AND ( tbl_37_version.VersionID = tbl_37.Version AND (( tbl_37.Version =  $value )OR ( tbl_37.Unit =  $value2 ) ) ) ORDER BY tbl_37.Serial '; 

if(isset($_POST['foo'])) {
$value = $_POST['foo'];
} elseif(isset($_POST['flo'])) {
$value2 = $_POST['flo'];
}
if(!empty($value){
$result = mysql_query("$sql");} 

?>

<table cellspacing="0" cellpadding="0" >
 <?
while ($rad = mysql_fetch_array("$result")) {
$bgColor = (++$i & 1) ? '#f6f7f7' : '#ffffff';

echo "<tr bgcolor=\"$bgColor\"> 
{
```

Permalänk: https://www.webforum.nu/p/1524841

## #7 — aasah, 2005-01-10T20:10Z

Du måste sätta värdet innan du kan använda det! Byt plats på if-satsen och tilldelningen av $sql. Nu har $value inget värde när den används ==\> får värdet "" (tom sträng). EFTER det får $value ett värde, men $sql's värde ändras inte.

Permalänk: https://www.webforum.nu/p/1524898

## #8 — Thistel, 2005-01-10T20:45Z

Ah..sant. Dock får jag parse error på sql satsen.

Permalänk: https://www.webforum.nu/p/1524920

## #9 — aasah, 2005-01-10T20:58Z

Får du parse error av PHP eller från databasen?

Vilken typ av värde har $value? Tal eller annat?

Om det **inte** är siffror måste value omgärdas av ' (till databasen) varvid det enklaste är att ersätta de yttre strängindikatorerna för PHP med ", alltså typ:

"SELECT tel FROM T WHERE Namn = '$namn' ";

Permalänk: https://www.webforum.nu/p/1524931

## #10 — Thistel, 2005-01-10T22:02Z

Det är parse error från php.
den gillar inte { i 
if(!empty($value){
$result = mysql_query........}

Permalänk: https://www.webforum.nu/p/1524958

## #11 — Steady, 2005-01-11T08:55Z

```
if(!empty($value)) {
$result = mysql_query........}
```

Permalänk: https://www.webforum.nu/p/1525100

## #12 — Thistel, 2005-01-11T09:09Z

Hmm..nu får jag ett nytt fel på mysql_fetch_array. "supplied argument is not a valid"

Permalänk: https://www.webforum.nu/p/1525108

## #13 — Steady, 2005-01-11T10:25Z

Testa med

```
while ($rad = mysql_fetch_array($result)) {
```

Permalänk: https://www.webforum.nu/p/1525146

## #14 — Thistel, 2005-01-11T10:26Z

$sql = 'SELECT tbl_37.Serial, tbl_colors.Colors, tbl_37_version.Version, tbl_37.In_service, tbl_37.Withdrawn, tbl_unit.Unit, tbl_37.Latest_code, tbl_37.Previous_codes, tbl_status.Status, tbl_37.Note, tbl_37_picture.Picture'
        . ' FROM tbl_37, tbl_colors, tbl_37_version, tbl_unit, tbl_status, tbl_37_picture'
        . ' WHERE ( ( tbl_colors.ColorsID = tbl_37.Colors ) AND ( tbl_unit.UnitID = tbl_37.Unit ) AND ( tbl_status.StatusID = tbl_37.Status ) AND ( tbl_37_picture.Serial = tbl_37.Serial ) AND ( tbl_37_version.VersionID = tbl_37.Version AND (( tbl_37.Version =  $value )OR ( tbl_37.Unit =  $value2 ) ) ) ORDER BY tbl_37.Serial '; 

if(isset($\_POST\['foo'\])) {
$value = $\_POST\['foo'\];
} elseif(isset($\_POST\['flo'\])) {
$value2 = $\_POST\['flo'\];
}
if(!empty($value){
$result = mysql_query("$sql");} 

?\>

\<table cellspacing="0" cellpadding="0" \>
 \<?
while ($rad = mysql_fetch_array("$result")) {
$bgColor = (++$i & 1) ? '#f6f7f7' : '#ffffff';

echo "\<tr bgcolor=\\"$bgColor\\"\> 
{

Permalänk: https://www.webforum.nu/p/1525147

## #15 — Steady, 2005-01-11T10:27Z

Kolla min redigering

Permalänk: https://www.webforum.nu/p/1525149

## #16 — Thistel, 2005-01-11T10:29Z

får samma fel med eller utan ". Har även testat med ' istället.

Permalänk: https://www.webforum.nu/p/1525153

## #17 — Steady, 2005-01-11T10:32Z

Okej, nu ska vi få lite klarhet i det. Såhär har du det nu.

```
if(isset($_POST['foo'])) {
$value = $_POST['foo'];
} elseif(isset($_POST['flo'])) {
$value2 = $_POST['flo'];
}
if(!empty($value){
$result = mysql_query("$sql");} 

?>

<table cellspacing="0" cellpadding="0" >
<?
while ($rad = mysql_fetch_array("$result")) {
$bgColor = (++$i & 1) ? '#f6f7f7' : '#ffffff';

echo "<tr bgcolor=\"$bgColor\"> 
{
```

Om du iställer skriver

```
if(isset($_POST['foo'])) {
    $value = $_POST['foo'];
} elseif(isset($_POST['flo'])) {
    $value2 = $_POST['flo'];
}
if(!empty($value)){
    $result = mysql_query($sql);
}
?>

<table cellspacing="0" cellpadding="0" >
<?
while ($rad = mysql_fetch_array("$result")) {
$bgColor = (++$i & 1) ? '#f6f7f7' : '#ffffff';

echo "<tr bgcolor=\"$bgColor\">;
```

Förstår inte va den sista klamrern gör? ({)

Permalänk: https://www.webforum.nu/p/1525155

## #18 — Thistel, 2005-01-11T10:37Z

Den sista { är till kod som följer sedan. Den kom med av misstag bara. SQL satsen skall ligga efter if satsen med. Har inte nyaste koden här där jag är just.

Permalänk: https://www.webforum.nu/p/1525161

## #19 — Snakes, 2005-01-11T17:49Z

Vad får du för fel? och Infoga den **nyaste** koden är du snäll!

Permalänk: https://www.webforum.nu/p/1525448

## #20 — Thistel, 2005-01-11T21:01Z

Så här har jag den nu:

```php
<?

$länk = @mysql_connect("localhost", "root")
or die ("Kunde inte ansluta! Är MySQL igång?");
$databas = mysql_select_db("swaf");

if(isset($_POST['foo'])) {
$value = $_POST['foo'];
} 
elseif(isset($_POST['flo'])) {
$value2 = $_POST['flo'];
}
if(!empty($value))
{
$result = mysql_query('SELECT tbl_37.Serial, tbl_colors.Colors, tbl_37_version.Version, tbl_37.In_service, tbl_37.Withdrawn, tbl_unit.Unit, tbl_37.Latest_code, tbl_37.Previous_codes, tbl_status.Status, tbl_37.Note, tbl_37_picture.Picture'
        . ' FROM tbl_37, tbl_colors, tbl_37_version, tbl_unit, tbl_status, tbl_37_picture'
        . ' WHERE ( ( tbl_colors.ColorsID = tbl_37.Colors ) AND ( tbl_unit.UnitID = tbl_37.Unit ) AND ( tbl_status.StatusID = tbl_37.Status ) AND ( tbl_37_picture.Serial = tbl_37.Serial ) AND ( tbl_37_version.VersionID = tbl_37.Version)) AND (( tbl_37.Version =  $value )OR ( tbl_37.Unit =  $value2 ) )  ORDER BY tbl_37.Serial ' )
;
} 

?>

<table cellspacing="0" cellpadding="0" >
 <?
while ($rad = mysql_fetch_array("$result"))
{
$bgColor = (++$i & 1) ? '#f6f7f7' : '#ffffff';

echo "<tr bgcolor=\"$bgColor\"> 
    <td class=\"databastextBold\" width=\"90\" valign=\"top\">Serial</td>
    <td class=\"faktatext\" width=\"100\" valign=\"top\">".$rad["Serial"]."</td></tr>";
}
?>

</table>
<?
mysql_close($länk);
?>
```

 

Får fortfarande fel på raden med while($rad . $result får rätt värde iform av siffra.

Permalänk: https://www.webforum.nu/p/1525556

---

Tråden på webben: https://www.webforum.nu/amne/php/119704-2-selectboxar  
Nästa sida: https://www.webforum.nu/amne/php/119704-2-selectboxar/page2.md
