Avatar billede optur Novice
02. juni 2010 - 20:18 Der er 18 kommentarer og
1 løsning

Galleri upload med valg af galleri

jeg sidder og fucker med noget kode som vores lærer ikke vil lære mig. Jeg kan ikke få det til at virke. Til at starte med vil jeg bare have den skal skrive informationen i databasen:

Tabellen som skal skrives til har en id[int], title[varchar] og gtable[int].

Min form:

<form action="insert_img.php" method="post" enctype="multipart/form-data">
    <table id="tableid" cellpadding="0" cellspacing="0">
    <tr><td><h2>Billedegalleri</h2></td></tr>
    <?php if($action=='succes') { ?>
    <tr><td><h3>Billedet er nu uploaded</h3></td></tr>
    <?php } ?>
    <tr><td><input type="file" name="images[]" class="bginput" /></td></tr>
    <tr><td><input type="submit" value="Upload billede" /></td></tr>
    <tr><td><SELECT NAME="gtable">
            <OPTION SELECTED VALUE="">Vælg Galleri</OPTION>
            <?php
            $resultat = mysql_query("SELECT * FROM galleritable");
            while ($row = mysql_fetch_array($resultat)) {
                extract($row);
            ?>
            <OPTION value="<?php echo $id; ?>"><?php echo $title; ?></OPTION>
            <?php } ?>
            </SELECT></td></tr>
    </table>
    </form>


og jeg har så nok rodet lidt for meget i min insert_img.php

<?php
include('../include/db_con.php');
$gtable = $_POST['gtable'];
$value = $_POST['images[]'];
if(!empty($value))
{
// $filename = $value; tidligere variabel, men for at minimere variabel-skubberiet
// Tilføjer en _ (underscore) i stedet for blanke mellemrum i filnavnene
$value=str_replace(" ","_",$value);

// Tilskriver MYSQL-databasen en række med filens navn for hver af de udfyldte formularfelter fra foregående side
$pushin="insert into gallery values (id, '$value', '$gtable')" or die("Connection to table failed : " . mysql_error());
echo $pushin;
//mysql_query($pushin);

// Her deklarerer vi stien til det upload'et eller de upload'ede billeder;
// bemærk billedmappen, som vi her bruger, hedder "upload"
//$add = "upload/$value";

// Her bliver filen eller filerne "formelt flyttet" op til server'en ved "copy()"
//copy($_FILES['images']['tmp_name'][$key], $add);

//Mest beregnet til UNIX eller LINUX servere,
//hvor man midlertidigt giver upload-handlingen fuld skriverettigheder til serveren
//chmod("$add",0777);
//}
}
//header('location: index.php?table=gallery&action=succes');
?>
Avatar billede majbom Novice
02. juni 2010 - 20:58 #1
du kan starte med at fjerne [] efter images i begge filer

og rette:


$pushin="insert into gallery values (id, '$value', '$gtable')" or die("Connection to table failed : " . mysql_error());
echo $pushin;
//mysql_query($pushin);


til:


$pushin="insert into gallery values ('$value', '$gtable')";
echo $pushin;
mysql_query($pushin) or die("Connection to table failed : " . mysql_error());


jeg går ud fra at id er autoincrement...
Avatar billede optur Novice
02. juni 2010 - 21:06 #2
Ja den er a-i.
Når jeg udskriver $pushin, får jeg en blank skærm.
Avatar billede majbom Novice
02. juni 2010 - 21:12 #3
så må det jo være fordi $value er tom og den dermed ikke kommer ind i if-sætningen...
Avatar billede optur Novice
02. juni 2010 - 21:13 #4
hvordan retter jeg det?
Avatar billede majbom Novice
02. juni 2010 - 21:16 #5
hvis du har valgt en fil i formen, burde den komme derind...
Avatar billede optur Novice
02. juni 2010 - 21:21 #6
det har jeg...
Avatar billede optur Novice
02. juni 2010 - 21:34 #7
min insert_img.php ser nu sådan her ud:

include('../include/db_con.php');
$gtable = $_POST['gtable'];
$images = $_POST['images'];

// Tilskriver MYSQL-databasen en række med filens navn for hver af de udfyldte formularfelter fra foregående side
$pushin="insert into gallery values ('$images', '$gtable')";
echo $pushin;


og den udskriver kun det her:

insert into gallery values ('', '1')
Avatar billede majbom Novice
02. juni 2010 - 21:37 #8
ja nu kan jeg godt se det...

det er fordi når du bruger input type="file", får du et array der hedder $_FILES, som du skal bruge i stedet for $_POST, så hvis du nu retter det til i toppen af insert_img.php og ellers laver de rettelser jeg jeg skrev i #1...

burde det virke så langt, men så har du jo et array i $value, så hvis du skal bruge filnavnet, skal du sætte $value til $_FILES['images']['name'];
Avatar billede optur Novice
02. juni 2010 - 21:56 #9
#8 så kom den frem... tusind tak....
men en lille rettelse,

$pushin="insert into gallery values ('$value', '$gtable')";

manglede id, ellers ville den ikke skrives ind i db

$pushin="insert into gallery values (id, '$value', '$gtable')";
Avatar billede optur Novice
02. juni 2010 - 23:00 #10
Så er jeg løbet ind i et nyt problem, denne gang med at hente data'en ud.

i min db har jeg følgende:
en tabel til gallerimenuen (galleritable) som fint henter data og udskriver også den id den skal, mit problem er at jeg ikke får nogen billeder vist.

min Gallery tabel ser sådan her ud:
id[a-i, int], filename[varchar], gtabel[varchar].

har 3 billder med navnene 1.jpg, 2.jpg og 3.jpg og som test har id og gtable samme talrække (selvfølgelig uden jpg.

jeg får så denne fejl
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampplite\htdocs\bhsg.dk (old)\include\function.php on line 111

hvor linje 111 er:

while ($row = mysql_fetch_array($resultat)):


min kode:

<ul id="navilist">
<?php
$resultat = mysql_query("SELECT * FROM galleritable");
while ($row = mysql_fetch_array($resultat)) {
    extract($row); ?>
    <li><a href="<?php $_SERVER['PHP_SELF'];?>?table=<?php echo $table ?>&id=<?php echo $id ?>"<?php if($table=='official'&$id==2) { ?> style="text-decoration:underline" <?php } ?>><?php echo $title; ?><img src="images/gren.png" class="branch" width="187" height="30" alt="gren" /></a></li>
<?php
}?>
</ul>
<div id="content">
    <table id="tableid" cellpadding="0" cellspacing="0">
    <tr><td colspan="3"><h2>Billedegalleri</h2></td></tr>
    <?php
        $resultat = mysql_query("SELECT * FROM $table WHERE gtable = '$id' ORDER BY id AESC");
        $i = 0;
        while ($row = mysql_fetch_array($resultat)):
        extract($row);
        $i++;
        ?>
            <td>
                <a href="images/gallery/<?php echo $filename; ?>" rel="shadowbox" title="Billedegalleri">
                    <img src="images/gallery/<?php echo $filename; ?>" height="67" width="100" alt="Galleribillede" />
            </a>
        </td>
        <?php
   
        if(($i % 3) == 0)
            echo "</tr><tr>";
   
        endwhile;
        ?>
    </table>
</div>
Avatar billede optur Novice
02. juni 2010 - 23:06 #11
Da dette kun er "lir" til vores projekt sætter jeg lige et link til selve siden vi er "færdige" med bare så i kan se navigations strukturen Projekt
Avatar billede majbom Novice
03. juni 2010 - 11:52 #12
jeg forstår ikke hvorfor den mener det er boolean der bruges i mysql_fetch_array - prøv at udskriv $resultat
Avatar billede optur Novice
03. juni 2010 - 17:04 #13
Problemet var at jeg havde lavet en AESC i ORDER BY, og den eksistere jo ikke, den hedder jo ASC.
Avatar billede majbom Novice
03. juni 2010 - 18:42 #14
ja okay, den havde jeg sq overset - godt set :)
Avatar billede majbom Novice
06. juli 2010 - 19:58 #15
blev vi færdige? :)
Avatar billede optur Novice
17. august 2010 - 09:49 #16
Ja det gjorde vi.

Undskyld det sene svar..
Avatar billede majbom Novice
17. august 2010 - 12:11 #17
super :)
Avatar billede majbom Novice
04. november 2010 - 14:03 #18
husk at acceptere svaret :)
Avatar billede majbom Novice
03. februar 2011 - 09:59 #19
tfp
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

IT-JOB

Forsvarsministeriets Materiel- og Indkøbsstyrelse

IT-supporterelev til Lokal IT Servicecenter ved Personelkommadoen i Ballerup

Netcompany A/S

Managing Architect

AP Pension

Løsningsarkitekt

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Backup-/restore-specialist til Cyberdivisionen i Hvidovre