Avatar billede Jakie Juniormester
25. april 2012 - 23:20 Der er 7 kommentarer og
1 løsning

MYSQLI - hjælp med udtræk fra databasen på en bestemt måde?

Hej.

Jeg skal igang med at lave to forskellige udtræk fra min database med mysqli prepare statement.

Ud fra disse 4 tabeller:
`posts` (
  `post_id` int(8) NOT NULL auto_increment,
  `post_content` text collate utf8_danish_ci NOT NULL,
  `post_date` datetime NOT NULL,
  `post_topic` int(8) NOT NULL,
  `post_by` int(8) NOT NULL,
  `posts_cat` int(11) NOT NULL,
  `posts_cat_page` int(11) NOT NULL,
  PRIMARY KEY  (`post_id`),
  KEY `post_topic` (`post_topic`),
  KEY `post_by` (`post_by`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci AUTO_INCREMENT=121 ;¨



`topics` (
  `topic_id` int(8) NOT NULL auto_increment,
  `topic_subject` varchar(255) collate utf8_danish_ci NOT NULL,
  `topic_date` datetime NOT NULL,
  `topic_cat` int(8) NOT NULL,
  `topic_by` int(8) NOT NULL,
  `topic_page_cat` int(11) NOT NULL,
  `images` varchar(10000) collate utf8_danish_ci NOT NULL,
  PRIMARY KEY  (`topic_id`),
  KEY `topic_cat` (`topic_cat`),
  KEY `topic_by` (`topic_by`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci AUTO_INCREMENT=88 ;


CREATE TABLE IF NOT EXISTS `brugere` (
  `id` int(11) NOT NULL auto_increment,
  `name` varchar(40) collate utf8_danish_ci NOT NULL,
  `email` varchar(80) collate utf8_danish_ci NOT NULL,
  `password` varchar(100) collate utf8_danish_ci NOT NULL,
  `name_level` int(3) NOT NULL,
  `blog_over` text collate utf8_danish_ci NOT NULL,
  `blog_left` text collate utf8_danish_ci NOT NULL,
  `blog_right` text collate utf8_danish_ci NOT NULL,
  PRIMARY KEY  (`id`),
  UNIQUE KEY `name_unique` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci AUTO_INCREMENT=51 ;

`categories` (
  `cat_id` int(8) NOT NULL auto_increment,
  `cat_name` varchar(255) collate utf8_danish_ci NOT NULL,
  `cat_description` varchar(255) collate utf8_danish_ci NOT NULL,
  `page_cat` int(3) NOT NULL,
  `images` varchar(1000) collate utf8_danish_ci NOT NULL,
  PRIMARY KEY  (`cat_id`),
  UNIQUE KEY `cat_name_unique` (`cat_name`),
  KEY `page_cat` (`page_cat`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci AUTO_INCREMENT=15 ;



Som sagt bruges der mysqli prepare statement. Det jeg gerne vil er, først:
Udskrive en fra post, altså så den samme post ikke bliver vist igen og igen, men samtidig skal Limit til sidst i sætningen være ?, ?, da der skal være plads til mit pagination-system.
- Så der skal udhentes følgende, men kun én gang for tråd:
- topics.topic_id
- brugere.name
- brugere.id
- posts.post_content
- posts.post_date
- topics.topic_date
- antal rows i den specifikke tråd - altså ud fra posts.

Nummer to, skal jeg igen have limit ?,?, så mit pagination-system virker. Her skal jeg have følgende, så igen, at tråden vises én gang - denne gang er det dog topics, som bestemmer rækkefølgen og ikke posts. Følgende skal ud:
- topics.topic_id
- topics.image
- topics.topic_cat
- topics.topic_name
- topics.topic_date
- posts.post_content(den første)
- categories.cat_name


Jeg har sat 200 point til hjælp.


På forhånd tak for hjælpen.
Avatar billede Jakie Juniormester
25. april 2012 - 23:22 #1
Det skal siges at det selvfølgelig skal ske i en while, så der er 15 poster pr. side.

I skal selvfølgelig ikke lave det for mig, men har brug for hjælp og pegning for, hvor jeg skal imod..

På forhånd tak for hjælpen
Avatar billede tobrukDk Novice
25. april 2012 - 23:34 #2
Avatar billede Jakie Juniormester
26. april 2012 - 09:57 #3
DEt kan jeg ikke bruge til noget - problemet er ikke at lave en mysqli prepare statement.

Problemet er hvordan det skak bygges op min inner select osv..
Avatar billede Jakie Juniormester
26. april 2012 - 09:58 #4
hvor der er en limit 1 på posten. :)

Det er det, som volder mig problemer.
Avatar billede tobrukDk Novice
26. april 2012 - 10:15 #5
jeg kigger lige på senere i dag, men jeg tror ikke at jeg kan finde problem da jeg er meget ny, :D
Avatar billede tobrukDk Novice
26. april 2012 - 16:33 #6
Hvis jeg har forstår det rigtigt så vil du gerne have at det er kun 1 ting som kommer ud af databasen???
Avatar billede Jakie Juniormester
26. april 2012 - 17:31 #7
Nej ikke helt :)

Siden er et overblik over en masse emner, som er listet på en lang liste, hvor jeg har et pagination-system til det, så man kan bladre videre

Sver emne har sit eget lille felt - man trykker på den og kommer til emnet.

Det er meningen at listen skal indeholde overskrift, en lille smugle af børdteksten, dato, hvem der har oprettet den. Det skulle samlet være følgende felter:
- topics.topic_id
- brugere.name
- brugere.id
- posts.post_content
- posts.post_date
- topics.topic_date

JEg kan sagtens få listen ud så det virker, men det er uden post_content.

Problemet er så at jeg ikke kan få min enkelte start-post ud, så det kun er en enkelt post_content, som bliver vist med resten - i den lange liste.
Avatar billede Jakie Juniormester
19. maj 2012 - 21:39 #8
Svar.
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
Computerworld tilbyder specialiserede kurser i database-management

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