-2

マネージャー クラスを使用してクエリの結果を取得し、情報の一部をフォーマットすることを試みているため、ビューにロジックを含める必要はありません。私はいくつかの解決策をグーグルで検索し、これが機能すると考えましたが、キー=>値の配列が空白に戻っています。誰かがそれを見て、私が間違っていることを確認できますか? ありがとう!

$results に、フォーマットして配列に戻そうとしている値が含まれていることを確認しました。

while($row = mysqli_fetch_array($results)){
    $pets[$row['petID']] = $row['petID'];
    $pets[$row['chipID']]=$row['chipID'];
    $pets[$row['adoptionDate']]=Date($row['adoptionDate'],'m-d-Y');
    $pets[$row['pType']]=$row['pType'];
    $pets[$row['breedName2']]=$row['breedName2'];
    $pets[$row['breedName1']]=$row['breedName1'];
    $pets[$row['imageName']]=$row['imageName'];
    $pets[$row['intakeDate']]= Date($row['intakeDate'],'m-d-Y');
    $pets[$row['status']]=$row['status'];
    $pets[$row['age']]=$row['age'];
    $pets[$row['ageText']]= $this->getAge($row['age']);
    $pets[$row['gender']]=$row['gender'];
    $pets[$row['genderText']] = $this->getGender($row['gender']);
    $pets[$row['breed2']]=$row['breed2'];
    $pets[$row['breed']]=$row['breed'];
    $pets[$row['petType']]=$row['petType'];
    $pets[$row['petName']]=$row['petName'];
    $pets[$row['customID']]=$row['customID'];
}

何も返さない完全な関数を次に示します。

public function getPets($cond,$orgID){

        $pets = array();
        $pg = new petsGateway();
        $results = $pg->listByQuery($cond, $orgID);

        while($row = mysqli_fetch_array($results)){
            $pets[$row['petID']] = $row['petID'];
            $pets[$row['chipID']]=$row['chipID'];
            $pets[$row['adoptionDate']]=Date($row['adoptionDate'],'m-d-Y');
            $pets[$row['pType']]=$row['pType'];
            $pets[$row['breedName2']]=$row['breedName2'];
            $pets[$row['breedName1']]=$row['breedName1'];
            $pets[$row['imageName']]= $this->getImageURL($row['imageName']);
            $pets[$row['intakeDate']]= Date($row['intakeDate'],'m-d-Y');
            $pets[$row['status']]=$row['status'];
            $pets[$row['age']]=$row['age'];
            $pets[$row['ageText']]= $this->getAge($row['age']);
            $pets[$row['gender']]=$row['gender'];
            $pets[$row['genderText']] = $this->getGender($row['gender']);
            $pets[$row['breed2']]=$row['breed2'];
            $pets[$row['breed']]=$row['breed'];
            $pets[$row['petType']]=$row['petType'];
            $pets[$row['petName']]=$row['petName'];
            $pets[$row['customID']]=$row['customID'];
        }
        return $pets;
    }
4

4 に答える 4

1

それはむしろ...反復的なコードです...クエリを変更して必要な行をフェッチし、DBで直接日付の書式設定を行う方が簡単ではないでしょう?

例えば

SELECT rowID, ... DATE_FORMAT(adoptionDate, '%m-%d-%Y'), ...
FROM ...

その後

while($row = mysql_fetch_assoc($result)) {
   $pets[] = $row;
}
于 2012-09-30T23:40:15.930 に答える
0

私は推測していますが、あなたが次のようなものを望んでいることを理解しました:

while($row = mysqli_fetch_array($results)){
    $pets[$row['petID']]['petID']        = $row['petID'];
    $pets[$row['petID']]['chipID']       = $row['chipID'];
    $pets[$row['petID']]['adoptionDate'] = Date($row['adoptionDate'],'m-d-Y');
    $pets[$row['petID']]['pType']        = $row['pType'];
    $pets[$row['petID']]['breedName2']   = $row['breedName2'];
    $pets[$row['petID']]['breedName1']   = $row['breedName1'];
    $pets[$row['petID']]['imageName']    = $row['imageName'];
    $pets[$row['petID']]['intakeDate']   = Date($row['intakeDate'],'m-d-Y');
    $pets[$row['petID']]['status']       = $row['status'];
    $pets[$row['petID']]['age']          = $row['age'];
    $pets[$row['petID']]['ageText']      = $this->getAge($row['age']);
    $pets[$row['petID']]['gender']       = $row['gender'];
    $pets[$row['petID']]['genderText']   = $this->getGender($row['gender']);
    $pets[$row['petID']]['breed2']       = $row['breed2'];
    $pets[$row['petID']]['breed']        = $row['breed'];
    $pets[$row['petID']]['petType']      = $row['petType'];
    $pets[$row['petID']]['petName']      = $row['petName'];
    $pets[$row['petID']]['customID']     = $row['customID'];
}

このようにして、すべてのペットIDを最初のキーとして、その詳細を2番目のキーとして持つ配列を作成します。配列プッシュも使用できます。

于 2012-09-30T22:56:52.210 に答える
0

うーん....あなたが何を望んでいるのかわかりませんが、あなたが今持っているように、配列のキーと値は同じになり、役に立たなくなります。

つまり、petName $pets['Fido'] = 'Fido'

$rowおそらく、割り当ての左側の部分を取り除きたいので、これで終わります

while($row = mysqli_fetch_array($results))
{
    $pet = Array();

    $pet['petID']        = $row['petID'];
    $pet['chipID']       = $row['chipID'];
    $pet['adoptionDate'] = Date($row['adoptionDate'],'m-d-Y');
    $pet['pType']        = $row['pType'];
    $pet['breedName2']   = $row['breedName2'];
    $pet['breedName1']   = $row['breedName1'];
    $pet['imageName']    = $row['imageName'];
    $pet['intakeDate']   = Date($row['intakeDate'],'m-d-Y');
    $pet['status']       = $row['status'];
    $pet['age']          = $row['age'];
    $pet['ageText']      = $this->getAge($row['age']);
    $pet['gender']       = $row['gender'];
    $pet['genderText']   = $this->getGender($row['gender']);
    $pet['breed2']       = $row['breed2'];
    $pet['breed']        = $row['breed'];
    $pet['petType']      = $row['petType'];
    $pet['petName']      = $row['petName'];
    $pet['customID']     = $row['customID'];

    $pets.push($pet);
}
于 2012-09-30T22:51:05.143 に答える
0

これにより、レコードをループするたびに $pets[KEY] が書き換えられます。あなたがしたい..

$pets[]['petID'] = $row['petID'];
$pets[]['chipID'] = $row['chipID'];

等々

于 2012-09-30T22:51:55.580 に答える