컨텍스트 : 간단한 웹 기반 RPG 내에서 싸울 때 사용할 특정 수의 몬스터를 반환하는 데이터베이스를 쿼리하고 있습니다.PHP 루프를 사용하여 MYSQL 데이터베이스를 여러 번 쿼리하십시오.
문제점 : 나는 WHERE 절이 포함 된 간단한 MYSQL 쿼리를 사용하여 몬스터의 "레벨"을 결정합니다. 이전 함수에서 반환해야하는 해당 몬스터의 레벨을 포함하는 배열을 만들고 있습니다. 예 :
$levels = Array([0] => 3 [1] => 1 [2] => 1)
그래서 위의 배열에서 값은 레벨에 해당합니다. 레벨 3, 레벨 1, 레벨 1의 3 마리의 몬스터를 되 찾으려합니다.
충분히 간단합니다. 이제 MYSQL을 다음과 같이 쿼리하고 아마도 3 회 몬스터를 얻기 위해 쿼리를 3 회 반복하는 루프를 사용하고 싶습니다. 예 :
$query = "SELECT *, CardHP as EncounterCardHP, CardAP as EncounterCardAP";
$query .= " FROM Cards";
$query .= " WHERE CardTypeId = 1 AND CardRarity = {$level}";
$query .= " ORDER BY RAND() LIMIT 1";
위 쿼리에서 변수 {$ level}은 이전 배열의 몬스터 레벨입니다. 루프 서식은 내가 고심하고있는 곳이다. 내가 좋아하는 뭔가를 시도하고있다 :이 가까운 생각
while ($i = $levels) {
$query = "SELECT *, CardHP as EncounterCardHP, CardAP as EncounterCardAP";
$query .= " FROM Cards";
$query .= " WHERE CardTypeId = 1 AND CardRarity = {$i}";
$query .= " ORDER BY RAND() LIMIT 1";
$result_set = mysql_query($query, $connection);
confirm_query($result_set);
return $result_set;
}
을,하지만 난이 궁극적으로 나에게 MYSQL에서 괴물의 단일 배열을주고받을 수있는 방법을 확인할 수 없습니다. 위의 그림과 같이 3 개의 별도 어레이를 구축하고 있습니까? array_merge()를 사용해야합니까, 아니면 좀 더 우아한 방법이 있습니까? 만약 내가 같은 레벨의 몬스터를 모두 얻는다면 나는 단지 1 시간과 3 분의 1의 질의를 할 수 있습니다. 그러나 나는 이전의 배열이 나타내는 것에 대응하기 위해 몬스터가 필요합니다.
의미가 있습니까? 도움말은 항상 높이 평가됩니다.
[** 새 코드 **에서 mysql_ * 함수를 사용하지 마십시오 (http://bit.ly/phpmsql). 더 이상 유지 관리되지 않으며 공식적으로 사용되지 않습니다 (https://wiki.php.net/rfc/mysql_deprecation). [** 빨간색 상자 **] (http://j.mp/Te9zIL)를 참조하십시오. 대신 [* prepared statements *] (http://j.mp/T9hLWi)에 대해 알아보고 [PDO] (http://php.net/pdo) 또는 [MySQLi] (http://php.net/)를 사용하십시오. mysqli) - [이 기사] (http://j.mp/QEx8IB)는 어떤 결정을 내리는 데 도움이 될 것입니다. PDO를 선택하면 [여기 좋은 자습서입니다] (http://j.mp/PoWehJ) – vanneto
고마워. 이 프로젝트는 주변에 있었기 때문에 업그레이드하기 위해 드래그했습니다. 그러나 나는 그 변화를 배우기위한 일을 할 것입니다. 감사. –