jeg har to tabeller, hvorfra jeg skal hente data - helst ad EN omgang. Det foregår på den måde, at man klikker på en gruppe (tabellen grupper), og på basis af det valg skal man så hente de billeder (tabellen billeder) der: 1) er aktive, 2) er tilknyttet den valgte gruppe, 3) er på det valgte niveau.
Som du nok kan regne ud er der altså flere niveauer (levels) i strukturen, og der skal ved hvert klik kun vises de data der er aktuelle for dels den valgte gruppe, dels det valgte niveau.
Tabellerne ser sådan her ud: CREATE TABLE `grupper` ( `id` int(11) NOT NULL auto_increment, `gruppenavn` varchar(40) NOT NULL default '', `level` int(11) NOT NULL default '0', `parent_id` int(11) NOT NULL default '0', `aktiv` enum('1','0') NOT NULL default '1', PRIMARY KEY (`id`) ) TYPE=MyISAM AUTO_INCREMENT=20 ;
CREATE TABLE `billeder` ( `id` int(11) NOT NULL auto_increment, `tekst` varchar(50) NOT NULL default '', `gruppeid` int(11) NOT NULL default '0', `billede_l` varchar(50) NOT NULL default '', `billede_h` varchar(50) NOT NULL default '', `pris` decimal(6,2) NOT NULL default '0.00', `aktiv` enum('1','0') NOT NULL default '1', PRIMARY KEY (`id`) ) TYPE=MyISAM AUTO_INCREMENT=8 ;
Jeg kan bare ikke få det til at virke!!!! PFT. Steen
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Du skal blot join'e de to tabeller på grupper.id og billeder.gruppeid (hvis gruppeid i billeder tabellen er en foreign key fra grupper tabellen). Derefter selecter du fra den joinede tabel.
SELECT * FROM grupper INNER JOIN billeder ON grupper.id = billeder.gruppeid WHERE grupper.aktiv = 1 and level = @level
Noget lignende ovenstående. Level leverer du til queryen som variabel og aktiv går jeg ud fra er defineret i grupper tabellen. Hvorfor har du ellers aktiv i både billeder og grupper tabellen?
Den melder fejl i midterste linie $q_fp = mysql_query("SELECT * FROM grupper INNER JOIN billeder ON grupper.id = billeder.gruppeid WHERE grupper.aktiv = 1 AND level = @level"); while($vis_fp = mysql_fetch_assoc($q_fp)) { echo $vis_fp[gruppenavn];
Man kan godt slå en hel gruppe fra at blive vist i shoppen, men det kan være at det kun er det ene billede og ikke resten af gruppen, der skal slås fra - derfor de to aktiv felter.
Ja det er nu ikke så let at svare på, hvad giver den fejl...kan være 1000 ting.
Men hvordan angiver du @level i koden? @level er en variabel i SQL koden. Dvs. svarer til $level i php hvor du så har angivet $level til en valid værdi.
Level kan hentes fra url'en - altså med $_GET[level]
Har aldrig brugt @level på den måde du bruger det, så jeg har også prøvet med ovennævnte i stedet... Det virker ikke det skidt :-(
Synes godt om
Ny brugerNybegynder
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.