-1

以下のこのコードの何が問題なのですか。別のページにエコーさせようとしていますが、データベース上のデータを取得していないようです。

<?php
{
    // connect to server
    mysql_connect("localhost", "u", "") or die(mysql_error());
    //select database
    mysql_select_db("") or die(mysql_error());

    //Create a query that selects all data from the PATIENT table where the username and password match
    $query = "SELECT`Appointment_id`, `Doctor_id`, `Patient_id`, `Appointment_time`, `Appointment_date` FROM `Appointment`";

    //executes query on the database
    $result = mysql_query ($query) or die ("didn't query");
    //this selects the results as rows

    $num = mysql_num_rows ($result);
    //if there is only 1 result returned than the data is ok 
    if ($num == 1)
    {
        $row=mysql_fetch_array($result);
        $_SESSION['Appointment_id'] = $row['Appointment_id'];
        $_SESSION['Doctor_id'] = $row['Doctor_id'];

    }
}
?>

予定.php

<!DOCTYPE html>
<?php
session_start();
?>
<html>
    <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1" />
        <meta name="apple-mobile-web-app-capable" content="yes" />
        <meta name="apple-mobile-web-app-status-bar-style" content="black" />
        <title>
        </title>
        <link rel="stylesheet" href="https://ajax.aspnetcdn.com/ajax/jquery.mobile/1.2.0/jquery.mobile-1.2.0.min.css" />
        <link rel="stylesheet" href="my.css" />
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js">
        </script>
        <script src="https://ajax.aspnetcdn.com/ajax/jquery.mobile/1.2.0/jquery.mobile-1.2.0.min.js">
        </script>
        <script src="my.js">
        </script>
        <!-- User-generated css -->
        <style>
        </style>
        <!-- User-generated js -->
        <script>
            try {

    $(function() {

    });

  } catch (error) {
    console.error("Your javascript has an error: " + error);
  }
        </script>
    </head>
    <body>
        <!-- Home -->
        <div data-role="page" id="page1">
            <div data-theme="a" data-role="header">
            <a data-role="button" data-theme="d"  data-icon="arrow-l" data-iconpos="left" class="ui-btn-left">
                    Back
                </a>
                <a data-role="button" href="index.html" data-icon="home" data-iconpos="right" data-theme="d"class="ui-btn-right">
                 Home  
                </a>

            </div>
            <div data-role="content">

<?php
{
    // connect to server
    mysql_connect("localhost", "", "") or die(mysql_error());
    //select database
    mysql_select_db("") or die(mysql_error());


    $query = "SELECT `Appointment_id`, `Doctor_id`, `Patient_id`, `Appointment_time`, `Appointment_date` FROM `Appointment`";

    //executes query on the database
    $result = mysql_query ($query) or die ("didn't query");
    //this selects the results as rows

    $num = mysql_num_rows ($result);
    //if there is only 1 result returned than the data is ok 
    if ($num == 1)
    {
        $row=mysql_fetch_array($result);
        $_SESSION['Appointment_id'] = $row['Appointment_id'];
        $_SESSION['Doctor_id'] = $row['Doctor_id'];

    }
}
?>
            </div>
        </div>
    </body>
</html>

このページにエコー

<!DOCTYPE html>
<?php
session_start();
?>
<html>
    <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1" />
        <meta name="apple-mobile-web-app-capable" content="yes" />
        <meta name="apple-mobile-web-app-status-bar-style" content="black" />
        <title>
        </title>
        <link rel="stylesheet" href="https://ajax.aspnetcdn.com/ajax/jquery.mobile/1.2.0/jquery.mobile-1.2.0.min.css" />
        <link rel="stylesheet" href="my.css" />
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js">
        </script>
        <script src="https://ajax.aspnetcdn.com/ajax/jquery.mobile/1.2.0/jquery.mobile-1.2.0.min.js">
        </script>
        <script src="my.js">
        </script>
        <!-- User-generated css -->
        <style>
        </style>
        <!-- User-generated js -->
        <script>
            try {

    $(function() {

    });

  } catch (error) {
    console.error("Your javascript has an error: " + error);
  }
        </script>
     </head>
    <body>
        <!-- Home -->
        <div data-role="page" id="page1">
            <div data-theme="a" data-role="header">
            <a data-role="button" data-theme="d" data-icon="arrow-l" data-iconpos="left" class="ui-btn-left">
                    Back
                </a>
                <a data-role="button" data-icon="home" data-iconpos="right" data-theme="d"class="ui-btn-right">
                 Home  
                </a>
                <h3>
                    Details
                </h3>
            </div>
            <div data-role="content">
              <form name="form1" method="post" action="login.php">
            <strong>Your Details</strong>
            <br />
            <br />
            Appointment: <?php echo $_SESSION['Appointment_id'];?>
            <br />
            <br />
            Doctor: <?php echo $_SESSION['Doctor_id'];?>
            <br />
            <br />



             </div>
        </div>
    </body>
</html>

2 番目のセクションはデータベースが情報を取得する場所 (予定) で、3 番目のセクションは表示する必要がある場所を示しています。

<!DOCTYPE html>
<?php
session_start();
?>
<html>
    <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1" />
        <meta name="apple-mobile-web-app-capable" content="yes" />
        <meta name="apple-mobile-web-app-status-bar-style" content="black" />
        <meta http-equiv="refresh" content="2;url=details1.php">
        <title>
        </title>
        <link rel="stylesheet" href="https://ajax.aspnetcdn.com/ajax/jquery.mobile/1.2.0/jquery.mobile-1.2.0.min.css" />
        <link rel="stylesheet" href="my.css" />
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js">
        </script>
        <script src="https://ajax.aspnetcdn.com/ajax/jquery.mobile/1.2.0/jquery.mobile-1.2.0.min.js">
        </script>
        <script src="my.js">
        </script>
        <!-- User-generated css -->
        <style>
        </style>
        <!-- User-generated js -->
        <script>
            try {

    $(function() {

    });

  } catch (error) {
    console.error("Your javascript has an error: " + error);
  }
        </script>
    </head>
    <body>
        <!-- Home -->
        <div data-role="page" id="page1">
            <div data-theme="a" data-role="header">
            <a data-role="button" data-theme="d" href="login.html" data-icon="arrow-l" data-iconpos="left" class="ui-btn-left">
                    Back
                </a>
                <a data-role="button" href="index.html" data-icon="home" data-iconpos="right" data-theme="d"class="ui-btn-right">
                 Home  
                </a>
                <h3>
                    Login Process
                </h3>
            </div>
            <div data-role="content">

login.php

   <!DOCTYPE html>
<?php
session_start();
?>
<html>
    <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1" />
        <meta name="apple-mobile-web-app-capable" content="yes" />
        <meta name="apple-mobile-web-app-status-bar-style" content="black" />
        <meta http-equiv="refresh" content="2;url=details1.php">
        <title>
        </title>
        <link rel="stylesheet" href="https://ajax.aspnetcdn.com/ajax/jquery.mobile/1.2.0/jquery.mobile-1.2.0.min.css" />
        <link rel="stylesheet" href="my.css" />
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js">
        </script>
        <script src="https://ajax.aspnetcdn.com/ajax/jquery.mobile/1.2.0/jquery.mobile-1.2.0.min.js">
        </script>
        <script src="my.js">
        </script>
        <!-- User-generated css -->
        <style>
        </style>
        <!-- User-generated js -->
        <script>
            try {

    $(function() {

    });

  } catch (error) {
    console.error("Your javascript has an error: " + error);
  }
        </script>
    </head>
    <body>
        <!-- Home -->
        <div data-role="page" id="page1">
            <div data-theme="a" data-role="header">
            <a data-role="button" data-theme="d" href="login.html" data-icon="arrow-l" data-iconpos="left" class="ui-btn-left">
                    Back
                </a>
                <a data-role="button" href="index.html" data-icon="home" data-iconpos="right" data-theme="d"class="ui-btn-right">
                 Home  
                </a>
                <h3>
                    Login Process
                </h3>
            </div>
            <div data-role="content">

<?php
// takes the variables from action script and assigns them php variables names
$user = $_POST ['username'];
$pass = $_POST ['password'];

// if there is a user name and password
if ($user && $pass)
{
    // connect to server
    mysql_connect("localhost", "", "") or die(mysql_error());
    //select database
    mysql_select_db("") or die(mysql_error());

    //Create a query that selects all data from the PATIENT table where the username and password match
    $query = "SELECT * FROM Patient WHERE Username = '$user' AND Password = '$pass'";

    //executes query on the database
    $result = mysql_query ($query) or die ("didn't query");
    //this selects the results as rows

    $num = mysql_num_rows ($result);
    //if there is only 1 result returned than the data is ok 
    if ($num == 1)
    {
        //sends back a data of "Success"
        echo "Successful Login";
        $row=mysql_fetch_array($result);
        $_SESSION['Title'] = $row['Title'];
        $_SESSION['First_name'] = $row['First_name'];
        $_SESSION['Last_name'] = $row['Last_name'];
        $_SESSION['Address'] = $row['Address'];
        $_SESSION['Line_2'] = $row['Line_2'];
        $_SESSION['Line_3'] = $row['Line_3'];
        $_SESSION['Postcode'] = $row['Postcode'];
        $_SESSION['Home'] = $row['Home'];
        $_SESSION['Mobile'] = $row['Mobile'];



    }
    else
    {
        //sends back a message of "failed"
        echo "Unsuccessful Login";
    }
}

?>
            </div>
        </div>
    </body>
</html>
4

5 に答える 5

0

両方のページで使用session_start()してください。開始しないと使用できません。

編集

セッションが機能していることを確認するためのテスト ページを作成しますか?

はいの場合は、他のページでテストします

また、セッション値を設定する if 条件に単純なエコーを追加してみてください。そのエコーがトリガーされる場合は、コードが正しく、SESSION に何か問題があることを意味します。また、エコーがトリガーされない場合は、コードが正しくなく、セッションが設定されていないことを意味します

于 2013-03-29T04:27:37.423 に答える
0

一番上に追加してください

session_start();
于 2013-03-29T04:27:54.630 に答える
0

編集:

わかりましたので、ここに論理エラーがあると思います

$query = "SELECT `Appointment_id`, `Doctor_id`, `Patient_id`, `Appointment_time`, `Appointment_date` FROM `Appointment`";

$result = mysql_query ($query) or die ("didn't query");
$num = mysql_num_rows ($result);
if ($num == 1)
{

}

クエリにはWHERE句がないため、存在するすべてのレコードが返され、1 つのレコードがある場合にのみ SESSION 値を設定しています。elseまた、実際に何が起こるかを確認するための条件も必要です。

Create a query that selects all data from the PATIENT table where the username and password match

しかし、クエリはそれを行いません。すべてのPATIENTs のデータを取得します

たとえば、ユーザー名とパスワードがPOSTed フォームから取得した場合、次のことができます。

$username=mysql_real_escape_string($_POST["username"]);
$password=mysql_real_escape_string($_POST["password"]);

WHERE次に、句内でこれらの値を両方とも使用できます。クエリを読むだけではテーブルの構造がわからないので、正確に書くことはできません。しかし、あなたにアイデアを与えるために、

$query="SELECT id from YourTable where $username='$username' and password='$password'"

あなたは初心者なので注意することが非常に重要です:mysql_*関数はもはや使用されるべきではありません. 始めようとしているのなら、なくなったものから始めないでください。mysqli_*またはについて読むPDO

編集2:

わかりました。これを行います

  1. ログインに成功すると、患者の詳細を SESSION に保存しPatient_id$_SESSION['Patient_id'] = $row['Patient_id'];//または単にid. あなたのテーブルをチェックしてください
  2. Appointment.php で、クエリを次のように変更します。

    $pid=intval($_SESSION["Patient_id"]); $query = "SELECT Appointment_id, Doctor_id, Patient_id, FROM where Appointment_timePatient_id =$pid";Appointment_dateAppointment

  3. if($num==1) { }次のようにブロックの下にelse条件を追加します

PHP

else{
echo "Somehow we didn't get 1 record";
die();
}
于 2013-03-29T04:28:14.933 に答える
0

最初の行を取得しようとしている場合

$query = "SELECT `Appointment_id`, `Doctor_id`, `Patient_id`, `Appointment_time`, `Appointment_date` FROM `Appointment` WHERE rownum = 1 ; ";
于 2013-03-29T04:56:06.637 に答える
0

.. を使用している$_SESSIONため、php 開始タグの直後に session_start() を使用する必要があります

<?php
  session_start();

このページだけでなく.. session_start() は、使用したいすべてのページにある必要がありますsession_start()..そう$_SESSIONでない場合はアクセスできません..

于 2013-03-29T04:29:40.073 に答える