在用户登录之后,我想各个用户都可以改自己的资料。
比如说,有用户a,b,c,d各自有id 1,2,3,4,
那用户b登陆之后,就应该根据他的id 2 来改他自己的数据。
这是我登陆的PHP文件
<?php
      // Datenbankverbindung aufbauen 
      $db_server = 'localhost';
      $db_user = 'root';
      $db_passwort;
      $db_name = 'partners_for_ever';
      
      $username = $_POST['username'];
      $id = array();
       
      $verbindung = mysql_connect ($db_server, $db_user, "");
      if(!$verbindung)
        die("Der Server kann nicht erreicht werden");
      if(!mysql_select_db($db_name, $verbindung)){
        die("Die Datenbank kann nicht angesprochen werden");
      }  
      $query = sprintf("SELECT username FROM Login where username='%s' AND passwort='%s'",
               $_POST['username'], $_POST['passwort']);          
      $ergebnis=mysql_query($query, $verbindung);
      
      $query_id = "SELECT user_id FROM LOGIN WHERE username = '$username'";
      $erg_id=mysql_query($query_id, $verbindung);
      
      while ($row = mysql_fetch_object($erg_id)){
        array_push($id, $row->user_id);
      }
      $user_id = $id[0];
      
      if(mysql_num_rows($ergebnis)!=0){
        session_start();
        $_SESSION['user_id']=$user_id;
        //echo $_SESSION['user_id'];
        header('location: partnerforever.php');
      }
      else{
        header('location: nicht_eingeloggt.html');
      }          
?>然后是用户可以改自己资料的PHP文件<?php
  $email = $_POST['email'];
  $geschlecht = $_POST['geschlecht'];
  $alter = $_POST['alter'];
  $wohnort = $_POST['wohnort'];
  $groesse = $_POST['groesse'];
  $haarfarbe = $_POST['haarfarbe'];
  $raucher = $_POST['raucher'];
  $familienstand = $_POST['familienstand'];
  $nation = $_POST['nation'];
  $religion = $_POST['religion'];
  $figur = $_POST['figur'];
  $bildung = $_POST['bildung'];
  $haustiere = $_POST['haustiere'];
  $tierlieb = $_POST['tierlieb'];
  $sport1 = $_POST['sport1'];
  $sport2 = $_POST['sport2'];
  $sport3 = $_POST['sport3'];
  $musik1 = $_POST['musik1'];
  $musik2 = $_POST['musik2'];
  $musik3 = $_POST['musik3'];
  $person1 = $_POST['person1'];
  $person2 = $_POST['person2'];
  $person3 = $_POST['person3'];
  $freizeit1 = $_POST['freizeit1'];
  $freizeit2 = $_POST['freizeit2'];
  $freizeit3 = $_POST['freizeit3'];
  $urlaub1 = $_POST['urlaub1'];
  $urlaub2 = $_POST['urlaub2'];
  $urlaub3 = $_POST['urlaub3'];
  $kinder = $_POST['kinder'];
  $kinder_anz = $_POST['kinder_anz'];
  $essen = $_POST['essen'];  
  // Datenbankverbindung aufbauen 
  $db_server = 'localhost';
  $db_user = 'root';
  $db_passwort;
  $db_name = 'partners_for_ever';
       
  $verbindung = mysql_connect ($db_server, $db_user, "");
  if(!$verbindung)
    die("Der Server kann nicht erreicht werden");
  if(!mysql_select_db($db_name, $verbindung)){
    die("Die Datenbank kann nicht angesprochen werden");
  }  
       session_start();
       $id = $_SESSION['id'];
        
  $query = "UPDATE USER SET email='$email', geschlecht='$geschlecht', alter='$alter', wohnort='$wohnort', groesse='$groesse',
             haarfarbe='$haarfarbe', raucher='$raucher', familienstand='$familienstand', nationalitaet='$nation',
              religion='$religion', figur='$figur', bildung='$bildung', haustiere='$haustiere', tierlieb='$tierlieb',
               sport1='$sport1', sport2='$sport2', sport3='$sport3', musik1='$musik1', musik2='$musik2', musik3='$musik3',
                person1='$person1', person2='$person2', person3='$person3', freizeit1='$freizeit1', freizeit2='$freizeit2', 
                freizeit3='$freizeit3', urlaub1='$urlaub1', urlaub2='$urlaub2', urlaub3='$urlaub3', kinder='$kinder', 
                kinder_anz='$kinder_anz', essensgeschmack='$essen' WHERE id = %s";
   
          
  $ergebnis=mysql_query($query, $verbindung);
  echo mysql_error();
                          
  
  header('location: suchprofil.html');
  
    
    
?>但系统提示有错误:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'alter='44', wohnort='wohnort', groesse='', haarfarbe='Regligon', r' at line 1
Warning: Cannot modify header information - headers already sent by (output started at E:\xampp\htdocs\eigenesProfilcheck.php:61) in E:\xampp\htdocs\eigenesProfilcheck.php on line 64
请教各位大大,问题在哪呢?

解决方案 »

  1.   

    兄弟啊· ···You have an error in your SQL syntax  sql语法错误了啊!!
    你输出你的sql语句 phpmyadmin运行一下··php 很多时候重在调试!
      

  2.   

    下面这句sql有错误!$query = "UPDATE USER SET email='$email', geschlecht='$geschlecht', alter='$alter', wohnort='$wohnort', groesse='$groesse',
      haarfarbe='$haarfarbe', raucher='$raucher', familienstand='$familienstand', nationalitaet='$nation',
      religion='$religion', figur='$figur', bildung='$bildung', haustiere='$haustiere', tierlieb='$tierlieb',
      sport1='$sport1', sport2='$sport2', sport3='$sport3', musik1='$musik1', musik2='$musik2', musik3='$musik3',
      person1='$person1', person2='$person2', person3='$person3', freizeit1='$freizeit1', freizeit2='$freizeit2', 
      freizeit3='$freizeit3', urlaub1='$urlaub1', urlaub2='$urlaub2', urlaub3='$urlaub3', kinder='$kinder', 
      kinder_anz='$kinder_anz', essensgeschmack='$essen' WHERE id = %s";
    你echo($query);打出来看看语句是哪错了
      

  3.   

    谢谢了,原来问题出在alter这本身是个指令,谢谢提醒!