2016-11-25 54 views
0

请帮我完成这件事,因为它已经让我发疯了。从2种不同的表格中获取数据,并继续使用相同的表格行

我是新来的这整个过程有啥似乎很容易对你可能是我的噩梦,没有,谷歌并没有帮助:(

所以,我有一个MySQL表命名为成员具有以下结构:

  • mem_id
  • 用户名
  • 密码
  • 姓名
  • 姓氏
  • titlu(标题)
  • descriere(介绍)
  • 喜悦(整数)
  • 通讯

我解析使用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

在你的第二个文件中,你正在查询选择用户的行数。如果有多行,则重定向至remarks =失败。所以你不能更新数据,因为如果用户名存在,它会重定向false,如果它不存在,它不能进行更新,因为用户不存在。 – Twinfriends

+0

谢谢!你能帮我清理一下吗? –

+1

你也在做'$ sql = ...'这不会被触发,使用'mysqli_query($ sql);' – debute

回答

1

将您的第二个文件更改为下面的代码。它会重定向到index.php?remark=failed只有在没有用户与给定用户名

<?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我认为在第二个文件$ _POST [username]为空。那将会是 – jophab

-1

可以使用mysqli_insert_id得到最后ID插入存在。然后用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>"; 

?> 

任何想法?

非常感谢!

相关问题