2012-03-20 54 views
0

我有一個網站列出了體育比分。它目前是這樣的:PHP MySQL名稱分數系統

名字姓氏1-0名字姓氏

它爆炸此基礎上的空間,然後爆炸基礎上,第三個(含分) - 。

問題在於它不支持超過2個單詞的名稱。如果我使用 - 首先,它不會支持名稱 - 在那裏。結果被添加到textarea中,因爲我有很多需要添加的數千個,所以我不想讓多個字段輸入數據,因爲我現在可以快速添加匹配項,並快速列出每行一個結果。有沒有人有建議如何使系統既多字,也特殊字符不敏感?當遇到一個數字時,有沒有辦法進行分裂,然後選擇第一個塊作爲第一個名字,最後一個作爲玩家得分,其餘的作爲姓氏?

+0

你應該看看正則表達式 - 他們可以做你想做的事 – Damp 2012-03-20 18:28:12

+0

聽起來像可憐的數據庫設計... – Flukey 2012-03-20 19:22:34

+1

@Flukey這是我一開始以爲,但它聽起來像這是一個數據輸入格式,而不是數據存儲格式。我認爲OP要麼將這些輸入或從其他地方輸入,然後嘗試將它們分解成有意義的塊。 – octern 2012-03-20 19:27:25

回答

0

我不知道是否有任何方法來教你一個簡單的解析命令,甚至正則表達式來做你想做的。有些案例總是含糊不清。例如,如果您的名字是「Mary Ann Steiner」和「Constantin Van Dyke」,模式完全相同,但需要拆分(2/1),另一個需要拆分(1/2)。

你可能發現,知道如何讓猜測基於已知名字的一個巨大的字典,但沒有一個圖書館......

我認爲在這種情況下,你需要人腦輸入的數據做一些決定,並在數據輸入過程中指明它們,根據我的經驗,如果你使用Tab鍵而不是鼠標移動,使用多個字段的速度並不慢,你也可以使用你自己的分隔符來輸入數據,比如:

Mary Ann,Steiner,2-3 
Constantin,Van Dyke,4-2 

然後你會運行一些基於「,」爆炸這些行並將元素輸入到你的數據庫。

如果您複製/粘貼或從外部網站抓取數據,另一個選擇是使用您當前使用的方法將每一行分解。這應該適用於大多數記錄,並且當它不起作用時,它將是顯而易見的 - 結果記錄將具有太多元素。您可以讓腳本標記這些記錄以供人爲干預。

+0

有效的,經過深思熟慮的答案,儘管我用正則表達式管理了一個稍微更自動的方式。無論如何感謝您的幫助! – user1105971 2012-03-20 20:21:35