Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

afbeelding aan een sql database toevoegen

Landzaat
5 antwoorden
  • Wie kan mij helpen met het volgende probleem.

    Op internet heb ik de volgende receptendatabase gevonden:
    http://www.cookdojo.com/cookdojo_home.php

    Dit script is gemaakt in php met een sql database.
    De sql database ziet er als volgt uit:

    – ——————————————————–

    Tabel structuur voor tabel `catrecipe`

    DROP TABLE IF EXISTS catrecipe;
    CREATE TABLE catrecipe (
    catID int(11) NOT NULL auto_increment,
    cat_title varchar(200) collate latin1_general_ci NOT NULL default '',
    PRIMARY KEY (catID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

    – ——————————————————–


    Tabel structuur voor tabel `recipe`

    DROP TABLE IF EXISTS recipe;
    CREATE TABLE recipe (
    recipeID int(11) NOT NULL auto_increment,
    recipe_title varchar(200) collate latin1_general_ci NOT NULL default '',
    recipe_ingredients text collate latin1_general_ci NOT NULL,
    recipe_method text collate latin1_general_ci NOT NULL,
    recipe_note text collate latin1_general_ci NOT NULL,
    catID int(11) NOT NULL default '0',
    PRIMARY KEY (recipeID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;


    – ——————————————————–

    [b:c3b8a32094]Dit script heeft een nadeel nl dat je geen plaatjes van het recept kan toevoegen.
    Nu heb ik voor dit probleem een nieuw tabel afbeelding gemaakt:[/b:c3b8a32094]

    – ——————————————————–

    Tabel structuur voor tabel `afbeelding`

    DROP TABLE IF EXISTS afbeelding;
    CREATE TABLE afbeelding (
    AFBEELDING_ID bigint(20) NOT NULL auto_increment,
    recipeID bigint(20) NOT NULL default '0',
    Bestandstype varchar(5) collate latin1_general_ci NOT NULL default '',
    PRIMARY KEY (AFBEELDING_ID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

    – ——————————————————–

    [b:c3b8a32094] Tevens heb ik een upload script geschreven wat er voor zorgt dat alleen een plaatje naar de webserver geupload mag worden.
    Dit script ziet er als volgt uit:[/b:c3b8a32094]

    – ——————————————————–

    <?php
    /* Script name: uploadFile.php
    * Description: Uploads a file via HTTP using a POST form.
    */
    if(!isset($_POST['Upload']))
    {
    include("form_upload.inc";);
    } # endif
    else
    {
    if($_FILES['pix']['tmp_name'] == "none";)
    {
    echo "<b>File did not successfully upload. Check the
    file size. File must be less than 500K.<br>";
    include("form_upload.inc";);
    exit();
    }
    if(!ereg("image",$_FILES['pix']['type']))
    {
    echo "<b>File is not a picture. Please try another
    file.</b><br>";
    include("form_upload.inc";);
    exit();
    }
    else
    {
    $destination = 'uploadimages'."\\".$_FILES['pix']['name'];
    $temp_file = $_FILES['pix']['tmp_name'];
    move_uploaded_file($temp_file,$destination);
    echo "<p><b>The file has successfully uploaded:</b>
    {$_FILES['pix']['name']}
    ({$_FILES['pix']['size']})</p>";
    }
    }
    ?>

    – ——————————————————–

    <!– Program Name: form_upload.inc
    Description: Displays a form to upload a file –>
    <html>
    <head><title>File Upload</title></head>
    <body>
    <ol><li>Enter the file name of the product picture you want
    to upload or use the browse button
    to navigate to the picture file.</li>
    <li>When the path to the picture file shows in the text
    field, click the Upload Picture button.</li>
    </ol>
    <div align="center"><hr>
    <form enctype="multipart/form-data"
    action="add_new.php" method="POST">
    <input type="hidden" name="MAX_FILE_SIZE" value="500000">
    <input type="file" name="pix" size="60">
    <p><input type="submit" name="Upload"
    value="Upload Picture">
    </form>
    </body></html>

    – ——————————————————–

    [b:c3b8a32094]Hoe kan ik het script zo aanpassen dat er een verwijzing komt in mijn afbeelding tabel zodat als recept 1 getoont wordt
    ook afbeelding 1 weergegeven wordt ?

    Ik heb hiervoor in de tabel afbeelding al een rij gemaakt met de naam recipeID


    Ik hoop dat het duidelijk is wat de bedoeling is en dat jullie mij hiermee kunnen / willen helpen.
    Alvast bedankt. [/b:c3b8a32094]
  • ik neem aan dat je in recipeID het id gaat zetten, die in de andere tabel gebruikt word?

    dan kun je straight join gebruiken. dit is over meerdere tabellen heen. je krijgt dan zoiets als:
    [code:1:6ce910f0a2]select * from recipe, afbeelding where recipe.recipeID = afbeelding.afbeelding_ID and recipe.recipeID = 1[/code:1:6ce910f0a2]

    Als het goed is krijg je nu alle velden van recipe èn afbeelding binnen, waar recipeId = 1.

    Maar als je de database kan aanpassen, waarom maak je in de tabel recipe geen veldje met recipe_afbeelding, waarin je het path zet van de foto? lijkt mij eenvoudiger…

    Peter
  • t kan natuurlijk ook een 1:n-relatie zijn; een recept kan (of moet) een of meer fotos hebben.
    Dan moet je je tabellenstructuur behouden. Eerst het recept tonen en dan voor elke foto de foto tonen.
  • Bedankt voor reacties

    Elke recept krijgt een of 2 foto's dus dan moet ik de structuur wel behouden. Het nadeel van dit script is dat recipeID nergens getoont wordt bij het aanmaken van een nieuw recept. Dus als ik een nieuw recept aanmaak moet recipeID dus 2x ingevuld worden. Een keer in de tabel: afbeelding en één keer in de tabel: recipe.

    Hoe krijg ik dit samen met de locatie van de afbeelding in de tabellen ?
  • die recipeID wordt vanzelf aangemaakt (volgnummer). Het nummer kan je ophalen met mysql_insert_id. Dat nummer kan je vervolgens weer gebruiken om je afbeeldingen toe te voegen

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.