Avatar billede dmy Nybegynder
24. april 2009 - 12:27 Der er 14 kommentarer og
1 løsning

gemme foto og knytte til kategori.

Hej

Jeg har lavet et galleri.

Jeg sidder med en billede upload, men vil gerne lave en select option i min form, hvor den trækker mine kategorier ud og jeg så derefter kan gemme et billede i den valgte kategori.

jeg har prøvet lidt med at smække noget php ind i min option og sige echo name, men det var vist helt forkert hmm..

Hvordan kan det gøres, nogen der har forstand på dette?

se tabellerne:

categories
categoryID
name
picture

photos
photosID
photo
description
fk_category_id
Avatar billede webweaver Praktikant
24. april 2009 - 13:54 #1
Hvis jeg forstår dig korrekt, så er det bare en normalt select du vil have, som skal gemmes i databasen sammen med resten af dine informationer?

$dyr = $_POST['dyr'];

mysql_query("INSERT INTO MyTable (categories) VALUES ('$dyr')") or die(mysql_error());

<select name="dyr" size="1">
<option>Hunde</option>
<option>Katte</option>
</select>

Så skal du self. have resten af din kode med og så videre ...
Men det ovenover vil give det resultat at hvis "Hunde" vælges og der klikkes submit så vil "Hunde" blive gemt i categories i databasen.

Husk at connecte til din database.
Avatar billede majbom Novice
24. april 2009 - 19:24 #2
hvis du bare skal have udfyldt din select ud fra din category tabel kan du gøre sådan her:

$query = mysql_query("SELECT categoryID, name FROM categories") or die(mysql_error());

echo '<select name="category">\n';
echo '<option value="">vælg kategori</option>\n';
while($cats = mysql_fetch_assoc($query)){
  echo '<option value="'.$cats['categoryID'].'">'.$cats['name'].'</option>\n';
}
echo '</select>';
Avatar billede dmy Nybegynder
25. april 2009 - 09:43 #3
splazz: Ja det er præcis det jeg skal have den til.

Ved ikke helt om jeg forklarer mig rigtigt, men det er til når jeg indsætter nye billeder i mit galleri, så skal jeg kunne vælge hvilken kategori mit billede skal ligge under. Uden at skulle skrive id'erne ind, for det kan man jo ikke huske hvad er.
Avatar billede dmy Nybegynder
25. april 2009 - 09:54 #4
Har lige sat det op i min kode, men troede sådan set at jeg bare skulle innerjoine i min select into, men det kan man ikke, har lige testet, hmm...

Hvordan knytter man de tabellen sammen sådan at den kategori jeg har valgt categoryID bliver gemt i fk_category_id


<?php

$allowedFileTypes = array('jpg','gif','png');
$uploadDir = '../photos/';

//Er der trykket på Upload file knappen?
if(isset($_POST['Submit'])){
  //Har vi en fil?
  if(is_uploaded_file($_FILES['photo']['tmp_name'])){
    //Filendelse
    $extension = strtolower(pathinfo($_FILES['photo']['name'],PATHINFO_EXTENSION));
   
    //Er filen en af de filer vi gerne vil have?
    if(in_array($extension,$allowedFileTypes)){
        if( file_exists("../photos/" . $_FILES['photo']['name'])){
                $file_name = substr( md5( time() ), 0, 10 ) . '_' . $_FILES['photo']['name'];
            }else{
                $file_name = basename($_FILES['photo']['name']);
            }
   
      //Vi flytter filen fra tmp til vores UPLOADDIR
    if(move_uploaded_file($_FILES['photo']['tmp_name'],$uploadDir . $file_name))
{
          $description = mysql_real_escape_string($_POST['description']);
          mysql_query("INSERT INTO photos (description, photo) VALUES ('".$description."', '".$file_name."')")or die(mysql_error());
        echo '<h3 style="color:green;">File ('.basename($_FILES['photo']['name']).') uploaded succesfully</h3>';
      }else{
        echo '<h3 style="color:red;">Error - unable to upload file: '.basename($_FILES['photo']['name']).'</h3>';
      }
    }else{
      echo '<h3 style="color:red;">Wrong filetype, allowed filetypes are: ('.implode(',',$allowedFileTypes).')</h3>';
    }
  }else{
$description = mysql_real_escape_string($_POST['description']);
    mysql_query("INSERT INTO photos (description, photo) VALUES ('".$description."', '".$file_name."')")or die(mysql_error());
echo '<h3 style="color:red;">No file selected</h3>';
}
}

?>
<form id="form1" name="form1" method="post" enctype="multipart/form-data" action="">
    <table width="400" height="205" border="0" cellpadding="" cellspacing="1">
          <tr>
              <td><input type="file" name="photo"></td>
        </tr>
        <tr>
            <td><textarea name="description" rows="8" cols="25" ></textarea></td>
        </tr>
        <tr>
            <td><?php
           
            $query = mysql_query("SELECT categoryID, name FROM categories") or die(mysql_error());

                echo '<select name="category">\n';
                echo '<option value="">vælg kategori</option>\n';
                while($cats = mysql_fetch_assoc($query))
                {
                echo '<option value="'.$cats['categoryID'].'">'.$cats['name'].'</option>\n';
                }
                echo '</select>'; 
                ?></td>
        </tr>
        <tr>
         
            <td><input type="submit" name="Submit" value="Tilføj nyt" /></td>
        </tr>
    </table>
</form>
Avatar billede majbom Novice
25. april 2009 - 12:23 #5
er ikke sikker på at jeg forstår dit spørgsmål korrekt, men er det det her du mener:

mysql_query("INSERT INTO photos (fk_category_id, description, photo) VALUES ('".$_POST['category']."', '".$description."', '".$file_name."')")or die(mysql_error());

??
Avatar billede dmy Nybegynder
25. april 2009 - 17:07 #6
ja det er faktisk lige det jeg mener.
Men der må mangle noget, for det virker ikke rigtig.

skal jeg nede i min select mon skrive
<select name=".$cats['fk_category_id'].">
Avatar billede majbom Novice
25. april 2009 - 18:02 #7
$cats er jo det array du får når du henter fra din db, med den query tidligere.

skal du hente fk_categroy_id ud fra tabellen categories i stedet for categoryID?
Avatar billede dmy Nybegynder
26. april 2009 - 11:21 #8
jeg har de her to tabeller.

categories
categoryID
name
picture

photos
photosID
photo
description
fk_category_id

nu virker det sådan at når jeg uploader et foto, at jeg via. min select kan vælge hvilken kategori billedet skal gemmes i.

men nu mangler jeg så bare at den gemmer den kategori jeg vælger ud fra categoryID til min fk_category_id
Avatar billede webweaver Praktikant
26. april 2009 - 11:48 #9
Er det id eller navnet på kategorien som skal gemmes i fk_category_id?

Hvis det er selve navnet;

if ($_POST['category'] == 1) {

  $cat_id = "Hunde";

} elseif ($_POST['category'] == 2) {

  $cat_id = "Katte";

} etc ....

mysql_query("INSERT INTO table (fk_category_id) VALUES ('$cat_id')") or die (mysql_error());

Ellers hvis det bare direkte er id du skal "kopiere" fra categoryID til fk_category_id, kan du bare smide variablen direkte ind i din query.

mysql_query("INSERT INTO table (fk_category_id) VALUES ('$_POST['category']')") or die (mysql_error());

Jeg er nu stadig lidt i tvivl om hvad det er du gerne vil helt præcist.
Avatar billede webweaver Praktikant
26. april 2009 - 11:52 #10
QUOTE:

ja det er faktisk lige det jeg mener.
Men der må mangle noget, for det virker ikke rigtig.

skal jeg nede i min select mon skrive
<select name=".$cats['fk_category_id'].">


Neej, det står som det skal og burde virke på den måde splazz eller jeg lige har postet.
Du siger at det ikke virker. Hvilken fejl får du helt præcist? :)
Avatar billede dmy Nybegynder
26. april 2009 - 12:52 #11
jeg må forklare mig ret dårligt.

Det er et galleri jeg laver, et billede skal uploades men i en bestemt mappe fx, kan den mappe hedde "mine feriebilleder".

mappen "mine ferie billeder", ligger i tabellen

categories
categoryID
name
picture

og mit billede jeg skal lægge i mappen
ligger i den anden tabel hvor min fk_category_id skal være den samme som categoriID i  tabellen categories , for at billedet ligger i mappen "mine ferie billeder".


lige nu gemmer den intet i fk_category_id i databasen. Altså mit billede er nu ikke i nogen mappe.
Avatar billede dmy Nybegynder
26. april 2009 - 13:29 #12
Nåh jeg tror sgu jeg selv har fundet ud af det nu ;-) Tak for hjælpen. Smid et svar.

Lasse: hehe jeg går ud fra jeg skal hilse min søster.
Avatar billede webweaver Praktikant
26. april 2009 - 13:41 #13
Okay, det var godt at det fungerer :)
Ellers må du jo lige vende tilbage.

Jeg smider ikke noget svar. Det kan Splazz få lov til.
Han har gjort mest her :)

Og jo tak Diana, hils gerne Ditte :D hehehe
Avatar billede majbom Novice
26. april 2009 - 14:09 #14
det kommer her :)
Avatar billede majbom Novice
27. april 2009 - 16:54 #15
tak for point
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