Avatar billede delphiuser Mester
11. juli 2008 - 14:55 Der er 21 kommentarer og
1 løsning

billed upload igen

hej eksperter

jeg oprettede et spørgsmål for nogle dage siden med hensyn til noget med at uploade billeder. Men desværre uden held. har siddet og leget lidt med det selv men kan simpelthen ikke gennemskue hvad jeg skal gøre. jeg før følgende fejl når jeg prøver at uploade.

Column count doesn't match value count at row 1

her er hvordan min tabel ser ud...

CREATE TABLE `produkt` (
  `id` int(11) NOT NULL auto_increment,
  `prnavn` varchar(50) NOT NULL,
  `billed` mediumblob,
  `beskrivelse` text NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;


så nu håber jeg at i vil hjælpe mig med at få dette til at fungere. her kommer den fil som skal uploade mit billed samt en beskrivelse.

upload.php
******************************************************************
<?php
require('dataconfig.php');
//print_r($_POST);

unset($billed);

if(!isset($_FILES) && isset($HTTP_POST_FILES))
$_FILES = $HTTP_POST_FILES;

if(!isset($_FILES['billed']))
$error["billed"] = "An image was not found.";


$billed = basename($_FILES['billed']['name']);
//echo $billed;

if(empty($billed))
$error["billed"] = "The name of the image was not found.";

if(empty($error))
{
$billed = "img/" . $billed;
//echo $billed;
$result = @move_uploaded_file($_FILES['billed']['tmp_name'], $billed);
if(empty($result))
$error["result"] = "There was an error moving the uploaded file.";
else
$error["result"] = "Picture uploaded succesfully.";
}

mysql_query("insert into produkt(prnavn, billed, beskrivelse) values('$prnavn','$billed''$indhold')") or die(mysql_error());
?>

her kommer filen hvorpå jeg har min upload form.

produkt.php
******************************************************************
<table border="0" cellpadding="0" cellspacing="0" width="360">
<form action="upload.php" method="post" enctype="multipart/form-data">
<tr>
<td width="100">Produkt navn</td><td width="10">:</td><td width="250"><input name="prnavn" type="text"></td>
</tr>
<tr>
<td width="100">Billed</td><td width="10">:</td><td width="250"><input name="billed" type="file"></td>
</tr>
<tr>
<td width="100">Beskrivelse</td><td colspan="2">:</td>
</tr>
<tr>
<td width="100" colspan="3"><textarea name="indhold" style="width:350; height:125;"></textarea></td>
</tr>
<tr>
<td width="100" colspan="2" align="center"><input name="" type="submit" value="Send"></td><td width="10" align="center"><input name="" type="reset" value="Slet"></td>
</tr>
</form>
</table>
Avatar billede dkfire Nybegynder
11. juli 2008 - 14:59 #1
Du mangler bare et komma:
mysql_query("insert into produkt(prnavn, billed, beskrivelse) values('$prnavn','$billed','$indhold')") or die(mysql_error());
Avatar billede michael_stim Ekspert
11. juli 2008 - 15:01 #2
Lige sådan hurtigt (har ikke kigget det hele igennem), kan jeg se at der mangler et komma:
mysql_query("insert into produkt(prnavn, billed, beskrivelse) values('$prnavn','$billed''$indhold')") or die(mysql_error());

til

mysql_query("insert into produkt(prnavn, billed, beskrivelse) values('$prnavn','$billed','$indhold')") or die(mysql_error());
Avatar billede delphiuser Mester
11. juli 2008 - 15:15 #3
hvordan kan det være jeg ikke kan hente det ud som bliver gemt i min billed række. her er lige det jeg bruger til at få vist listen over mine produkter...

function produkt() {
$hent = mysql_query("select * from produkt order by id desc limit 10") or die(mysql_error());
if (mysql_num_rows($hent)){
while ($row = mysql_fetch_assoc($hent)) {
echo '<tr><td rowspan="2"><img src="img/'.$row['billed'].'"></td><td align="center">'.$row['prnavn'].'</td></tr>';
echo '<tr><td>'.$row['beskrivelse'].'</td></tr>';
echo '<tr><td colspan="2"></td></tr>';
}
}
}
Avatar billede michael_stim Ekspert
11. juli 2008 - 15:27 #4
Er stien korrekt og er der noget i tabellen? Kan ikke umiddelbart se noget.

Har ændret lidt i din funktion (mest det estetiske):

function produkt() {
    $hent = mysql_query("select * from produkt order by id desc limit 10") or die(mysql_error());
    $retur="";
    if (mysql_num_rows($hent)){
        while ($row = mysql_fetch_assoc($hent)) {
            $retur.= "<tr><td rowspan=\"2\"><img src=\"img/".$row['billed']."\"></td><td align=\"center\">".$row['prnavn']."</td></tr>";
            $retur.= "<tr><td>".$row['beskrivelse']."</td></tr>";
            $retur.= "<tr><td colspan=\"2\"></td></tr>";
        }
    }
    return $retur
}

echo produkt();
Avatar billede michael_stim Ekspert
11. juli 2008 - 15:29 #5
der mangler lige et ; efter $retur.

return $retur;
Avatar billede delphiuser Mester
11. juli 2008 - 15:37 #6
der står dette under min tabel

id: 1
prnavn: tester igen igen
billed: [BLOB - 20 B]
beskrivelse: dette er endnu en test for at se om det skidt skulle virke.
Avatar billede dkfire Nybegynder
11. juli 2008 - 15:47 #7
Dit felt til billedet er forkert sat op. Du skal ikke bruge blob når du bare gemmer stien til billedet. Du kan nøjes med varchar.
Avatar billede delphiuser Mester
11. juli 2008 - 15:48 #8
ok det skal jeg bare ind og ændre?
Avatar billede delphiuser Mester
11. juli 2008 - 15:51 #9
der kommer stadigvæk ikke noget billed frem.... kig på http://www.jp-pro.dk
kik under produkter
Avatar billede michael_stim Ekspert
11. juli 2008 - 15:53 #10
Avatar billede delphiuser Mester
11. juli 2008 - 15:58 #11
den har heller ikke lagt billedet ind under min mappe img.
Avatar billede dkfire Nybegynder
11. juli 2008 - 16:17 #12
Har du huske at gøre mappen skrivbar ???
Avatar billede delphiuser Mester
11. juli 2008 - 16:27 #13
er det med den der...

chmod777???
Avatar billede dkfire Nybegynder
11. juli 2008 - 16:35 #14
Jeps
Avatar billede delphiuser Mester
11. juli 2008 - 16:40 #15
hvordan skal den sættes ind?
Avatar billede delphiuser Mester
11. juli 2008 - 17:11 #16
nu har jeg gjort den chmod 777

men billedet bliver stadigvæk ikke uploadet.
Avatar billede delphiuser Mester
11. juli 2008 - 17:20 #17
det er da træls jeg ikke kan få det skide upload script til at virke. min mappe img er sat til chmod 777
Avatar billede dkfire Nybegynder
11. juli 2008 - 17:29 #18
Nu kender jeg ikke lige din mappe struktur, men jeg tror du har skrevet stien forkert.
Enten kan du:
$billed = "img/" . $billed;
//echo $billed;
$result = @move_uploaded_file($_FILES['billed']['tmp_name'], $_SERVER['Document_root']."/".$billed);

Eller du kan
$billed = "img/" . $billed;
//echo $billed;
$result = @move_uploaded_file($_FILES['billed']['tmp_name'], dirname(__FILE__)."/".$billed);
Avatar billede delphiuser Mester
11. juli 2008 - 17:41 #19
det virker heller ikke :(
Avatar billede delphiuser Mester
11. juli 2008 - 17:52 #20
har lavet svriptet om. så nu prøver jeg noget nyt. får lige denne fejl

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to access img/box_software.png in /customers/jp-pro.dk/jp-pro.dk/httpd.www/admin/do_produkt.php on line 6

her er hvordan det nye script ser ud.

<?php
require('dataconfig.php');

$target_path = "img/";
$target_path = $target_path . basename( $_FILES['billed']['name']);
if(move_uploaded_file($_FILES['billed']['tmp_name'], $target_path)) {
    echo "billedet ".  basename( $_FILES['billed']['name']).
    " has been uploaded";
} else{
    echo "There was an error uploading the file, please try again!";
}


mysql_query("insert into produkt(prnavn, billed, beskrivelse) values('$prnavn','$billed','$indhold')") or die(mysql_error());
?>
Avatar billede delphiuser Mester
11. juli 2008 - 18:18 #21
kom med nogle svar så kan i dele pointene
Avatar billede delphiuser Mester
28. juli 2010 - 13:46 #22
lukker
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