2012-05-03 7 views
0

私はPHPに新しいので、私が尋ねるものがあれば、ごめんなさい。テキストファイルエントリを手紙で注文する

私の目標は、ユーザーが3つのテキストボックスに入力し、ユーザー1またはユーザー2であるかどうかを選択してファイルをアップロードするように求める簡単なHTMLフォームから情報を取得することです。私はその後、情報をテキストファイルに保存し、その情報をブラウザのHTMLフォームのすぐ下に表示する必要があります。情報は、最初のテキストボックスに入力された文字のアルファベット順に並べる必要があります。各エントリーはそれ自身の行になければなりません。例えば

はのは、人1が入ったとしましょう:サリー・メイ・ジョンソンユーザー1 Flowers.jpg 人2は、後に一緒に来て、入る:ジョージ・マイケル・ジョンソンユーザー2 books.jpg

今、それが表示されます サリー・メイ・ジョンソンユーザー1 Flowers.jpg ジョージ・マイケル・ジョンソンユーザー2 books.jpg私はそれがこのような最初の名前の最初の文字のアルファベット順に表示する必要が

: ゲオルクために、次のように入力されました電子マイケル・ジョンソンは、ユーザ2 books.jpg サリー・メイ・ジョンソンユーザー1 Flowers.jpg

は、ここに私のコードです:

$fone = @$_POST["one"]; 
$ftwo = @$_POST["two"]; 
$fthree = @$_POST["three"]; 
$fselect = @$_POST["select"]; 

if ($_FILES) 
{ 
    $name = $_FILES['upload']['name']; 
    (move_uploaded_file($_FILES['upload']['tmp_name'], "uploads/$name")); 
} 


//write to the file 

$values = "$fone\t"; 
$values .= "$ftwo\t"; 
$values .= "$fthree\t"; 
$values .= "$fselect\t"; 
$values .= "<img src='uploads/$name' /><br />"; 


//open and write to the file 

$fp = @fopen("store.txt", "a") or die("Couldn't open the file!"); 
$numBytes = @fwrite($fp, $values) or die ("Couldn't write values to file!"); 


@fclose($fp); 


?> 
<form action="test_it.php" enctype="multipart/form-data" method="post"> 
Box 1: <input type="text" name="one" size="15" /> 
Box 2: <input type="text" name="two" size="15" /> 
Box 3: <input type="text" name="three" size="15" /> 
Select One: <select name="select"><option value="empty">Please Select</option><option value="user1">User 1</option> 
<option value="user2">User 2</option> 
<p>Upload a File:</p> 
<p><input type="file" name="upload" /> 
<input type="hidden" name="MAX_FILE_SIZE" value="30000" /> 
<input type="submit" name="submit" value="submit" /> 
<input type="hidden" name="submitted" value="submitted" /> 
</p> 
</form> 
<?php 

print "<P>Here are the users:<br />"; 
$file = "store.txt"; 

if (file_exists($file)) 
{ 
    $file1 = fopen("store.txt" , "r"); 
     while (!feof($file1)) 
     { 
      $display = fgets($file1, filesize("store.txt")); 
      echo $display . " 
      "; 
      } 
      fclose($file1); 
      } 
      else 
      { 
       echo "<P>Error occured! Please try again!</p>"; 
      } 

すべてのヘルプは大歓迎です!前もって感謝します。

答えて

0

最初に配列を作成してみてください。

$valuesArray = array(); 
$valuesArray[] = $fone; 
    ... etc. 

その後、

$valuesArray = sort($valuesArray); 

は最後に、テキストの準備:

$values = $valuesArray[0] . "\t"; 
    ... etc. 

を、ファイルに書き込みます。

$numBytes = @fwrite($fp, $values) or die ("Couldn't write values to file!"); 
+0

これは、各エントリ内の単語をアルファベット順ではないでしょうか?私はすべてのエントリをアルファベット順に並べる必要があります。たとえば、1人の人がsally1、sally2、sally3と入力し、次にユーザー1を選択してbooksという画像をアップロードするとします。 jpg。その後、別の人が後に来て、george1 george2 george3 user2 flowers.jpgと入力します。最初の行に表示する必要があります:george1 george2 george3 user2 flowers.jpgそして次の行:sally1、sally2、sally3、user1 books.jpg 。これは理にかなっていますか?ご協力いただきありがとうございます。 – libra99

+0

あなたの質問からいくつかの詳細が残っているようです。あなたの質問では、すべての入力は1つの '$ _POST'リクエストから来ており、最初の人物*と* 2人目の人物が同じ' $ _POST'でデータを提供することはできません。私はあなたの実際のコードでは、データベース呼び出しを行っていると思います。この問題は、データベース呼び出しをコードとどのように統合するかによって変わります。あなたはあなたの質問を修正し、コードの関連するデータベース部分を含めてください。 –

+0

申し訳ありませんが、私はあなたが何を言っているのか分かりません。私はコードを入力したとおりに入力しました。新しい人はそれぞれ自分の情報を入力することができます。入力した順に情報が表示され、必要なようにアルファベット順では表示されません。私はあなたを迷惑にしていると本当にすみませますが、このようなことについては私はまったく無知です。 – libra99

0
$fone = @$_POST["one"]; 
$ftwo = @$_POST["two"]; 
$fthree = @$_POST["three"]; 
$fselect = @$_POST["select"]; 

if ($_FILES) 
{ 
    $name = $_FILES['upload']['name']; 
    (move_uploaded_file($_FILES['upload']['tmp_name'], "uploads/$name")); 
} 


// sort the entries 
$entries = array($fone, $ftwo, $fthree, $fselect); 
sort($entries); 

$values = implode("\t", $entries)."\t"; 
$values .= "<img src='uploads/$name' /><br />"; 


//open and write to the file 

$fp = @fopen("store.txt", "a") or die("Couldn't open the file!"); 
$numBytes = @fwrite($fp, $values) or die ("Couldn't write values to file!"); 


@fclose($fp); 
+0

私はこれを試しましたが、うまくいきませんでした。入力された順番でエントリを一覧表示するだけです。なぜこれが分かっていますか?私は助けを感謝しますが、ありがとう! – libra99