スコープに問題があります。MySQL で OOP PHP を使用することに関する複数の TUTS を読みましたが、まだ問題があります..だからここに行きます: ユーザー データを取得してテーブルに入力するための MySQL SELECT を格納する変数 ($GetUsersSQL) があります。ただし、このデータで MySQL UPDATE を使用しようとすると、POST データが空であると表示されます。ここに私が持っているものがあります(コードの応急処置を許してください)。
Class Lib
{
//public variables are still not retrieved by uploaddata method.
public $rank;
public $username;
public $regiment;
public $EventsRan;
public $RankUp;
public $DatePromoted;
public $ReadNextRank;
public $TimeReady;
public $registered;
public $ontag;
public $Notes;
public $GetUsersSQL;
function Connection($host,$user,$password,$datab){
$con = mysql_connect($host,$user,$password) or die(mysql_error());
if (isset($con))
{
$db = mysql_select_db($datab);
}
$LoginSQL = /**mysql_query("SELECT regiment FROM Users WHERE username='$username' AND password='$userpassword'")**/ mysql_query("SELECT * FROM NewOrder");
$regiment = $LoginSQL;
}
function GetUsers($rank){
$GetUsersSQL =/** mysql_query("SELECT * FROM Users WHERE regiment='$regiment' ORDER BY rank DESC")**/ mysql_query("SELECT * FROM NewOrder where rank='$rank'");
while ($row = mysql_fetch_array($GetUsersSQL))
{
echo '
<tr>
<td>
<input type="text" value="'.$row['Rank'].'" id="rank"></td>
<td><input type="text" value="'.$row['Name'].'" id="name"></td>
<td><input type="text" value="'.$row['Regiment'].'" id="regiment"></td>
<td><input type="text" value="'.$row['Events Ran'].'" id="EventsRan"></td>
<td><input type="text" value="'.$row['Rank Up?'].'" id="RankUp"></td>
<td><input type="text" value="'.$row['Read next Rank'].'" id="ReadyNextRank"></td>
<td><input type="text" value="'.$row['Date Promoted'].'" id="DateLastPromoted"></td>
<td><input type="text" value="'.$row['Time ready'].'" id="TimeReady"></td>
<td><input type="text" value="'.$row['Registered'].'" id="Registered"></td>
<td><input type="text" value="'.$row['On Tag?'].'" id="OnTag"></td>
<td><input type="text" value="'.$row['Notes'].'" id="Notes"></td>
';
}
}
public function __UploadData()
{
return $this->GetUsersSQL;
//this is still broken
if (isset($_POST['rank']))
{
$this->rank = $_POST['rank'];
$this->name = $_POST['name'];
$this->regiment = $_POST['regiment'];
$this->EventsRan = $_POST['EventsRan'];
$this->RankUp = $_POST['RankUp'];
$this->DatePromoted = $_POST['DateLastPromoted'];
$this->ReadNextRank = $_POST['ReadyNextRank'];
$this->TimeReady = $_POST['TimeReady'];
$this->registered = $_POST['Registered'];
$this->ontag = $_POST['OnTag'];
$this->Notes = $_POST['Notes'];
$Query = mysql_query("UPDATE gfy SET rank='$this->rank', name='$this->name',ReadNextRank ='$this->ReadNextRank', regiment='$this->regiment', EventsRan='$this->EventsRan', RankUp='$this->RankUp', DatePromoted='$this->DatePromoted', timeReady='$this->Timeready',registered='$this->registered',ontag='$this->ontag' notes='$this->notes' WHERE name='$this->name'")or die(mysql_error());
}
else
{
echo 'EMPTY';
}
}
}
2013 年 1 月 13 日午前 1 時 11 分 (太平洋標準時) 以降、次の変更を行いました。 GetUsers($rank) へ: $this->GetUsersSQL = '...'; _UploadData() へ: isset は isset($this->rank) に変更され、クエリは '".$this->rank."' を使用するようになりました... vs '$rank'