webForumDet fria alternativet

Skapa meny utifrån tabell

PHP

2 svar · 485 visningar · startad av noratx

Medlem sedan feb. 200193 inlägg
Frågan#1

Hej!

Jag har suttit å sökt runt lite i forumet, men inte hittat något som verkar passa in på det jag söker, hoppas därför att någon kan hälpa mig till rätta.

Jag har en tabell som ser ut såhär:

id venue amount
1 Holgers 200
2 Nisses 100
3 Holgers 25
4 Adas 30
5 Nisses 10
6 Nisses 155

Nu vill jag bygga upp en mycket enkel sida med en dropdown meny, som vid starttillfället (utan selektering) visar outputen från "SELECT amount, SUM(amount) FROM tabell;" på sidan.

I dropdown menyn skall finnas:
Alla
Holgers
Nisses
Adas

(dessa skall altså läsas in från tabellen, inte vara hårdkodade då det kan tillkomma flera utan min omedelbara vetskap).

Vid selektering av alla skall sql satsen ändras till "SELECT venue, SUM(amount) from tabell WHERE venue = 'selekterad venue' GROUP BY venue;"

I övriga fall till "SELECT venue, SUM(amount) from tabell WHERE venue = 'selekterad venue';"

Hur jag får till detta övergår dock mitt förstånd. :(

Någon som har lust och tid att hjälpa mig lista ut det?

Medlem sedan feb. 200193 inlägg
#2

Ok, jag har lyckats lösa det.. nu har jag dock bara en fråga kvar som jag inte riktigt vet hur jag skall lösa...

Det val jag selekterar, vill jag skall visas i listan som "selected", men jag vill samtidigt att det skall försvinna ur övriga listan:

<form method="POST">
<select name="venue" onChange="submit();">
<?php
if(isset($_POST['venue']))
{
        echo "<option selected>";
        echo $_POST['venue'];
        echo "</option>";
//      echo "<option>Alla</option>";
}
else
{
        echo "<option selected>--Select Venue--</option>";
}
?>
<option>Alla</option>

<?php
mysql_connect("localhost", "username", "password") or die(mysql_error());
mysql_select_db("My_DB") or die(mysql_error());
$query = "SELECT venue FROM table GROUP BY venue ORDER BY venue ASC";
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result))

        {
                                echo "<option>$row[venue]</option>";
        }
mysql_close();
?>
</select>
</form>

Låt oss säga att jag i detta fallet väljer "Adas", då kommer min dropdown se ut som följande;
Adas (selected)
Adas
Alla
Holgers
Nisses

Hur blir hag av med den icke selekterade dubletten?

Samma blir när jag väljer "Alla",
jag kommer då ha:
Alla (selected)
Adas
Alla
Holgers
Nisses

Medlem sedan mars 2007845 inlägg
#3
if ($row[venue] != 'Alla')
{
  echo '<option>' . $row['venue'] . '</option>';
}
257 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)