Avatar billede mads1987 Nybegynder
27. juni 2003 - 22:59 Der er 9 kommentarer og
1 løsning

PHP-SQL Updater

Jeg bruger dette upload script som jeg normalt er veldig glad for :)

<?php

if (!empty($gem))  {
require("sql.php");
    if (!empty($form_data)) 
      {
        $data = addslashes(fread(fopen($form_data, "r"), filesize($form_data)));
      }
    $result=MYSQL_QUERY("
INSERT INTO billeder (
        billede,
        filename,
        filesize,
        filetype)
      VALUES (
        '$data',
        '$filename',
        '$form_data_size',
        '$form_data_type')");
    print "<p>This file has the following Database ID: <b></b>";
    MYSQL_CLOSE();
} else {
?>

Men, nu vil jeg gerne "updatere" et billeder der ligge i datasen i forvejen, altså skrive over på det.
Hvordan gør jeg det? Jeg har selv prøvet forskellige ting, men det vil ikke rigtig lykkes :(

:-) Mvh
Avatar billede tipsen Nybegynder
28. juni 2003 - 00:00 #1
Følgende SQL-sætning kan opdatere oplysningerne for et givent billede under antagelse af, at du har et id eller anden information som entydigt identificerer det billede du ønsker at opdatere.

UPDATE billeder SET billede='$data', filename='$filename',... WHERE id=$id

hvor ... udfyldes med alle de felter du ønsker at opdatere efter samme mønster som nr. 1 og 2 felt i ovenstående.
Avatar billede mads1987 Nybegynder
28. juni 2003 - 00:41 #2
Jah det ser jo umeltbart meget godt ud :) Men der sker ikke så meget! :0) Hvad gør jeg forkert?

<?php

if (!empty($gem))  {
require("sql.php");
    if (!empty($form_data)) 
      {
        $data = addslashes(fread(fopen($form_data, "r"), filesize($form_data)));
      }
    $result=MYSQL_QUERY("

UPDATE billeder SET
billede='$data',
filesize= '$form_data_size',
filetype='$form_data_type'
WHERE filename='design-gron'");

    print "<p>This file has the following Database ID: <b></b>";
    MYSQL_CLOSE();
} else {
    // Vis form data:
?>
    <form method="post" action="<?php echo $PHP_SELF; ?>" enctype="multipart/form-data">
    <INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="1000000">
    <input type="file" name="form_data"  size="40">
    <input type="submit" name="gem" value="Gem">
    </form>
<?php
}
?>
Avatar billede tipsen Nybegynder
28. juni 2003 - 00:56 #3
Prøv:

<?php

if (!empty($gem))  {
require("sql.php");
    if (!empty($form_data)) 
      {
        $data = addslashes(fread(fopen($form_data, "r"), filesize($form_data)));
      }
    $sql = "

UPDATE billeder SET
billede='$data',
filesize= '$form_data_size',
filetype='$form_data_type'
WHERE filename='design-gron'";
    $result=MYSQL_QUERY($sql) or die(mysql_error());
    if(mysql_affected_rows() == 0) {
      echo "Ingen rækker opfyldte denne sql: $sql";
    } else {
      echo mysql_affected_rows() . " rækker blev ændret!";
    }

    print "<p>This file has the following Database ID: <b></b>";
    MYSQL_CLOSE();
} else {
    // Vis form data:
?>
    <form method="post" action="<?php echo $PHP_SELF; ?>" enctype="multipart/form-data">
    <INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="1000000">
    <input type="file" name="form_data"  size="40">
    <input type="submit" name="gem" value="Gem">
    </form>
<?php
}
?>
Avatar billede mads1987 Nybegynder
28. juni 2003 - 01:03 #4
Hmm det funker ikke, den udskriver

Ingen rækker opfyldte denne sql: UPDATE billeder SET billede='ÿØÿà\0JFIF\0\0\0d\0d\0\0ÿì\0Ducky\0\0\0\0\0*\0\0ÿî\0Adobe\0dÀ\0\0\0ÿÛ\0„\0     !!$$!!0///06666666666  \"\"  %%\"\"%%//,//6666666666ÿÀ\0_\"\0ÿÄ\0›\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0!1±AQaqÁ2r‘\"b34¡ÑBR#s$5‚c%ð’¢²CÂ\0\0\ og en masse mere

Og der bliver heller ikke oprettet noget til db'en
Avatar billede tipsen Nybegynder
28. juni 2003 - 01:11 #5
Dvs: Ingen rækker opfyldte din where betingelse - altså der findes ingen poster som opfylder det krav du specificerede i din where betingelse og derfor er ingen rækker blevet opdateret - det rent funktionelle er i orden, men indholdet i tabellen er måske ikke som du forventer... - husk der kan være forskel på store og små bogstaver!
Avatar billede mads1987 Nybegynder
28. juni 2003 - 01:38 #6
Du har jo sikkert ret! Men jeg kan altså ikke umeltbart finde fejl.
Her er strukturen på billeder

CREATE TABLE billeder (
  billede longblob NOT NULL,
  filename varchar(50) NOT NULL default '',
  filesize varchar(50) NOT NULL default '',
  filetype varchar(50) NOT NULL default '',
  PRIMARY KEY  (filename)
) TYPE=MyISAM;
Avatar billede mads1987 Nybegynder
28. juni 2003 - 16:44 #7
Jeg kan simpelhen ikke finde fejlen :( Er der nogele der kan se hvad jeg gør galt?
Avatar billede tipsen Nybegynder
28. juni 2003 - 18:16 #8
som jeg skriver: ingen poster opfylder at filename='design-gron' !
Avatar billede mads1987 Nybegynder
29. juni 2003 - 23:24 #9
Jeg havde glemt .jpg så nu virker det! Vil du venligt svare.
Avatar billede tipsen Nybegynder
30. juni 2003 - 00:32 #10
godt nok.
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