MySQL &

1 Cevap php

Belirsiz başlık için özür dilerim, bir örnek şeyleri temizlemek olacaktır:

TABLE: Scenario_victories

ID  scenid        timestamp      userid side    playdate
1   RtBr001   2010-03-15 17:13:36   7     1     2010-03-10
2   RtBr001   2010-03-15 17:13:36   7     1     2010-03-10
3   RtBr001   2010-03-15 17:13:51   7     2     2010-03-10

ID ve diğer 4 alanlar eklendiğinde timestamp veritabanı tarafından otomatik eklemeler vardır.

Unutulmaması gereken ilk şey, bir kullanıcı muhtemelen aynı sonucu (yan = galibi) ile aynı tarihte (playdate) hakkında aynı senaryo (scenid) birden playings kaydedebilirsiniz olmasıdır. Bu nedenle iyi ölçmek için benzersiz kimliği ve zaman damgaları için ihtiyaç.

Şimdi, kendi kullanıcı sayfasında, ben sonunda 2 düğmeleri ile bir <select><option>... liste halinde bunların kayıtlı oyun tarihini gösteren kulüpler - Delete Record ve Go to Scenario

Benim komut scenid alır ve birkaç diğer tabloları vurduktan sonra daha kullanıcı dostu gibi bir şey ile döner:

  (playdate)   (from scenid)        (from side)
#########################################################
# 2010-03-10  Road to Berlin #1 -- Germany, Hungary won #
# 2010-03-10  Road to Berlin #1 -- Germany, Hungary won #
# 2010-03-10  Road to Berlin #1 -- Soviet Union won     #
#########################################################
     [Delete Record]              [Go To Scenario]

HTML:

<select name="history" size=3>
  <option>2010-03-10  Road to Berlin #1 -- Germany, Hungary won</option>
  <option>2010-03-10  Road to Berlin #1 -- Germany, Hungary won</option>
  <option>2010-03-10  Road to Berlin #1 -- Soviet Union won</option>
</select>

Eğer ilk kaydı vurgulayın ve tıklatın olsaydı şimdi, Go to Scenario Bana bunu ayrıştırmak ve görmek istediğiniz kesin senaryo üretmek için orada yeterli bilgi yoktur. Eğer seçmek için olsaydı Ancak, Delete Record yok - Ben playdate var ve ben ne gelen scenid ve side ayrıştırmak listelenmiş, ama bu örnekte her üç kayıtları aynı sonucu olurdu.

Ben bir köşeye kendimi boyalı görünmektedir. Herkes bazı benzersiz tanımlayıcı verileri (ID ve / veya timestamp) kullanıcıya göstermeden bu formdaki birlikte binmek alabilirsiniz nasıl bir öneriniz var mı?

PHP-sadece ben NoScript uyumlu olmalıdır lütfen!

1 Cevap

Eğer seçenekler üzerinde bir value özniteliğini ayarlamak, ve ID (which is unique) verilerinizi içerebilir yapabilirsiniz:

<select name="history" size=3>
  <option value="1">2010-03-10  Road to Berlin #1 -- Germany, Hungary won</option>
  <option value="2">2010-03-10  Road to Berlin #1 -- Germany, Hungary won</option>
  <option value="3">2010-03-10  Road to Berlin #1 -- Soviet Union won</option>
</select>

Yayınlanmıştır oldu veri alırken Ardından, $_POST['history'] ID kullanıcı tarafından seçilmiş girişe uygun içerecektir.

Bu ID özgün olduğundan, size, herhangi bir şüphe olmadan, verileri tanımlamak için kullanabilirsiniz.


The content of the value attribute, when set, is passed to the server when the form is submitted -- it's not displayed to the user.

Ne elde olduğunu - hiçbir value bir seçenek ayarlandığında, tarayıcı form gönderildiğinde, sunucu o seçeneğin içeriğini geçecek.

Bir dipnot düşmek gibi: Bir kullanıcı gönderilen her şeyi olduğu gibi, değer $_POST['history'], geçerli, güvenli ve bütün olduğunu için alınan kontrol gerekir - bu bir tamsayı olmalı, tek tek değerler olmalıdır kullanıcı erişebilirsiniz ...