私は OOP を把握しようとしており、SQL データベースにアクセスするサイトを構築することにしました。これまでのところうまくいっています。いくつかのテーブルがありますが、思わぬ障害に遭遇しました
データベースにアクセスし、オブジェクト配列を作成します
$Dog_array = $sth->fetchAll(PDO::FETCH_CLASS, 'Dog');
単純化されていますが、私のクラスは次のようになります。
class Dog {
private $name;
function get_name {
return $this->name;
}
私のテーブルを構築するリスト
function edit_table($Dog) {
echo "<table><tr><form action='update.php' method ='post'>";
echo "<input type='hidden' name='id' value='" . $id ."'>";
echo "<td>". $Dog->get_id() ."</td>";
?>
<td><input type='text' name='rname' value="<?php echo $Dog->get_rname(); ?>"></td>
<td><input type='text' name='cname' value="<?php echo $Dog->get_cname(); ?>"></td>
<td><input type='text' name='dob' value="<?php echo $Dog->get_dob(); ?>"></td>
<td><input type='radio' name='gender' value='male' <?PHP if($Dog->get_gender() == 'male'){ echo "checked=\"checked\""; } ?> /> Male
<input type='radio' name='gender' value='female' <?PHP if($Dog->get_gender() == 'female'){ echo "checked=\"checked\""; } ?> />Female</td>
<td><input type='text' name='sire' value="<?PHP echo "builddropdown" ?> "></td>
<td><input type='text' name='dam' value="<?PHP drop_menu() ?>"></td>
<?php
if ($Dog->get_available()) {
$checked = "checked=\"checked\"";
} else {
$checked = NULL;
echo "<td><input type=\"checkbox\"" . $checked . "name=\"available\" value=\"TRUE\"/></td>";
if ($Dog->get_display()) {
$checked = "checked=\"checked\"";
} else {
$checked = NULL;
}
echo "<td><input type=\"checkbox\"" . $checked . "name=\"display\" value=\"TRUE\"/></td></tr></table>";
?>
<input type='submit' value='change image'/></form>
<FORM METHOD="LINK" ACTION="upload.php">
<INPUT TYPE="submit" VALUE="Change Image Thumb">
</FORM>
<input type='submit' value='change image'/></form>
<FORM METHOD="LINK" ACTION="upload.php">
<INPUT TYPE="submit" VALUE="Change Image Thumb">
</FORM>
<?php
}
?>
<input type='submit' value='update'/></form>
<FORM METHOD="LINK" ACTION="index.php">
<INPUT TYPE="submit" VALUE="Back">
</FORM>
<?php
}
?>
私のドロップダウン
function drop_menu() {
?>
<form name ="dropdown">
<select ="alldogs">
<?php
foreach ($Dog_array as $Dogs) {
?>
<option value="<?php echo $Dogs->get_id() . "\">" . $Dogs->get_rname(); ?></option>
<?php } ?>
</select>
</form>
<? }
私のドロップダウンメニューは、すべての犬のリストを作成します。
foreach に指定された引数が無効ですというエラーが表示されます
エラーが発生する理由がわかります I just don't know how to clean up this up so I do not need to pass my Object array into my edit_table function so I can pass it into drop down function . 子クラスを作成することを考えましたが、メニューは1つのオブジェクトではなくオブジェクトの配列から構築されているため、これを機能させる方法もわかりません。フォーラムへの投稿は初めてなので、助けを求める方法を修正することをお勧めします。