Avatar billede ofirpeter Nybegynder
01. september 2003 - 18:24 Der er 28 kommentarer og
1 løsning

Hente billeder ud af sql

Jeg har en del billeder (blob) liggene i en tabel i sql.
Jeg plejer at bruge dette script til at udskrive billeder med:
<?php
require("conn.php");
$get_image = "select billede, filetype from 9b where navn='$_GET[navn]'";
$get_image_result = @mysql_query($get_image) or die("Couldn't get image.");
$billede = @mysql_result($get_image_result,0,"billede");
$filetype = @mysql_result($get_image_result,0,"filetype");
header("Content-type: $filetype");
print "$billede";
?>

Den burde udskrive 3 billeder da der er tre stader hvor kat = 'Lejrskole 2002' men den udskriver kun det første.

Hvordan kan jeg få den til at udskirve alle billederne, side om side, og med et str. på 169*169 px?

Mvh.
Peter
Avatar billede erikjacobsen Ekspert
01. september 2003 - 18:37 #1
Du skal kalde dit script 3 gange - men et billede i hver, fx fra en HTML-fil

  <img src="ditscript.php?id=12">
  <img src="ditscript.php?id=14">
  <img src="ditscript.php?id=15">
Avatar billede ofirpeter Nybegynder
01. september 2003 - 18:40 #2
Hmm kan det virkelig ikke gøres anderledes, det skal helst være meget dynamsik.. Fordi der skal være nogle brugere der selv skal kunne oprette et galeri? Med et antal billeder da selv ønsker?
Avatar billede detox Nybegynder
01. september 2003 - 18:48 #3
Du laver da bare dynamikken på en anden side. Fx i den her stil:
$get_image = "select id from 9b where navn='$_GET[navn]'";
while ($row = mysql_fetch_row) {
  echo "<img src=\"ditscript.php?id=".$row[0]."\">";
}
Avatar billede detox Nybegynder
01. september 2003 - 18:50 #4
Hov der manglede vidst noget:

$get_image = "select id from 9b where navn='$_GET[navn]'";
$res = mysql_query($get_image);
while ($row = mysql_fetch_row($res)) {
  echo "<img src=\"ditscript.php?id=".$row[0]."\">";
}
Avatar billede ofirpeter Nybegynder
01. september 2003 - 18:52 #5
Jeg er ikke helt med :) Er ikke helt stærk i det her! Vil du evt. uddybe lidt?
Avatar billede detox Nybegynder
01. september 2003 - 18:52 #6
og så selvfølgelig rette forespørgslen på den anden side til:

$get_image = "select billede, filetype from 9b where id='$_GET[id]'";
Avatar billede detox Nybegynder
01. september 2003 - 18:59 #7
Jamen det kræver bare at dine billeder har et unikt id.
Avatar billede ofirpeter Nybegynder
01. september 2003 - 19:00 #8
Det har de allerede! De hedder 1,2,3 osv. Men hvad gør jeg så? Hvordan finder den ud af hvor mange billeder den skal hente?
Avatar billede erikjacobsen Ekspert
01. september 2003 - 19:12 #9
med en
  select id from 9b where navn='$_GET[navn]'
Avatar billede detox Nybegynder
01. september 2003 - 19:12 #10
Ja, det er jo begrænset hvor mange billeder du kan vise pr side. Så der skal du bruge noget sideinddeling.
Avatar billede ofirpeter Nybegynder
01. september 2003 - 19:13 #11
Men hvor skal den get navn fra?
Avatar billede detox Nybegynder
01. september 2003 - 19:14 #12
På samme måde som du bruger den i øjeblikket.
Avatar billede ofirpeter Nybegynder
01. september 2003 - 19:16 #13
Ja okay! Så er jeg med! Vender tilbage..
Avatar billede ofirpeter Nybegynder
01. september 2003 - 20:08 #14
Okay jeg kan simpelthen ikke komme videre. Hvis der er en der gider at lave et "prøve" script med begge sider og mulighed for hvad koden kunne være på dem. Ville jeg være meget taknemmelig.
Avatar billede erikjacobsen Ekspert
01. september 2003 - 20:14 #15
hvad har du lavet?
Avatar billede ofirpeter Nybegynder
01. september 2003 - 20:24 #16
Jeg har lavet en side med dette script:
<?php
require("conn.php");
$get_image = "select id from 9b where navn='$_GET[navn]'";
$res = mysql_query($get_image);
while ($row = mysql_fetch_row($res)) {
  echo "<img src=\"ditscript.php?id=".$row[0]."\">";
}
?>

Men er så lidt, for ikke at sige meget i tvivl om hvad jeg skal skriver under "ditscript.php"
Avatar billede erikjacobsen Ekspert
01. september 2003 - 20:29 #17
Umiddelbart vil jeg tro at dit ditscript.php skal indeholde

<?php
require("conn.php");
$get_image = "select billede, filetype from 9b where id='$_GET[id]'";
$get_image_result = @mysql_query($get_image) or die("Couldn't get image.");
$billede = @mysql_result($get_image_result,0,"billede");
$filetype = @mysql_result($get_image_result,0,"filetype");
header("Content-type: $filetype");
print "$billede";
?>
Avatar billede ofirpeter Nybegynder
01. september 2003 - 20:36 #18
Okay nu ser min index.php sådan ud:
<?php
require("conn.php");
$get_image = "select gallery_id from 9b where navn='$_GET[navn]'";
$res = mysql_query($get_image);
while ($row = mysql_fetch_row($res)) {
  echo "<img src=\"ditscript.php?id=".$row[0]."\">";
}
?>

Og mit ditscript.php sådan ud:
<?php
require("conn.php");
$get_image = "select billede, filetype from 9b where gallery_id='$_GET[id]'";
$get_image_result = @mysql_query($get_image) or die("Couldn't get image.");
$billede = @mysql_result($get_image_result,0,"billede");
$filetype = @mysql_result($get_image_result,0,"filetype");
header("Content-type: $filetype");
print "$billede";
?>

Men jeg får denne fejl:
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /home/web/gb1404/9b/Billedesystem/billeder/index.php on line 5
Avatar billede erikjacobsen Ekspert
01. september 2003 - 20:44 #19
Du skal
1) Kalde med index.php?navn=etellerandetnavn
2) $res = mysql_query($get_image) or die(mysql_error());
Avatar billede ofirpeter Nybegynder
01. september 2003 - 20:55 #20
Nu har jeg rettet nogle flere fejl :) Så det nu ser sådan ud:

index.php:
<?php
require("conn.php");
$get_image = "select gallery_id from billeder where kat='$_GET[kat]'";
$res = mysql_query($get_image) or die(mysql_error());
while ($row = mysql_fetch_row($res)) {
  echo "<img src=\"ditscript.php?id=".$row[0]."\">";
}
?>


ditscript:
<?php
require("conn.php");
$get_image = "select billede, filetype from billeder where gallery_id='$_GET[id]'";
$get_image_result = @mysql_query($get_image) or die("Couldn't get image.");
$billede = @mysql_result($get_image_result,0,"billede");
$filetype = @mysql_result($get_image_result,0,"filetype");
header("Content-type: $filetype");
print "$billede";
?>

Min database ser sådan ud: "Billeder"
billede  filesize  filetype  kat  gal_id  gallery_id
Så nu burde alt passe.

Jeg forstår ikke helt "1)" Burde jeg kunne kalde siden med: index.php?navn=1 Fordi der får jeg bare en tom side.
Avatar billede detox Nybegynder
01. september 2003 - 22:42 #21
Prøv evt.:

<?php
require("conn.php");
$get_image = "select billede, filetype from billeder where gallery_id=$_GET[id]";
$get_image_result = mysql_query($get_image) or die("Couldn't get image.");
$data = mysql_fetch_assoc($res);
header("Content-type: ".$data['filetype']);
echo $data['billede'];
?>
Avatar billede detox Nybegynder
01. september 2003 - 22:45 #22
Og, hvis dine kategorier er repræsenteret ved tal, skal det være:

index.php:
<?php
require("conn.php");
$get_image = "select gallery_id from billeder where kat=$_GET[kat]";
$res = mysql_query($get_image) or die(mysql_error());
while ($row = mysql_fetch_row($res)) {
  echo "<img src=\"ditscript.php?id=".$row[0]."\">";
}
?>
Avatar billede detox Nybegynder
01. september 2003 - 22:49 #23
Sludder:

<?php
require("conn.php");
$get_image = "select billede, filetype from billeder where gallery_id=$_GET[id]";
$res = mysql_query($get_image) or die("Couldn't get image.");
$data = mysql_fetch_assoc($res);
header("Content-type: ".$data['filetype']);
echo $data['billede'];
?>
Avatar billede erikjacobsen Ekspert
02. september 2003 - 01:01 #24
Jeg forstår ikke en brik af hvad du laver. I dit spørgsmål skriver du at

  $get_image = "select billede, filetype from 9b where navn='$_GET[navn]'";

virker, dvs. der er et felt med navn "navn". Men nu siger du at det ser ud som:

  billede  filesize  filetype  kat  gal_id  gallery_id

Dvs uden "navn". Du har heller ikke sagt hvad der egentlig sker efter
du har lavet den ændring jeg foreslog.
Avatar billede ofirpeter Nybegynder
02. september 2003 - 16:28 #25
Det er et helt anden side jeg har taget dette fra:
$get_image = "select billede, filetype from 9b where navn='$_GET[navn]'";

Men så fandt jeg jo ud af at navn jo ikke skal bruges da databasen ser ud som den gør , jeg skal bruge kat, da det er alle dem med samme "kat" (Kategori) Der skal vises.
Og som jeg skriver i 01/09-2003 20:55:04
"Jeg forstår ikke helt "1)" Burde jeg kunne kalde siden med: index.php?navn=1 Fordi der får jeg bare en tom side." - også efter at jeg har lavet ændrignerne.
Avatar billede ofirpeter Nybegynder
02. september 2003 - 16:31 #26
detox: Der er ingen forskel på udfaldet af scriptet efter at jeg ændre siden til den kode du foreslog.. Stadig bare en helt tom side :)
Avatar billede detox Nybegynder
02. september 2003 - 19:10 #27
Det skal jo så kaldes med fx: index.php?kat=1
Avatar billede ofirpeter Nybegynder
12. december 2003 - 18:08 #28
Så har jeg fundet ud af det, når i svare bliver der delt point ud.
Avatar billede detox Nybegynder
12. december 2003 - 18:11 #29
Nå jo da ;o)
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