2016-05-18 45 views
0

私はこのフォームを持っていますform image。フォームを提出した後、個人情報は個人テーブルに保存され、ブックテーブルに詳細が記録されます。 idを介して2つのテーブルの間にリンクがあります。私の要件があるフォームを送信してホームページに投稿

$user_query = "INSERT INTO personaldetails(FirstName ,MiddleName,LastName, 
     Gender,Location,Email,Mobile) VALUES ('$users_firstname', 
     '$users_middlename', '$users_lastname', '$users_gender','$users_location','$users_email','$users_mobile');"; 


     $result = mysqli_query($mysqli, $user_query); 

     $user_id = mysqli_insert_id($mysqli); 


     foreach($_POST['booktitle'] as $key => $bookTitle) { 
      $bookTitle = mysqli_real_escape_string($mysqli, $bookTitle); 
      $bookGenre = mysqli_real_escape_string($mysqli, $_POST['bookgenre'][$key]); 
      $bookWriter = mysqli_real_escape_string($mysqli, $_POST['bookwriter'][$key]); 
      $bookDescription = mysqli_real_escape_string($mysqli, $_POST['bookdescription'][$key]); 

      $book_query = "INSERT INTO bookdetails(BookTitle ,BookGenre,BookWriter, 
       BookDescription, UserId) VALUES('$bookTitle', 
      '$bookGenre', '$bookWriter', '$bookDescription', '$user_id');"; 

、私が詳細と書籍の詳細個人に挿入されたデータは、ホームページ(同じFacebookのステータス更新)私はエコーしようとしています

に掲示しなければならない、私はポスト]ボタンをクリックした瞬間両方のテーブルのデータはjasonと同じですが、テーブルの行全体をフェッチしています。

$sql1 = mysql_query("select * from personaldetails"); 

    $sql2 = mysql_query(" select BookTitle,BookGenre,BookWriter,BookDescription from bookdetails INNER JOIN personaldetails ON (bookdetails.UserId = personaldetails.Id)"); 

echo '{"personaldetails": ['; 
     while($row=mysql_fetch_array($sql1)) 
     { 
      $id=$row['Id']; 
      $fname=$row['FirstName']; 
      $mname=$row['MiddleName']; 
      $lname=$row['LastName']; 
      $gender=$row['Gender']; 
      $location=$row['Location']; 
      $email=$row['Email']; 
      $mobile=$row['Mobile']; 
    echo ' 
     { 
      "Id":"'.$id.'", 
      "FirstName":"'.$fname.'" 
      "MiddleName":"'.$mname.'" 
      "LastName":"'.$lname.'" 
      "Gender":"'.$gender.'" 
      "Location":"'.$location.'" 
      "Email":"'.$email.'" 
      "Mobile":"'.$mobile.'" 
     },'; 
     } 
    echo ']}'; 

    echo '{"bookdetails": ['; 
     while($row=mysql_fetch_array($sql2)) 
     { 

      $btitle=$row['BookTitle']; 
      $bgenre=$row['BookGenre']; 
      $bwriter=$row['BookWriter']; 
      $bdescription=$row['BookDescription']; 

    echo ' 
     { 

      "BookTitle":"'.$btitle.'" 
      "BookGenre":"'.$bgenre.'" 
      "BookWriter":"'.$bwriter.'" 
      "BookDescription":"'.$bdescription.'" 

     },'; 
     } 
    echo ']}'; 

?> 

私はjqueryやajaxを通じてapiを呼び出して行うことができますが、それを行う方法はわからないという考えがあります。または私はurl paramsも必要とするかもしれません。 ご迷惑をおかけしている場合は、私を助けてください。私は感謝します。

+1

[Little Bobby](http://bobby-tables.com/)は、[あなたのスクリプトはSQLインジェクション攻撃の危険性があると言います。](http://stackoverflow.com/questions/60174/how- can-i-prevent-sql-injection-in-php)[MySQLi](http://php.net/manual/)の[prepared](http://en.wikipedia.org/wiki/Prepared_statement)ステートメントについて学んでください。 en/mysqli.quickstart.prepared-statements.php)。 [文字列をエスケープする](http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string)でも安全ではありません! –

+0

あなたは 'mysq'または' PDO'を使用する必要があるときに 'mysql'を使っています。あなたの問題ごとに、テーブルから '*'を選択しました。その理由は ''テーブルの行全体をフェッチしているからです。挿入したばかりのデータを取得するために 'lastInsertId'を使ってみてください。 –

+1

また、 'JSON'を出力する方法は面白いです。 –

答えて

0

コードを見ると、かなりのことをする必要があります。まず、JSONの作成をやめてください!次はあなたの質問です。

$sql1 = mysql_query("select * from personaldetails"); 

while($row=mysql_fetch_array($sql1)) { 
    $output['personaldetails'][] = $row; 
} 

$sql2 = mysql_query(" select BookTitle,BookGenre,BookWriter,BookDescription from bookdetails INNER JOIN personaldetails ON (bookdetails.UserId = personaldetails.Id)"); 

while($row=mysql_fetch_array($sql2)) { 
    $output['bookdetails'][] = $row; 
} 

echo json_encode($output); 
?> 
関連する問題