Prune Skrevet 3. juli 2008 Del Skrevet 3. juli 2008 Jeg følger en tutorial/eksempel på en liten nettbutikk. Alt går bra til slutt foruten noe vesentlig som manglet. Hvordan vise bilde fra vareposten. Selve tut-en stopper etter dette, og forklarer ikke hva jeg skal gjøre. Det som jeg stusset over, men gikk videre på, var at feltet med bilde, "item_image," var et VARCHAR felt, og jeg la bare inn et fiktivt filnavn. Spørringen går jo til dette feltet, men viser jo intet bilde. Jeg gjorde om feltet til BLOB og lastet opp et jpg, og trodde at alt ble i orden. Men, som mange sikkert her vet, funka ikke. Forfatteren av scriptet har unlatt noe til meg som jeg skal bryne meg med. Det jeg er ute etter er den enkle koden og spørringen, slik at jeg kan forstå fra bunnen av. Jeg legger med scriptet, om noen vil se. <?php //connect to database $mysqli = mysqli_connect("localhost", "...", "...", "butikk"); $display_block = "<h1>My Store - Item Detail</h1>"; //validate item $get_item_sql = "SELECT c.id as cat_id, c.cat_title, si.item_title, si.item_price, si.item_desc, si.item_image FROM store_items AS si LEFT JOIN store_categories AS c on c.id = si.cat_id WHERE si.id = '".$_GET["item_id"]."'"; $get_item_res = mysqli_query($mysqli, $get_item_sql) or die(mysqli_error($mysqli)); if (mysqli_num_rows($get_item_res) < 1) { //invalid item $display_block .= "<p><em>Invalid item selection.</em></p>"; } else { //valid item, get info while ($item_info = mysqli_fetch_array($get_item_res)) { $cat_id = $item_info['cat_id']; $cat_title = strtoupper(stripslashes($item_info['cat_title'])); $item_title = stripslashes($item_info['item_title']); $item_price = $item_info['item_price']; $item_desc = stripslashes($item_info['item_desc']); $item_image = $item_info['item_image']; } //make breadcrumb trail $display_block .= "<p><strong><em>You are viewing:</em><br/> <a href=\"seestore.php?cat_id=".$cat_id."\">".$cat_title."</a> > ".$item_title."</strong></p> <table cellpadding=\"3\" cellspacing=\"3\"> <tr> <td valign=\"middle\" align=\"center\"><img src=\"".$item_image."\"/></td> <td valign=\"middle\"><p><strong>Description:</strong><br/>".$item_desc."</p> <p><strong>Price:</strong> \$".$item_price."</p>"; //free result mysqli_free_result($get_item_res); //get colors $get_colors_sql = "SELECT item_color FROM store_item_color WHERE item_id = '".$_GET["item_id"]."' ORDER BY item_color"; $get_colors_res = mysqli_query($mysqli, $get_colors_sql) or die(mysqli_error($mysqli)); if (mysqli_num_rows($get_colors_res) > 0) { $display_block .= "<p><strong>Available Colors:</strong><br/>"; while ($colors = mysqli_fetch_array($get_colors_res)) { $item_color = $colors['item_color']; $display_block .= $item_color."<br/>"; } } //free result mysqli_free_result($get_colors_res); //get sizes $get_sizes_sql = "SELECT item_size FROM store_item_size WHERE item_id = ".$_GET["item_id"]." ORDER BY item_size"; $get_sizes_res = mysqli_query($mysqli, $get_sizes_sql) or die(mysqli_error($mysqli)); if (mysqli_num_rows($get_sizes_res) > 0) { $display_block .= "<p><strong>Available Sizes:</strong><br/>"; while ($sizes = mysqli_fetch_array($get_sizes_res)) { $item_size = $sizes['item_size']; $display_block .= $item_size."<br/>"; } } //free result mysqli_free_result($get_sizes_res); $display_block .= " </td> </tr> </table>"; } ?> <html> <head> <title>My Store</title> <style type="text/css" media="all"><!-- body { color: olive; font-size: 12px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: white; margin: 20px; padding: 5px; border-style: solid; border-width: 1px; } h1 { color: navy; font-size: 16px; font-family: Verdana, Arial, Helvetica, sans-serif; font-weight: bold; text-decoration: underline; margin: 0.67em 0; } --></style> </head> <body> <?php echo $display_block; ?> </body> </html> Lenke til kommentar
Nano- Skrevet 3. juli 2008 Del Skrevet 3. juli 2008 (endret) Det er ikke spesielt gunstig å lagre hele bildefiler i databasen. Varchar-feltet er nok for å lagre en streng med url til bildet, prøv å legge inn en ikke-fiktiv adresse og se om det kommer noe. Bildet til en vare kan lastes opp og legges i en mappe på serveren, så lagres adressen til bildet i databasen sammen med annen informasjon om produktet. Enkel måte å gjøre det på. Endret 3. juli 2008 av Nano- Lenke til kommentar
Prune Skrevet 3. juli 2008 Forfatter Del Skrevet 3. juli 2008 Jo'a, men det hadde bare vært så greit og lære det. Lenke til kommentar
TheClown Skrevet 3. juli 2008 Del Skrevet 3. juli 2008 Vel, jeg mener å la lest i lignende tråder at lagring av bilder i database kan gjør siden utrolig treig å loade, samtidig er det en grense på MAX størrelse som du får inn i databasen, så da må du gjøre om på instillingene osv. Jeg har i alle mine tilfeller brukt path og navn på bildet i databasen. Funker fjell. Lenke til kommentar
dico Skrevet 4. juli 2008 Del Skrevet 4. juli 2008 Dette avvikssystemet: http://www.mantisbt.org/ lagrer bildene i binærkode i databasen. Last ned og se hvordan de har gjort det Lenke til kommentar
OISNOT Skrevet 4. juli 2008 Del Skrevet 4. juli 2008 Jo'a, men det hadde bare vært så greit og lære det. Nei egentlig ikke. Bedre å lære å lagre url til statisk innhold. Lenke til kommentar
dico Skrevet 4. juli 2008 Del Skrevet 4. juli 2008 Det trådstarter ønsker er jo å forstå oppbyggingen av å skrive bilder som binærkode til database. Det kan til enkelte tider være mer gunstig å gjøre det enn å lage URL til statisk innhold. Lenke til kommentar
OISNOT Skrevet 4. juli 2008 Del Skrevet 4. juli 2008 Det trådstarter ønsker er jo å forstå oppbyggingen av å skrive bilder som binærkode til database. Det kan til enkelte tider være mer gunstig å gjøre det enn å lage URL til statisk innhold. Det kan være greit å vite kordan man skriver ut dynamiske bilder. Men å lagre statiske bilder i db er sjelden [/ aldri] raskere enn å lagre dem til filsystemet. Derfor er det bedre å vite kordan man kan lagre en "referanse" (filnavn, kanskje mer) i db som man kan bruke for å hente frem bildet. Lenke til kommentar
Prune Skrevet 4. juli 2008 Forfatter Del Skrevet 4. juli 2008 Takker for linken! Jeg går for linker istedet, til og begynne med. Men hovedgrunnen var at det er for å gjøre det lettere for en kar som skal oppdatere en lagerbeholdning som skal vises på nettet. Han er ingen racer på PC, men å lære opp til å laste opp og slette fra phpmyadmin, ville kanskje være enklere lære enn at han må laste opp bildefiler fra en ftp klient òg. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå