Avatar billede crabber Nybegynder
27. juni 2007 - 08:40 Der er 6 kommentarer og
1 løsning

Simpel if sætning, hvad gør jeg galt?

Jeg har lavet en if sætning hvor jeg gerne vil have at hvis fil feltet er tomt så skal den ikke andre på billede navnet i databasen og ikke slette noget billede fra databasen, men hvis man vælger et billede i feltet skal den slette det gamle billede fra serveren og uploadet det nye og sætte navnet ind i databasen.

Jeg kan overhoved ikke så den til at gøre som jeg vil.. har prøvet næsten alt!

KODEN::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
        $img = mysql_query("SELECT * FROM nyheder WHERE id = '$_GET[id]'");
        $imgre = mysql_fetch_assoc($img);
        unlink('../images/nyhed_img/'.$imgre['img_url']);
       
        $fil = date('H-i-s') . '-' . $_FILES["picture"]["name"];
        $picture = '../images/nyhed_img/'. $fil;
       
        if(move_uploaded_file($_FILES["picture"]["tmp_name"], $picture))
        {
            resize($picture,$picture,'120','120');
        }
        else
        {
            $message = 'Billede er ikke uploadet!';
        }
KODEN SLUT:::::::::::::::::::::::::::::::::::::::::::::::::::::::
Avatar billede crabber Nybegynder
27. juni 2007 - 08:41 #1
Hovsa... Der lige lidt mere kode.

KODEN::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
<div id="wrapper">

<?php

    function resize( $filename, $newfilename, $maxw, $maxh )
    {
    list($width, $height, $filetype, $attr) = getimagesize($filename);
    $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, 100 );
    imagedestroy( $dstim );
    imagedestroy( $srcim );
    return file_exists($newfilename);
    }   

if(isset($_POST['gem']))
{
    if(empty($_FILES['picture']))
    {
        $img = mysql_query("SELECT * FROM nyheder WHERE id = '$_GET[id]'");
        $imgre = mysql_fetch_assoc($img);
        $fil = $imgre['img_url'];
    }
    else
    {
        $img = mysql_query("SELECT * FROM nyheder WHERE id = '$_GET[id]'");
        $imgre = mysql_fetch_assoc($img);
        unlink('../images/nyhed_img/'.$imgre['img_url']);
       
        $fil = date('H-i-s') . '-' . $_FILES["picture"]["name"];
        $picture = '../images/nyhed_img/'. $fil;
       
        if(move_uploaded_file($_FILES["picture"]["tmp_name"], $picture))
        {
            resize($picture,$picture,'120','120');
        }
        else
        {
            $message = 'Billede er ikke uploadet!';
        }
    }

    $up = mysql_query("UPDATE nyheder SET overskrift = '$_POST[overskrift]', tekst = '$_POST[tekst]', info_tekst = '$_POST[overskrift]', link_url = '$_POST[link]', img_url = '" . $fil . "' WHERE id = '$_GET[id]'")or die(mysql_error());
    $message = 'Nyheden er gemt!';
}

$query = mysql_query("SELECT * FROM nyheder WHERE id = '$_GET[id]'");
$result = mysql_fetch_assoc($query);
?>
&nbsp;&nbsp;&nbsp;Rediger <?php echo $result['overskrift']; ?><br />
<form action="" method="post" enctype="multipart/form-data">
<input name="overskrift" type="text" value="<?php echo $result['overskrift']; ?>"><br />
<input name="picture" type="file"><br />
<textarea name="tekst" cols="50" rows="5"><?php echo $result['tekst']; ?></textarea><br />
<input name="link" type="text" value="<?php echo  $result['link_url'];?>"><br />
<input name="gem" type="submit" value="Gem" />&nbsp;<?php echo $message; ?>
</form>
&nbsp;&nbsp;&nbsp;<a href="admin.php">Tilbage</a>

</div>
KODEN SLUT:::::::::::::::::::::::::::::::::::::::::::::::::::::::
Avatar billede horizon Nybegynder
27. juni 2007 - 09:31 #2
hvad er det den gør som den ikke bør?
Avatar billede crabber Nybegynder
27. juni 2007 - 09:42 #3
Den vil gerne fjerne det gamle billede og uploade det nye hvis vil have et nyt, men hvis man man ikke ønsker et nyt billed og så sletter den det billede som er tilknyttet nyheden, som det ikke skal gøre.
Avatar billede horizon Nybegynder
27. juni 2007 - 09:55 #4
det er så din if der går ind og laver pjatrøv med dig når du opdaterer en nyhed uden at smide et billede op ikke?

Lige umiddelbart kan jeg heller ikke finde variablen $imgre defineret nogen steder, men jeg har heller ikke leget så meget med filupload så ved ikke om det er en den genererer selv, men det er lige det eneste jeg kan finde som skulle gøre det
Avatar billede horizon Nybegynder
27. juni 2007 - 09:55 #5
ligemeget! fandt den...
Avatar billede horizon Nybegynder
27. juni 2007 - 10:02 #6
men hvorfor beder du den om at hente billedlinket fra databasen og så smide det tilbage i databasen uden at det faktisk bliver ændret?

faktisk kan du prøve at dele din $up i to og smide en i if og en anden i else.

Prøv at ret din $up i if til dette:
$up = mysql_query("UPDATE `Nyheder` SET `Overskrift` = '".$_POST[overskrift]."', `tekst` = '".$_POST[tekst]."', `info_tekst` = '".$_POST[overskrift]."', `link` ='".$_POST[link]."' WHERE `id` = ".$_GET[id])or die(mysql_error());

og efterlad den i else uændret. Så skulle du gerne være ude over det problem hvis jeg ikke tager meget fejl. Ikke en elegant løsning... "but if it works, don't fix it" ;)
Avatar billede crabber Nybegynder
27. juni 2007 - 20:55 #7
Har fundet en anden løsning.. Vil bruge FCKeditoren... Den er jo super smart
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