Avatar billede Slettet bruger
17. april 2007 - 09:59 Der er 6 kommentarer og
1 løsning

Vælg data fra en liste fra databasen.

Hej.

Jeg har nedenstående kode, der viser en liste over nogle biografer.

Jeg kunne godt tænke mig at udvidde den liste så den kan vise en liste over film, når man klikker på en biograf.

Nå filmene så vises skal jeg have den til at vise noget info over filmen. Men jeg synes li'som jeg er kørt fast. Hvordan tilføjer man, så man kan klikke på det biografnavn der kommer frem i nedenstående. De står i en MySQL database. Det gør al info jeg skal bruge.

----------------------------------------------
<select name="biograf" multiple size="20">
<?php
do { 
?>
<option value="<?php echo $row_Biograf['id']?>"<?php if (!(strcmp($row_Biograf['id'], $row_Biograf['Biograf']))) {echo "selected=\'selected\'";} ?>><?php echo $row_Biograf['Biograf']?>
</option>
  <?php
} while ($row_Biograf = mysql_fetch_assoc($Biograf));
  $rows = mysql_num_rows($Biograf);
  if($rows > 0) {
      mysql_data_seek($Biograf, 0);
      $row_Biograf = mysql_fetch_assoc($Biograf);
  }
?>
</select>
-----------------------------------------------

Er her en der har mod på at hjælpe mig videre ?

Ole.
Avatar billede thesurfer Nybegynder
17. april 2007 - 10:23 #1
Noget i den stil:

onchange skal submitte formen
PHP: Udskriv biografer

PHP, IF-blok: hvis formen er submittet, hent alle film hvor kolonnen BIOGRAF = AflæsFraForm['biograf']
Avatar billede Slettet bruger
17. april 2007 - 10:33 #2
Jeg tror ikke jeg er helt med. Kan du skære det lidt mere ud ?

Er det ikke OnClick man skal bruge, men hvor sætter dem den ind så den virker på næste select. Er det <option onClick ...    Eller skal det stå et helt andet sted ?

Som koden er nu, viser den bare listen og de biografer der står i databasen.
Avatar billede thesurfer Nybegynder
17. april 2007 - 10:47 #3
Læg mærke til, at jeg har lavet navnene om på elementerne i formen:

<form name="frmBiograf" action="" method="post">
<select name="selBiograf" onchange="this.form.submit()">
<option value="valg_nr_et">nummer 1</option>
<option value="valg_nr_to">nummer 2</option>
</select>
</form>

Derefter kan du bruge $_POST['biograf'] til at aflæse værdien af SELECT.

Eksempel:

bio = $_POST['selBiograf'];

sql = "select * from tblFilm where biograf = " . bio; // denne er muligvis ikke helt korrekt

start en loop

- så længe at der er poster
echo "Titel: " . $row_Film['titel'] . "<br>";
echo "Beskrivelse: " . $row_Film['beskrivelse'] . "<br><br>";
- gentag loop

Det kommer lidt an på hvordan dine tabeller ser ud..
Avatar billede Slettet bruger
17. april 2007 - 15:05 #4
Hmm, jeg havde skrevet her, og send det, men det er åbenbart ikke blevet gemt.

Jeg har fået det til at virke, men bruger 3 sider til det.

Har du eller andre gode tips eller forklaringer, så hold jer endelig ikke tilbage. Det er jo sjovt at rode med :-)

Smid et svar, så jeg ikke glemmer det :-)

TAK for hjælpen. Det hjalp mig igang. Der var lige et par ting jeg ikke lige kunne overskue, men nu er det helt uoverskueligt :-)
Avatar billede thesurfer Nybegynder
17. april 2007 - 20:56 #5
Hvis du kan finde ud af at aflæse værdier fra formen, burde du kunne gøre det du vil..

I PHP bruger du bare isset, til at teste om noget er sat..
Test biograf-dropdown-værdien og se om den har en værdi.. Hvis den har det, finde alle filmene der hører til den biograf..

Se evt:
http://www.codehelp.co.uk/php/form.php
http://dk.php.net/isset

Noget i stil med:

$bio = $_POST['selBiograf'];
if (isset[$bio])
{
// brugeren har valgt en biograf.. find alle der kører i denne biograf..

strSQL = "select * from DinTabel where kolonneBiograf = '" . $bio . "'";
// opret forbindelse, hent titler og information om filmene, som du gør med biograferne
}


Jeg håber at det kan hjælpe dig videre..

Ellers må du lige beskrive din database.. dvs, kolonnenavnene og deres type (integer/tal, varchar/tekst, osv)..

- Svar.
Avatar billede Slettet bruger
17. april 2007 - 21:06 #6
Tak for hjælpen og dine yderligere kommentarer. Jeg har stadig problemer med de film hvor der er mere end en. Der kan være fire filmforestillinger med den samme film, men forskellige datoer og tidspunkter. Der kunne jeg kun få den til at vise resultat for ALLE film, men det er jo nok fordi man så også skal bruge dato og tid til søgningen. Det hav jeg ikke lige tænkt på, det kom lige nu mens jeg skriver her :-)

Men jeg roder videre. For jeg problemer så laver jeg en spørgsmål igen. Tak for hjælpen.
Avatar billede thesurfer Nybegynder
17. april 2007 - 21:57 #7
Det var så lidt.. Takker for points.. :-)
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