Avatar billede daki Juniormester
31. juli 2003 - 15:12 Der er 11 kommentarer og
1 løsning

Vise billede med linkref.

$kolonner  = 3;
$tablewidth = 400;
$cellwidth  = (int) ($tablewidth / $kolonner);

$sql="select * from medlemmer order by navn";
$result=@mysql_query($sql,$db);
$antal=mysql_result(mysql_query('select count(*) from medlemmer'),0);
$myrow = @mysql_fetch_array($result);

if (!$antal)
  {
  echo 'Desværre ingen billeder!';
  }
else
  {
  $tmp = "<table width=$tablewidth>\n\t<tr>\n";
  for ($i=0; $i < $antal; $i++)
      {
      if (!($i%$kolonner) && $i>0 && $i<$antal) //problem med tom startrække og potentiel tom slutrække fikset
        {
        $tmp .= "\t</tr>\n\t<tr>\n";
        }
      list($image) = mysql_fetch_row($result);
      $tmp .= "\t\t<td width=\"$cellwidth\">$image</td>\n";
      }
    for ($i=0;$i<$kolonner-($antal%$kolonner);$i++)
      {
      $tmp .= "\t\t<td width=\"$cellwidth\">&nbsp;</td>\n";
      }
  $tmp .= "\t</tr>\n</table>";
  echo $tmp;
  }
?>

Jeg har fundet dette script her på exp. (har rettet lidt i det)
Det fungere fint, men det viser kun id-nr.

Hvordan får jeg det til at vise et billede fra en mappe med linkref. ud fra et felt i posten (navnet på billedefilen).
Avatar billede avminarm Juniormester
31. juli 2003 - 15:44 #1
hvordan ser din tabel ud
Avatar billede daki Juniormester
31. juli 2003 - 15:50 #2
Min tabel ser sådan ud.

CREATE TABLE medlemmer (
  id int(11) NOT NULL auto_increment,
  navn varchar(255) default NULL,
  url varchar(255) default NULL,
  billede varchar(255) default NULL,
  PRIMARY KEY  (id)
) TYPE=MyISAM;
Avatar billede avminarm Juniormester
01. august 2003 - 09:04 #3
prøv med at rette denne linie:
$tmp .= "\t\t<td width=\"$cellwidth\">$image</td>\n";

til:
$tmp .= "\t\t<td width=\"$cellwidth\"><img src=\"".$myrow['url']."\"></td>\n";
Avatar billede daki Juniormester
01. august 2003 - 09:53 #4
Tak, det hjalp mig lidt på vej.
Men det jeg skal bruge er:

Vis billede fra mappen 'billeder' med filnavnet svarende til teksten i feltet 'billede'.

Håber det var bedre forklaret.
Avatar billede avminarm Juniormester
01. august 2003 - 10:17 #5
noget i den her stil måske:

$tmp .= "\t\t<td width=\"$cellwidth\"><img src=\"".$myrow['url']."/".$myrow['billede']."\"></td>\n";

hvis jeg var dig ville jeg lægge hele stien til billedet op i url og så droppe 'billede'
Avatar billede daki Juniormester
01. august 2003 - 11:33 #6
1. Jeg har en upload-script, hvor jeg indtaster et navn, url t/navn og vælger en billedefil, som uploades til mappen billeder.
2. I tabellen er der nu en række med navn, url og filnavn.

Upload-scriptet er her:
  define('BILLEDE_DIR', '/apache/htdocs/www/billeder/');
  if (move_uploaded_file($_FILES['billede']['tmp_name'], BILLEDE_DIR.$_FILES['billede']['name']))
      {
      $billede = $_FILES['billede']['name'];
      }
  else
      {
      $billede = "intetbillede.gif";
      }

Kan du tilføje, så hele stien kommer med ?
Avatar billede daki Juniormester
01. august 2003 - 11:49 #7
Jeg har fået tilføjet hele stien i feltet billede, men når jeg bruger dit forslag får jeg bare en lille hvid firkant med et rødt kryds.
Avatar billede daki Juniormester
01. august 2003 - 12:43 #8
Kan det bruges til noget, jeg kan ikke lige få det vendt rigtigt.

$tmp .= "\t\t<td width=\"$cellwidth\">" ?><a href=".$myrow['url']." target="new"><img src=".$myrow['billede']." class="blackborder"></a><? "</td>\n";

Eller er jeg helt galt i byen her ?
Avatar billede avminarm Juniormester
01. august 2003 - 13:27 #9
noget i den her stil vedr. upload script:

define('BILLEDE_DIR', '/apache/htdocs/www/billeder/');
  if (move_uploaded_file($_FILES['billede']['tmp_name'], BILLEDE_DIR.$_FILES['billede']['name']))
      {
      $url_til_pic = BILLEDE_DIR.$_FILES['billede']['name'];
      $billede = $_FILES['billede']['name'];
      }
  else
      {
      $billede = "intetbillede.gif";
      }

Du er gået lidt galt i byen med din $templinie - den skal nok hedde:

$tmp .= "\t\t<td width=\"$cellwidth\"><a href=\"".$myrow['url']."\" target=\"new\"><img src=\"".$myrow['billede']."\" class=\"blackborder\"></a></td>\n";

Du går lidt galt af at man skal escape sine " og at hvis man benytter variabler inde midt i stengen kan man hoppe ind og ud af den med . (punktum)

Et punktum er det samme som at sige man lægger det sammen med.

Du kan se jeg har rettet din target="new" til target =\"new\" - det er fordi ellers "tror" PHP at dine " omslutter noget den skal fortolke, men det skal den jo ikke - det skal bare "skrives ud" som HTML.

det med .'erne virker på den her måde:

alm: echo "hej med dig";
Hvis nu vil vil sige hej med dig daki - og vi har daki som en variabel kan man gøre sådan her:

$var = "daki";
echo "hej med dig ".$var;

og vil man skribve noget bagefter gøres det sådan:

$var = "daki";
echo "hej med dig ".$var."har du det godt?";

altså hopper ud og ind mellem"".

Jeg håber det hjalp lidt
Avatar billede daki Juniormester
06. august 2003 - 19:38 #10
Nu har jeg prøvet mig frem og kommet frem til dette, men der er et problem.
Der vises den samme række lige så mange gange, som det totale antal rækker, dvs. er der 4 rækker så vises der 4 x 4 billeder.

Kan du finde fejlen ?

$kolonner  = 3;
$tablewidth = 471;
$cellwidth  = (int) ($tablewidth / $kolonner);
$antal=mysql_result(mysql_query('select count(*) from medlemmer'),0);
$myrow=@mysql_fetch_array($result);

if (!$antal)
  {
  echo 'Desværre ingen billeder!';
  }
else
  {
$sql="select * from medlemmer order by navn";
$result=@mysql_query($sql,$db);
while ($myrow=@mysql_fetch_array($result))
  {
  $navn=$myrow['navn'];
  $url=$myrow['url'];
  $billede=$myrow['billede'];
  $tmp = "<table width=$tablewidth>\n\t<tr>\n";
  for ($i=0; $i < $antal; $i++)
      {
      if (!($i%$kolonner) && $i>0 && $i<$antal)
        {
        $tmp .= "\t</tr>\n\t<tr>\n";
        }
      $tmp .= "\t\t<td width=\"$cellwidth\"><a href=\"".$url."\" target=\"new\"><img src=\"".$billede."\" class=\"blackborder\"></a></td>\n";
      }
  for ($i=0;$i<$kolonner-($antal%$kolonner);$i++)
      {
      $tmp .= "\t\t<td width=\"$cellwidth\">&nbsp;</td>\n";
      }
  $tmp .= "\t</tr>\n</table>";
  echo $tmp;
  }
  }
?>
Avatar billede daki Juniormester
10. august 2003 - 13:58 #11
Så, nu har jeg fået løst mit lille problem.
Du skal have tak for hjælpen.
Avatar billede avminarm Juniormester
11. august 2003 - 22:12 #12
ok - var så lidt
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