2012-03-20 2 views
0

私はスポーツスコアをリストアップしたウェブサイトを持っています。このように、それを現在の作品:PHP MySQLの名前スコア分離システム

名姓1-0名姓

それはこのスペースに基づいて爆発、その後に基づく(スコアを含む)第三のいずれかを爆発 - 。

この問題は、2語以上の名前をサポートしていないことが原因です。私が - firstを使って爆発した場合、 - inの名前はサポートされません。結果はテキストエリアに追加されます。なぜなら、追加する必要がある数千ものため、複数のフィールドにデータを入力させたくないからです。誰もがマルチワードと特殊文字を区別しないシステムを作る方法についてアドバイスをしていますか?多分、数字に遭遇したときに分割し、最初のチャンクをファーストネームとして、最後のチャンクをその選手のスコアとして、残りを姓として選択する方法はありますか?

+0

あなたは正規表現を調べる必要があります。 – Damp

+0

はデータベース設計が貧弱だと聞きます。 – Flukey

+1

@Flukeyこれは私が最初に思ったものですが、これはデータ入力形式でありデータ記憶域ではないようですフォーマット。私はOPがこれらをタイプインしているか、他の場所からそれらを掻き集めて、意味のある塊に分割しようとしていると思います。 – octern

答えて

0

単純な解析コマンドや正規表現を教える方法があれば、わからないことがあります。場合によっては常に曖昧な場合があります。たとえば、「Mary Ann Steiner」と「Constantin Van Dyke」という名前がある場合、パターンはまったく同じですが、分割する必要があり(2/1)、分割する必要があります(1/2)。

あなたはおそらく知られている名前の巨大な辞書に基づいて教育を受けた推測をするが、それに失敗する方法を知っているライブラリを見つけることができる...私はあなたがにデータを入力する人間の脳を必要とする。この場合で考える

をいくつかの決定を行い、データ入力中にそれらを指示します。私の経験では、複数のフィールドを使用することは、マウスの代わりにタブキーを使用してナビゲートするとそれほど遅くはありません。 :

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

次に、 "、"に基づいてそれらの行を爆発させ、要素をデータベースに入力します。

外部サイトからデータをコピー/ペーストまたはスクレイプする場合は、現在使用している方法を使用してすべての行を爆発させることもできます。これはほとんどのレコードで機能するはずですが、うまくいかない場合は明らかになります。結果のレコードには要素が多すぎます。人間の介入のためにそれらのレコードだけをあなたのスクリプトのフラグにすることができます。

+0

正当な、よく考えられた答えですが、私は正規表現でやや自動化された方法を管理しました。とにかく助けてくれてありがとう! – user1105971

関連する問題