php dinamik onay kutularını

3 Cevap php

Currently I have a form that submits an image with textfields such as title, description and another field that autoincrements for imageID, another area for the actual file , called vfile, and *** another part that has 3 checkboxes and a text field. Everything works fine, and this is what it does. Submits the data to a database so that it can pull the information to a page on the website. The only part I am trying to update is: The 3 checkboxes and the textfield. Lets say the first checkbox reads: Apples The second : Oranges The Third: Grapes And in the other category is a blank textfield that if you add something, it would add it to a category called "Other".

- Elma, 2 - portakal, 3 - üzüm, 4 - Diğer 1: Yani veritabanı tasarımı 4. alanları vardır.

When I click a checkbox, it would add checked to the database under the correct one, either apples, oranges, or grapes. If I add a field to the textbox such as: Bannanas, then it would add "Bannanas" to the database field vother and show that in the database.

Bu, tüm iyi, ama sonraki resim 4 öğeleri, artı başka bir tane var ne olur? Böyle sonraki resim vardı Elma, Portakal, Üzüm, Bannanas ve Erikler sanki?

How could I have the "Bannanas" other category, change into a checkbox category that could be chosen for the next pics when I go to the add images page next time. So that when I go to the second picture to submit, it would give me the option of not just 3 checkboxes, but 4 checkboxes now, that I could check the first 4, "Apples, Oranges, Grapes, Bannanas" and then put Plums in the other category.

Temelde üzerine bu diğer feild ne alır ve sonra onay kutusunu seçenek dizi görüntülenir ve bir onay kutusu olduğu için, artık Diğer Kategori kaldırılır veritabanına yeni bir kategori addes gönderin. Bitti aynı kategori yaratıyor ve muhtemelen eski verileri yeniden dururdu için (böylece, eski alanda sola değerini istemem.

Anyway, any suggestions? Thanks in advance.

3 Cevap

(Bu bir veritabanı tasarım soru daha ve bir php soru gibi geliyor, ama ben bunu tavsiye arıyor ne olduğunu anlamamak olabilir)

Eğer bu nitelikler (Elma, Portakal, vb) ana tabloda sütun olarak depolanır söyleyerek gibi geliyor; ancak durum daha Etiketleme gibi sesler nitelendiriyor. Genellikle etiketli olsun şeyler (görüntüleri) bir listesini, ve (: Elma, Portakal, Üzüm satırları içeren bir tablo olurdu) bütün olası etiketler ayrı bir liste korumak olacaktır. Sizin UI önceden varolan etiketleri (tag tablodaki satırlar) seçin veya "Diğer" kutusunu kullanarak yeni bir etiket eklemek için seçeneği vardır. Yeni etiketler etiket tabloya yeni bir satır olarak eklenebilir. Etiketleri ve etiketli ürün bir çok-çok ilişkisi var beri etiketli öğeleri ve etiketleri anahtarları anahtarları saklar (bir join tablo denir) üçüncü bir tablo yaratacak; kolayca ilişkinin her iki tarafı seçebilirsiniz bu şekilde: Belirli bir öğe için tüm etiketleri olsun; Belirli bir etikete sahip tüm öğeleri almak.

Bu yardımcı olur mu?

(EDIT: yorumlar için)

Yani, Etkinlikler Etiketler listesi gibi geliyor. Tüm Etkinlikler için onay kutularını bir form göstermek istiyorsanız, ben onlar için faaliyetler tablo sorgulayabilirsiniz. Bu onay kutularını Her satır kimliğini yakalayan bir isim niteliği ya da bir şey olabilir onun bağlı olduğu.

Ayrıca ben katılmak tablodan benim şu anda görüntülenen resim seçtiği etiketleri kimlikleri seçmek olacaktır. Ben onay kutusunu liste doldurmamak olduğum gibi ben sayfada atıyorum onay kutusunu id görüntü için etiketleri listesinde olup olmadığını görmek için bu sonuç kümesini kontrol edebilirsiniz.

Göndermek üzerinde db bu geri saklamak için en kolay şey (bir işlem) katılmak tablosundan görüntü için tüm girdileri silin ve formda onay kutularının durumuna dayalı yeni girişler ile bunların yerine muhtemelen etmektir.

Elma, portakal ve üzüm sütunları bırakın.

Create a second table with two fields: imageID and itemtype. Don't make any of the two a key. Now you can list as many different types of items for each image as you need. It will be comparatively expensive to get the list of item types in use from the database but unless you have millions of items this shouldn't be a problem. (Mikeb is suggesting to keep the list of item types in use in a separate table to speed this up.)

Alternatif dinamik karşılaşabileceğiniz her öğe türü için birinci tabloya bir sütun eklemek için. Bu çok seyrek tablo yaratacaktır. Ben bunu yapmazdım.

Sen niteliklerin sonsuz sayıda destek için veritabanı şemasını değiştirmek gerekir.

Yeni bir tablodaki ilgili kayıtların listesine kayıttaki alanları kümesi niteliklerine listenizi hareket etmelidir. Bu yeni tablo, 2 sütun gerektirir. Eğer tablolar arasında ilişki kurmak böylece ilk varolan tablodan birincil anahtardır. İkinci Eğer ana tablodaki her kayıt için dilediğiniz nitelikleri tablo gibi birçok kayıt olabilir öznitelik alanı (vb 'Muz' veya 'Elma' veya 'Erikler') 'dir. Hiçbiri işaretli ise de hiçbir nitelik kayıtları var olabilir.

İki tablo arasındaki ilişki Bu tür bir bir-çok ilişkisi denir.