I have a cart shopping in the form of a table containing a number of products.
Based on the Id of the product, I want to display a link or an other.
I worked with thymeleaf, and it was like this
<a><i class="simple-icon-close heading-icon" th:if="${product.getIdProduct() == 1}"></i></a>
How can I use an if without thymeleaf, only with css?
I am little bit confused that how I have to create the tables for simple shopping website because I am new in php and this is my first project of shopping website choosen by myself for practice but I am confused with the size of the products and color of the products and different types of the products like laptops, mobile, jeans, shirts etc,
I have created the table but I want to know that two things
for electronics products I have to create a different table and for
clothes like jeans and shirts etc, I have to create a different table
Please can anybody tell me the structure of the table.
You'll have many tables, for example:
Products:
ID
Name
Description
Etc...
Categories:
ID
Name
ProductCategories:
ProductID
CategoryID
Types:
ID
Name
ProductTypes:
ProductID
TypeID
This enables you to have products in multiple categories and of multiple types...
Added further examples as per the comment below. For sizes you have a Sizes table, and a mapping table to map products to sizes...
Sizes:
ID
Name
ProductSizes:
ProductID
SizeID
If you also need to consider colours, and need to make a choice whether you will store sizes that have a colour, or colours that have a size...
Colours:
ID
Name
ProductColours
ProductID
ColourID
Or, if you need colours and sizes, or any further complexity, i would abstract it right out and use a ProductAttributes way of doing it, maybe out of the scope of this question as the answer would be quite lengthy indeed.
But in the same style as above, you could have a table like so:
ProductSizesColours:
ProductID
SizeID
ColourID
Which enables you to store data for products such as:
A pair of jeans that are size 32 and colour brown.
A juice blenderthat is 3 litre size and colour white.
Etc...
I think you sould create a new table like "type_product" to add the type of each product and put all your product in the same table
http://www.awesomescreenshot.com/image/565139/5394b821ed7b07f2ec6f055e44027e14
how to add like size option in product list page
I have a form which contains listbox which will contains links of attachment when ever user use the file dialog. Is there a way to have a field in the corresponding table to contain all the links.
you need to create a new table in the database that will contain the links because there are many links (potentially) for each row.
links (linkid, mainid, linkpath)
mainid is the id of the record that you want these links attached to.
Then in the rowsource property of the listbox put a selects only those links with a mainid of the current record.
In the OnCurrent event of the form you will need a
listbox1.requery
statement
This is an architecture question, but its solution lies in ColdFusion and MySQL structure--or at least I believe so.
I have a products table in my database, and each product can have any number of screen-shots. My current method to display product screen-shots is the following:
I have a single folder where all screen-shots associated with all products are contained. All screen-shots are named exactly the same as their productID in the database, plus a prefix.
For example: Screen-shots of a product whose productID is 15 are found in the folder images, with the name 15_screen1.jpg, 15_screen2.jpg, etc...
In my ColdFusion page I have hard-coded the image path into the HTML (images/); the image name is broken into two parts; part one is dynamically generated using the productID from the query; and part two is a prefix, and is hard-coded. For example:
<img src"/images/#QueryName.productID#_screen1.jpg">
<img src"/images/#QueryName.productID#_screen2.jpg"> etc...
This method works, but it has several limitations the biggest listed bellow:
I have to hard-code the exact number of screen-shots in my HTML template. This means the number of screen shots I can display will always be the same. This does not work if one product has 10 screen shots, and another has 5.
I have to hard-code image prefixes into my HTML. For example, I can have up to five types of screen-shots associated with one product: productID=15 may have 15_screen1.jpg, 15_screen2.jpg, and 15_FrontCover.jpg, 15_BackCover.jpg, and 15_Backthumb.jpg, etc...
I thought about creating a paths column in my products table, but that meant creating several hundreds of folders for each product, something that also does not seem efficient.
Does anyone have any suggestions or ideas on the correct method to approach this problem?
Many thanks!
How about...
use an Image table, one product to many images (with optional sortOrder column?), and use imageID as the jpeg file name?
update:
Have a ImageClass table, many Image to one ImageClass.
Image
-----
ID
productID
imageClassID (FK to ImageClass)
Use back-end business logic to enforce the some classes can only have one image.
Or... if you really want to enforce some classes can only one image, then can go for a more complex design:
Product
------
ID
name
...
frontCoverImageID
backCoverImageID
frontThumbImageID
backThumbImageID
Image
-----
ID
productID
isScreenShot (bit) // optional, but easier to query later...
However, I like the first one better since you can have as many classes you see fit later, without refactoring the DB.
Keeping information on how many and what images in the database is definitely the way to go.
Barring that, if you want to use naming conventions to associate images with products, and the number of images is arbitrary, then it's probably a better idea to create one folder per product:
/images/products/{SKU1}/frontview.jpg
/images/products/{SKU1}/sideview.jpg
/images/products/{SKU2}/frontview.jpg
and so forth. Then use <cfdirectory> to collect the images for a given product. You might also want to name your images 00_frontview.jpg, 01_sideview.jpg and such so that you can sort and control what order they'll display on the page.
use the cfdirectory tags to inspect the filesystem:
<!--- get a query resultset of images in filesystem --->
<cfdirectory action="list" name="images" directory="images">
<!--- get images for specific product --->
<cfquery name="productImages" dbtype="query">
select *
from images
where name like '#productid#%'
</cfquery>
<cfoutput query="productImages">
<img src="#productimages.directory#/#productimages.name#" />
</cfoutput>
You could even try using the filter attribute to cfdirectory to try and omit the QoQ