2016-11-25 11 views
0

これは私がすでに狂っているので、これを行うのを手伝ってください。2つの異なる形式からデータを取得し、同じ表の行を続ける

私はあなたがいない私にとっては悪夢こと、そして可能性があるため簡単に思える、Googleが助けにはならなかった。このプロセス全体に新たなんだ:(

だから、私は1つのMySQLテーブルという名前のメンバを持っています以下の構造を有する:

  • mem_id
  • ユーザ名
  • パスワード
  • firstnameの
  • titlu(タイトル)
  • descriere(説明)
  • 喜び(整数)
  • COMM

私はこのように見ているexecute.phpを使用してユーザの詳細を解析しています:

<?php 
session_start(); 
include('db.php'); 
$username=$_POST['username']; 

$result = mysqli_query($db,"SELECT * FROM member WHERE username='$username'"); 
$num_rows = mysqli_num_rows($result); 

if ($num_rows) { 
header("location: index.php?remarks=failed"); 
} 
else 
{ 
$firstname=$_POST['firstname']; 
$lastname=$_POST['lastname']; 
$username=$_POST['username']; 
$password=$_POST['password']; 
mysqli_query($db,"INSERT INTO member(firstname, lastname, username, password)VALUES('$firstname', '$lastname', '$username', '$password')"); 
header("location: index.php?remarks=success"); 
} 
?> 

ここで、giを挿入する別のフォームがありますftの詳細とmysqlの同じ行を埋める必要があります。

私は次のことを試してみたが、何の運:

<?php 
session_start(); 
include('db.php'); 
$username=$_POST['username']; 

$result = mysqli_query($db,"SELECT * FROM member WHERE username='$username'"); 
$num_rows = mysqli_num_rows($result); 

if ($num_rows) { 
header("location: index.php?remarks=failed"); 
} 
else 
{ 
$titlu = $_POST['titlu']; 
$descriere = $_POST['descriere']; 
$joy = $_POST['joy']; 
$comm = $_POST['comm']; 
$sql = "UPDATE member 
      SET titlu = '".mysql_real_escape_string($_POST[titlu])."' 
      SET descriere = '".mysql_real_escape_string($_POST[descriere])."' 
      SET joy = '".mysql_real_escape_string($_POST[joy])."' 
      SET comm = '".mysql_real_escape_string($_POST[comm])."' 
      WHERE username='".mysql_real_escape_string($_POST['username'])."'"; 
header("location: welcome.php?remarks=success"); 
} 
?> 

は、ご支援ありがとうございましたん!

+0

2番目のファイルで、ユーザーを選択するためのクエリを実行しています。行を数えます。複数の行がある場合は、remarks = failedにリダイレクトします。したがって、ユーザー名が存在する場合はfalseにリダイレクトされ、存在しない場合はユーザーが存在しないため更新できないため、データを更新することはできません。 – Twinfriends

+0

ありがとう!お願いします。 –

+1

また、 '$ sql = ...'を実行していますが、 'mysqli_query($ sql);'を使用します。 – debute

答えて

1

2番目のファイルを次のコードに変更します。それには、ユーザが指定したユーザ名あなたが最後のid挿入を取得mysqli_insert_id使用することができます

<?php 
    session_start(); 
    include('db.php'); 
    $username=$_POST['username']; 

    $result = mysqli_query($db,"SELECT * FROM member WHERE username='$username'"); 
    $num_rows = mysqli_num_rows($result); 

    if (!$num_rows) { 
    header("location: index.php?remarks=failed"); 
    } 
    else 
    { 
    $titlu = $_POST['titlu']; 
    $descriere = $_POST['descriere']; 
    $joy = $_POST['joy']; 
    $comm = $_POST['comm']; 
    $sql = "UPDATE member 
       SET titlu = '".mysql_real_escape_string($_POST[titlu])."', 
       descriere = '".mysql_real_escape_string($_POST[descriere])."', 
       joy = '".mysql_real_escape_string($_POST[joy])."', 
       comm = '".mysql_real_escape_string($_POST[comm])."' 
       WHERE username='".mysql_real_escape_string($_POST['username'])."'"; 
mysqli_query($sql); 
    header("location: welcome.php?remarks=success"); 
    } 
    ?> 
+0

これは私の問題を解決しなかったのではないかと思いますが、欠落しているテーブルの列にデータが追加されていません。 私は今、別のアプローチを試みています。私はまもなく更新されます –

+0

@ MureaAdrian私は2番目のファイル$ _POST [username]がnullだと思います。それは傷 – jophab

-1

に存在しない場合にのみindex.php?remark=failedにリダイレクトされます。次にidで更新します。

+0

になりますが、他の誰かが最初に別の挿入物を持って来たらどうしますか? – Takarii

1

私はそれが使用することによって行わ取得するために管理:

<?php 
    session_start(); 
    include('db.php'); 
    include('session.php'); 

    $res = mysqli_query($db,"SELECT * FROM member where mem_id=$loggedin_id");  
    $num_rows = mysqli_num_rows($res); 

    if (!$num_rows) { 
     header("location: welcome.php?remarks=failed"); 
    } 
    else 
    { 
    $titlu = $_POST['titlu']; 
    $descriere = $_POST['descriere']; 
    $joy = $_POST['joy']; 
    $comm = $_POST['comm']; 

mysqli_query($db,"UPDATE member 
       SET titlu = '$titlu', 
       descriere = ' $descriere ', 
       joy = '$joy', 
       comm = '$comm' 
       where mem_id=$loggedin_id"); 
    header("location: welcome.php?remarks=success"); 
    } 
    ?> 

しかし、今、私は次のステップに役立つ必要があります。

私は私を除いて、データベースからすべてのデータを取得する必要があり、通りhtmlテーブルにログインしたユーザ。私は次を試みていますが、何も返さない:

<? 
$result = mysql_query($db,"SELECT * FROM member") 

or die(mysql_error()); 

echo "<table border='1' cellpadding='10'>"; 

echo "<tr> <th>ID</th> <th>First Name</th> <th>Last Name</th> <th></th> <th></th></tr>"; 

while($row = mysql_fetch_array($result)) { 

echo "<tr>"; 

echo '<td>' . $row['mem_id'] . '</td>'; 

echo '<td>' . $row['firstname'] . '</td>'; 

echo '<td>' . $row['lastname'] . '</td>'; 

echo "</tr>"; 

} 



// close table> 

echo "</table>"; 

?> 

アイデアはありますか?

ありがとうございました!

関連する問題