Avatar billede brianmilan Juniormester
11. januar 2006 - 08:29 Der er 11 kommentarer og
1 løsning

Lave database-record om til billede

Hej,

Jeg har et lille problem :-) I mit PHP dokument, har jeg en over skrift der hedder f.eks. Premiere film i Januar 2006, hvor den tager Januar 2006 fra min MySQL database, den har jeg sat til at blive styret via MONTH NOW() Men kan jeg i stedet lave det sådan at den tager et JPEG billede og viser det? Jeg har lavet et billede hvor der står Januar 2006, det er fordi at jeg kan få nogle flere effekter med et billede end hvis det bliver skrevet rent ud.

Venlige hilsner Brian
Avatar billede avminarm Juniormester
11. januar 2006 - 15:54 #1
du kan lave en switch:

switch($row['maaned']){ // $row['maaned'] er dit database udtræk
  case '06-01': // eller hvilket format din måned kommer ud i
    $dato = '<img scr="januar 2006.jpeg" ....>';
  break;
  case '06-02': // eller hvilket format din måned kommer ud i
    $dato = '<img scr="februar 2006.jpeg" ....>';
  break;

osv.
}
Avatar billede brianmilan Juniormester
11. januar 2006 - 21:54 #2
Hej avminarm,

Jeg kan desværre ikke få det til at virke, den kommer ikke med nogen fejl, men den viser ikke billedet... Ved du hvad det evt. kan være?
Avatar billede avminarm Juniormester
11. januar 2006 - 22:04 #3
det er svært at sige - jeg kender ikke din database struktur - eller hvad dine billed filer hedder - vis evt. et dump af din DB struktur + hvad fejl du får?
Avatar billede brianmilan Juniormester
11. januar 2006 - 22:52 #4
Min database struktur på tabellen Premiere_film ser sådan ud:

--
-- Table structure for table `premiere_film`
--

CREATE TABLE `premiere_film` (
  `Premiere_Film_ID` int(10) unsigned NOT NULL auto_increment,
  `Premiere_Titel` varchar(150) NOT NULL default '',
  `Premiere_Dato` date NOT NULL default '0000-00-00',
  `Premiere_Titel_DK` varchar(150) NOT NULL default '',
  `Website` varchar(60) default NULL,
  `maaned` date default NULL,
  PRIMARY KEY  (`Premiere_Film_ID`),
  KEY `Premiere_Titel` (`Premiere_Titel`),
  KEY `Premiere_Dato` (`Premiere_Dato`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;

--
-- Dumping data for table `premiere_film`
INSERT INTO `premiere_film` VALUES (1, 'The Island', '2006-01-10', 'The Island', NULL, NULL);
INSERT INTO `premiere_film` VALUES (2, 'Dark Water', '2006-01-11', 'Dark Water', NULL, NULL);
INSERT INTO `premiere_film` VALUES (3, 'The Amityville Horror', '2006-01-23', 'The Amityville Horror', NULL, NULL);
INSERT INTO `premiere_film` VALUES (4, 'Charlie And The Choclate Factory', '2006-01-24', 'Charlie Og Chokoladefabrikken', NULL, NULL);
INSERT INTO `premiere_film` VALUES (5, 'Bewitched', '2006-01-24', 'Forhekset', NULL, NULL);
INSERT INTO `premiere_film` VALUES (6, 'Kejserens Nye Flip 2 - Kronks Nye Flip', '2006-01-11', 'Kejserens Nye Flip 2 - Kronks Nye Flip', NULL, NULL);
Avatar billede brianmilan Juniormester
11. januar 2006 - 22:58 #5
Ups, jeg glemte at skrive at jeg ikke får nogen fejl...
Min PHP kode ser sådan ud:

<?php

switch($row['Premiere_Dato']){
case '2006-01-01':
  $dato = '<img src="Web_Grafik/Januar_2006.jpg">';
break;
}
?>
Avatar billede avminarm Juniormester
12. januar 2006 - 09:21 #6
måske kan det være en god ide at dele datoen op - du har jo ikke brug for selve datoen - men kun måneden (og du har ingen film den 1/1-06 - prøv med:

<?php
$splitDato = explode("-", $row['Premiere_Dato']);
$yyyymm = $splitDato[0]."-".$splitDato[1];
switch($yyyymm){
case '2006-01':
  $dato = '<img src="Web_Grafik/Januar_2006.jpg">';
break;
}
?>
Avatar billede brianmilan Juniormester
12. januar 2006 - 10:35 #7
Det er vildt underligt... den vil ikke, jeg har tilføjet en del hvor den henter "Premiere_Dato" fra databasen.

<?php       
$rows = mysql_query("SELECT Premiere_Dato FROM premiere_film");

$row = mysql_fetch_row($rows);
$Premiere_Dato    = $row[0];

$splitDato = explode("-", $row['Premiere_Dato']);
$yyyymm = $splitDato[0]."-".$splitDato[1];
switch($yyyymm){
case '2006-01':
  $dato = '<img src="Web_Grafik/Januar_2006.jpg">';
break;
}
?>
Avatar billede avminarm Juniormester
12. januar 2006 - 11:17 #8
du skal rette under split dato og burde du ikke køre det i en while løkke?

<?php       
$rows = mysql_query("SELECT Premiere_Dato FROM premiere_film");

$row = mysql_fetch_row($rows);
$Premiere_Dato    = $row[0];

$splitDato = explode("-", $Premiere_Dato); //<- HER
$yyyymm = $splitDato[0]."-".$splitDato[1];
switch($yyyymm){
case '2006-01':
  $dato = '<img src="Web_Grafik/Januar_2006.jpg">';
break;
}
?>
Avatar billede brianmilan Juniormester
12. januar 2006 - 12:05 #9
Tak, det lyder alletiders :-)  hvor ville du sætte While - løkken?
Avatar billede avminarm Juniormester
12. januar 2006 - 13:00 #10
<?php       
$rows = mysql_query("SELECT Premiere_Dato FROM premiere_film") or die (mysql_error()); //die+mysql_error() er altid en god ide

while($row = mysql_fetch_array($rows)){ //ændrer til er array
  $Premiere_Dato    = $row['Premiere_Dato'];

  $splitDato = explode("-", $Premiere_Dato);
  $yyyymm = $splitDato[0]."-".$splitDato[1];
  switch($yyyymm){
    case '2006-01':
      $dato = '<img src="Web_Grafik/Januar_2006.jpg">';
    break;
    // fortsæt selv resten af rækken her under
  }
  echo $dato; //udskriver månedsbilledet billedet
}
?>
Avatar billede brianmilan Juniormester
12. januar 2006 - 13:10 #11
Tusinde tak for hjælpen, det virker perfekt :-)
Avatar billede avminarm Juniormester
12. januar 2006 - 14:34 #12
det var da dejligt ;o) og tak 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