Avatar billede kellesen Nybegynder
18. juli 2007 - 15:23 Der er 28 kommentarer og
1 løsning

udskrive billede

Hej,

Jeg har en database med feltet navn i. Jeg uploader desuden et billede til mappen images/heste/ på serveren.
Navnet kan eks. være: Helle Fogh mens billedet der bliver uploadet hedder hellefogh.jpg

Hvordan udskriver jeg billedet så den selv læser hvis der er et og hvis ikke udskriver billedet fejl.jpg..
Avatar billede steinr Nybegynder
18. juli 2007 - 17:27 #1
if (file_exists("sti/til/billede.jpg")) {
// Billedet findes
} else {
// Billedet findes ikke
}
Avatar billede kellesen Nybegynder
18. juli 2007 - 17:57 #2
hvordan udskriver jeg det? det skal jo læses ud fra databasen!
Avatar billede steinr Nybegynder
18. juli 2007 - 18:36 #3
Under "// Billedet findes" echo'r du billedet ud som bliver hentet via databasen og under "// Billedet findes ikke" echo'r du billedet "fejl.jpg" ud
Avatar billede oldnick Nybegynder
18. juli 2007 - 18:57 #4
Måske mener du noget ala det her:

PHP:

<?php
include ('inc/db.inc.php'); // Database connection.

$result = @mysql_query("SELECT * FROM tabel");
    if(!$result) {
exit ('<p>Error preforming query:' . mysql_error() . '</p>');
}
    while ($row = mysql_fetch_array($result)) {

$img = $row['i'];
$imgError = "fejl.jpg";
$path = "images/";

if ($img == "") {
echo "<img src=\"$path.$img\" />"; // Billedet findes
} else {
echo "<img src=\"$path.$imgError\" />"; // Billedet findes ikke
}
}
?>
Avatar billede kellesen Nybegynder
18. juli 2007 - 19:12 #5
hvordan gør den så det med navnet.. altså i db kan det stå med stort og mellemrum - men billedet hedder det samme abre trukket sammen og med småt..
Avatar billede oldnick Nybegynder
18. juli 2007 - 19:24 #6
Du burde have et felt i din "tabel" i db som ind holder navnet på dit billede. Din opsætning kunne evt. se sådan her ud.

CREATE TABLE `billeder` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`txt` TEXT NOT NULL ,
`img` VARCHAR( 255 ) NOT NULL
) ENGINE = MYISAM ;

Forklaring:
Feltet "id" skal være der for at hold orden!!
Feltet "txt" indholder alt tekst, eks. "Helle Fogh".
Feltet "img" indholder navnet på dit billede eks. "hellefogh.jpg".

TILRETTET PHPKODE:

<?php
include ('inc/db.inc.php'); // Database connection.

$result = @mysql_query("SELECT * FROM billeder");
    if(!$result) {
exit ('<p>Error preforming query:' . mysql_error() . '</p>');
}
    while ($row = mysql_fetch_array($result)) {

$txt = $row['txt'];
$img = $row['img'];
$imgError = "fejl.jpg";
$path = "images/";

if ($img == "") {
echo "<p>$txt</p>": // Du kunne udskrive indholdet fra tekst feltet.
echo "<img src=\"$path.$img\" />"; // Billedet findes
} else {
echo "<img src=\"$path.$imgError\" />"; // Billedet findes ikke
}
}
?>
Avatar billede kellesen Nybegynder
19. juli 2007 - 10:10 #7
okay - hvordan skriver jeg det er info fra iframe 1..
se evt på: http://www.stutterisunhill.dk/new/pages/avlshingste.php
Avatar billede oldnick Nybegynder
19. juli 2007 - 10:16 #8
Jeg forstår ikke helt hvad du mener??
Avatar billede oldnick Nybegynder
19. juli 2007 - 10:22 #9
Det ser også ud som om du har et problem med din side i firefox, har du tjekket den der?
Det er heller ikke så godt at bruge frames, du skulle heller eks. bruge "include" i php.

Men det kan du jo selv bestemme om du vil gå videre med! :)
Avatar billede kellesen Nybegynder
19. juli 2007 - 10:39 #10
ved godt der er et problem med opsætningen lige nu..

jeg mener, at når man trykker på et link i ifarme 1 der hedder helle- hvordan ved den så den skal vise helle.jpg i en anden td. hvordan snakker de sammen..
Avatar billede oldnick Nybegynder
19. juli 2007 - 11:02 #11
hmm, det er en lidt længere forklaring og det er også lidt opsætning i det, men du kunne gøre sådan her:

Link:
<a href="?hestId=1">Helle</a> // vi sætter en GET værdi, den skal altid start med ? . Hvis du gerne vil have flere kan det således ud: ?hestId=1&rytterId=34&vejretidag=godt osv. efter første skal den adskilles ad & . Et tallet i "?hestId=1" ville være smart hvis det kom fra en database.


Din anden td: Skal indsættes der hvor du skal bruge den.

<?php

$hestId = $_GET['hestId']; // Her hentes billedes id fra addresse linie eks. stutteri.dk?hestId=1

include ('inc/db.inc.php'); // Database connection.

if ($_GET['hestId']){ // Her testes om hvis hestId er sat, så udfør...

$result = @mysql_query("SELECT * FROM billeder WHERE id='$hestId'"); // Udtræk fra db hvor id svare til hestId som er sat i linket
    if(!$result) {
exit ('<p>Error preforming query:' . mysql_error() . '</p>');
}
    while ($row = mysql_fetch_array($result)) {

$txt = $row['txt'];
$img = $row['img'];
$imgError = "fejl.jpg";
$path = "images/";

if ($img == "") {
echo "<p>$txt</p>": // Du kunne udskrive indholdet fra tekst feltet.
echo "<img src=\"$path.$img\" />"; // Billedet findes
  } else {
echo "<img src=\"$path.$imgError\" />"; // Billedet findes ikke
  }
}
}
?>
Avatar billede kellesen Nybegynder
19. juli 2007 - 11:12 #12
lige nu ser der sådan her ud:

x.php
__________
        <td>
        <iframe frameborder="0" name="iframe1" src="avl_indhold.php?frame=1" width="200" height="300">[Din browser underst?tter ikke iframes.]</iframe>
        </td>
        <td>
            <iframe frameborder="0" name="iframe2" src="avl_indhold.php?frame=2" width="300" height="300">[Din browser underst?tter ikke iframes.]</iframe>
        </td>
<td> her skal billedet ind så det svarer til link i iframe2 </td>



y.php
__________________

switch($_GET['frame'])
{
    case 1:
        $query = "SELECT horseid,navn FROM heste";
        $result = mysql_query($query) or die("Forespørgslen lykkedes ikke : " . mysql_error());

        if(mysql_num_rows($result)>0)
        {
            echo '<ul>';
            while($data = mysql_fetch_assoc($result))
            {
                echo '<li><a href="?frame=2&id=' . $data['horseid'] .'" target="iframe2">'.$data['navn'].'</a></li>';
            }
            echo '</ul>';
        }
        break;
    case 2:
        if(isset($_GET['id']) && is_numeric($_GET['id']))
        {
            $id = intval($_GET['id']);
            $query = "SELECT * FROM heste WHERE horseid = '".$id."' LIMIT 1";
            $result = mysql_query($query) or die("Forespørgslen lykkedes ikke : " . mysql_error());
            if(mysql_num_rows($result)==1)
            {
                $data = mysql_fetch_assoc($result);
                echo '<pre>';
                print_r($data);
                echo '</pre>';
            }
        }
        break;
    default:
        exit();
Avatar billede kellesen Nybegynder
19. juli 2007 - 12:22 #13
kan ikke få den til at vise billedet... den er stadig ikke kædet sammen... kode:

      <td>
        <iframe frameborder="0" name="iframe1" src="avl_indhold.php?frame=1" width="200" height="300">[Din browser underst?tter ikke iframes.]</iframe>
        </td>
        <td>
            <iframe frameborder="0" name="iframe2" src="avl_indhold.php?frame=2" width="300" height="300">[Din browser underst?tter ikke iframes.]</iframe>
        </td>
        <td>
        <?php

$hestId = $_GET['hestId']; // Her hentes billedes id fra addresse linie eks. stutteri.dk?hestId=1


if ($_GET['hestId']){ // Her testes om hvis hestId er sat, så udfør...

$result = @mysql_query("SELECT * FROM billeder WHERE id='$hestId'"); // Udtræk fra db hvor id svare til hestId som er sat i linket
    if(!$result) {
exit ('<p>Error preforming query:' . mysql_error() . '</p>');
}
    while ($row = mysql_fetch_array($result)) {

$txt = $row['txt'];
$img = $row['img'];
$imgError = "fejl.jpg";
$path = "images/";

if ($img == "") {
echo "<p>$txt</p>"; // Du kunne udskrive indholdet fra tekst feltet.
echo "<img src=\"$path.$img\" />"; // Billedet findes
  } else {
echo "<img src=\"$path.$imgError\" />"; // Billedet findes ikke
  }
}
}
?>

        </td>
Avatar billede oldnick Nybegynder
19. juli 2007 - 15:19 #14
Dit link skal se sådan her ud:

<a href="hestInfo.php?hestId=1" target="iframe2">Link</a>

Og så skal du lave en side (hestInfo.php) som loades ind i iframe2.

hestInfo.php:

<?php

include ('inc/db.inc.php'); // Database connection. DET ER VIGTIGT AT DU HAR EN DB CONNECTION ELLERS SKER DER IKKE NOGET!

$hestId = $_GET['hestId']; // Her hentes billedes id fra addresse linie eks. stutteri.dk?hestId=1


if ($_GET['hestId']){ // Her testes om hvis hestId er sat, så udfør...

$result = @mysql_query("SELECT * FROM billeder WHERE id='$hestId'"); // Udtræk fra db hvor id svare til hestId som er sat i linket
    if(!$result) {
exit ('<p>Error preforming query:' . mysql_error() . '</p>');
}
    while ($row = mysql_fetch_array($result)) {

$txt = $row['txt'];
$img = $row['img'];
$imgError = "fejl.jpg";
$path = "images/";

if ($img == "") {
echo "<p>$txt</p>"; // Du kunne udskrive indholdet fra tekst feltet.
echo "<img src=\"$path.$img\" />"; // Billedet findes
  } else {
echo "<img src=\"$path.$imgError\" />"; // Billedet findes ikke
  }
}
}
?>
Avatar billede kellesen Nybegynder
20. juli 2007 - 11:36 #15
men hvor og hvordan uploader jeg til den nye database?

sorry - er bare lidt forvirret..
Avatar billede oldnick Nybegynder
20. juli 2007 - 12:07 #16
Her er et eksempel. Vi er jo lidt væk fra emnet i denne post, men det går jo nok :)

Du skal bare kopier koden ind i body på et php doc, du kunne kalde det: add.php
Det er kun jpg billder som kan uploades, der er par steder hvor du skal tilrette det, men det skulle gerne være nemt at se. Og alt efter hvilket web-hotel du har kan der være en grænse på hvor stort billede du kan uploade, jeg kan max uploade 1mb store billeder ca. hos one.com.

Du skulle købe denne her bog: http://www.sitepoint.com/books/phpmysql1/

<?php

include_once ("inc/db.inc.php");
   
if (isset($_POST['submit'])) {
$txt    = $_POST['txt'];
$img    = $_FILES['userFile']['name'];

// Her indsætte data i databasen.

$sql = "INSERT INTO billeder SET
    txt    = '$txt',
    img    = '$img'";
       
if (@mysql_query($sql)) {
echo '<p>Tilf&oslash;jet indl&aelig;g</p>';
} else {
echo '<p>Error: ' . mysql_error() . '</p>' ;
    }
}

// Function til at resize billede       

function resize( $filename, $newfilename, $maxw, $maxh )
{
    $srcim = imagecreatefromjpeg( $filename );
    $ow = imagesx( $srcim );
    $oh = imagesy( $srcim );
    $wscale = $maxw / $ow;
    $hscale = $maxh / $oh;
    $scale = ( $hscale < $wscale ? $hscale : $wscale );
    $nw = round( $ow * $scale, 0 );
    $nh = round( $oh * $scale, 0 );
    $dstim = imagecreatetruecolor( $nw, $nh );
    imagecopyresampled( $dstim, $srcim, 0, 0, 0, 0, $nw, $nh, $ow, $oh );
    imagejpeg( $dstim, $newfilename, 85 ); // 85 er kvaliteten på billede 100 er max.
    imagedestroy( $dstim );
    imagedestroy( $srcim );
    return file_exists($newfilename);
}

// Function slut
// Variabler, her skal du rette $uploadDir, $maxHeight, $maxWidth.
// Functionen holder aspect så derfor skal $maxHeight og $maxWidth være ens.

$uploadDir = "photo/"; //Husk mappen skal chmod'es til 644, hvor skal billede ligge
$maxHeight = 500; // Indstil max højde
$maxWidth  = 500; // Indstil max bredde
$maxSize  = 4; //Angives i MB
$pics      = array('jpeg','jpg','jpe'); //Hvilke filtyper vil vi godtage? Kun .jpg

$maxSize  = $maxSize * 1024 * 1024;

if($_FILES['userFile']['size'] > 0)
{
    $uploadfile = $uploadDir . basename($_FILES['userFile']['name']);
 
    if($_FILES['userFile']['size'] > $maxSize)
    {
        echo "Dit billede er for stort, prøv med mindre...";
        exit();
    }
 
    $ext = strtolower(end(explode('.',$_FILES['userFile']['name'])));
 
    if(!in_array($ext,$pics))
    {
        echo "Forkert billede format, prøv med et andet...";
        exit();
    }

    if(!resize( $_FILES['userFile']['tmp_name'], $uploadfile, $maxWidth, $maxHeight ))
    {
        echo "Det fejlede at resize billedet : " . $uploadfile . "! Prøv igen<br />";
    }
    else
    {   
        echo '<p>Billede er nu Tilf&oslash;jet</p>';
    }
}
?>
<FORM enctype="multipart/form-data" method="post" action="<?php $_SERVER['PHP_SELF']; ?>">
<label>Tekstfelt:</label>
<textarea name="txt"></textarea>
<label>Billede:</label>
<input name="userFile" type="file"/>
<input type="submit" name="Submit" value="Send"/>
</FORM>
Avatar billede kellesen Nybegynder
20. juli 2007 - 14:29 #17
men det passer ikke voerens med databasen "billeder" du ville have mig til at lave vel?
Avatar billede kellesen Nybegynder
20. juli 2007 - 14:29 #18
*overens
Avatar billede oldnick Nybegynder
20. juli 2007 - 15:08 #19
Jo det gør det! Hvad er det som du ikke kan få til at stemme?
Avatar billede kellesen Nybegynder
23. juli 2007 - 13:04 #20
Kommer en fejl

Warning: imagejpeg() [function.imagejpeg]: Unable to access photo/olympiahill.jpg in /customers/stutterisunhill.dk/stutterisunhill.dk/httpd.www/new/pages/add.php on line 44

Warning: imagejpeg() [function.imagejpeg]: Invalid filename in /customers/stutterisunhill.dk/stutterisunhill.dk/httpd.www/new/pages/add.php on line 44
Det fejlede at resize billedet : photo/olympiahill.jpg! Prøv igen



line 44:  imagejpeg( $dstim, $newfilename, 85 ); // 85 er kvaliteten på billede 100 er max.
Avatar billede oldnick Nybegynder
23. juli 2007 - 21:38 #21
Har du husket at rette siten så den peger på den mappe hvor du vil have dine billeder liggende?

$uploadDir = "photo/"; //Husk mappen skal chmod'es til 644

Det er kan være du skal skive sådan her:

$uploadDir = "'.$_SERVER['DOCUMENT_ROOT'].'/photo/";
Avatar billede kellesen Nybegynder
25. juli 2007 - 13:02 #22
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING

$uploadDir = "'.$_SERVER['DOCUMENT_ROOT'].'/images/";
Avatar billede kellesen Nybegynder
25. juli 2007 - 13:11 #23
Har rettet de til
$uploadDir = "'.$_SERVER[DOCUMENT_ROOT].'/images/";Warning: imagejpeg()
Nu melder den først fejl når jeg uploader..


[function.imagejpeg]: Unable to access './customers/stutterisunhill.dk/stutterisunhill.dk/httpd.www.'/images/olympiahill.jpg in /customers/stutterisunhill.dk/stutterisunhill.dk/httpd.www/new/pages/add.php on line 44

Warning: imagejpeg() [function.imagejpeg]: Invalid filename in /customers/stutterisunhill.dk/stutterisunhill.dk/httpd.www/new/pages/add.php on line 44
Det fejlede at resize billedet : './customers/stutterisunhill.dk/stutterisunhill.dk/httpd.www.'/images/olympiahill.jpg! Prøv igen
Avatar billede kellesen Nybegynder
25. juli 2007 - 15:13 #24
$uploadDir = $_SERVER["DOCUMENT_ROOT"]."/images/";

nu virker det med at uplaode...

nu er der bare problemer med at udskirve filen..
http://www.stutterisunhill.dk/new/pages/avlshingste.php

oplympiahill.jpg er uploadet..
Avatar billede oldnick Nybegynder
25. juli 2007 - 17:43 #25
Det er fordi du bruger iFrames, så bliver ?hestId=1 ikke sendt til adressen. Så virker $_GET['hestId'] ikke.

Jeg har lavet en mock-up af dit design, hvor jeg har droppet iFrames og brugt div'er istedet for tabeller og frames. Fordelen ved dette design er at du bliver fri for at skulle scrolle inde på siden og at det derved er indholdet som bestemmer hvor høje siden skal være. Desuden er frames et no go fra W3C!

I designet, loades siderne fra mappen "pages/" og inde i "main" div'en via "include".
Du kan bruge den samme funktion hvis du vil have at "left" menuen. Det er bare at copy/past koden og ændre "p" til eks. "l" og så tilføje til dit link "&l=sidensnavn".

Jeg har sat css'en direkte ind på siden, men den skal selvfølgelig ligge i sin egen fil og links ind. Men det har du vist styr på.

De sider som du loader ind skal kun indholde indholdet. Dvs. at der ikke må være <html></html>.

index.php:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
<style type="text/css">
<!--
* {
margin: 0;
padding: 0;
}
body {
text-align: center;
overflow:-moz-scrollbars-vertical;
}
#wrapper {
    width: 900px;
    margin-right: auto;
    margin-left: auto;
}
#head {
width: 900px;
height: 200px;
background-color:#999999;
background-image: url(sti til det top menu billede /images/header.gif); /* Hvis du vil have swf filer ind skal den sætte inde i HTML koden og ikke her! */
}
#menu {
width:900px;
height: 30px;
background-color:#666666;
}
#menu li {
display:inline-block;
float:left;
list-style:none;
height: 20px;
padding: 5px;
}
#menu a {
text-decoration:none;
}
#menu a:hover {
text-decoration:underline;
}
#left {
text-align: left;
float:left;
width: 300px;
}
#left li {
list-style:none;
padding: 5px;
}
#left a {
text-decoration:none;
}
#main {
text-align: left;
float:left;
width: 560px;
padding: 20px;
}
#footer {
width:900px;
height: 30px;
background-color:#999999;
text-align:center;
clear:both;
}
.clearFix {
clear:both;
}
-->
</style>
</head>

<body>
<div id="wrapper">
<div id="head"></div>
<div id="menu">
<ul>
<li><a href="?p=home" >Hjem</a></li>
<li><a href="?p=fol" >F&oslash;l</a></li>
<li><a href="?p=kontakt" >Kontakt</a></li>
</ul>
</div>
<br class="clearFix" />
<div id="left">
<ul>
<li><a href="?p=hestInfo&hestId=1" >Olympia Hill</a></li>
<li><a href="?p=hestInfo&hestId=2" >Olympus Hill</a></li>
<li><a href="?p=hestInfo&hestId=3" >Indianer</a></li>
<li><a href="?p=hestInfo&hestId=4" >Montgomery Hill</a></li>
<li><a href="?p=hestInfo&hestId=5" >Nobel Hill</a></li>
<li><a href="?p=hestInfo&hestId=6" >Nemo Hill</a></li>
<li><a href="?p=hestInfo&hestId=7" >Oscar Hill</a></li>
<li><a href="?p=hestInfo&hestId=8" >Ofelia Hill</a></li>
<li><a href="?p=hestInfo&hestId=9" >One Way Hill</a></li>
</ul>
</div>
<div id="main">
<?php
if ($_GET['p']) {
    include ('pages/'.$_GET['p'].'.php'); // alle sider du vil loade skal ligge i mappen "pages" (det er en god måde at holde orden på).
} else {
    include ('pages/home.php'); // siden home.php er sat som default side hvis ikke "p" er angivet
}
?>
</div>
<div id="footer">
<address>Stutteri SunHill APS</address>
</div>
</div>

</body>
</html>
Avatar billede kellesen Nybegynder
25. juli 2007 - 18:49 #26
har du evt. msn?
listen af heste loades ud fra mysql -
Avatar billede oldnick Nybegynder
25. juli 2007 - 20:17 #27
mads (a) oldnick (.) dk, men jeg kan ikke lovet at jeg har så meget tid!
Avatar billede kellesen Nybegynder
29. juli 2007 - 13:14 #28
det er ok.. du slipper for mine dumme spørgsmål.. smid et svar og du får dine points ;) tak for hjælpen..
Avatar billede oldnick Nybegynder
30. juli 2007 - 08:12 #29
Hey, det er iorden. Jeg kan godt bruge en times tid til at forklare dig hvad jeg mener, så bare tilføj mig på msn, så finder vi ud af det. Evt. send en mail. :) Selv tak.
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