JSON разбирают результат запроса Mysql в php pdo

Я пытаюсь сделать следующее

$statement = $conn->prepare('SELECT * FROM myTable');
$statement->execute();

if(!($row = $statement->fetchAll(PDO::FETCH_ASSOC))) 
{
    return false;
}

$conn = null;
} catch(PDOException $e) {
    throw $e;
    return false;
}       

return  return json_encode(array('Result'=>$row);

Работы и усилия все записи в столе делают тогда Множество JSON и посылают их,

Однако, я хочу сделать вопрос, где отобранные иды должны быть, посылают во Множестве JSON

Например, 10, 20, 30

Я предполагаю, что в этом выполнят Для петли, возможно,

$statement = $conn->prepare('SELECT * FROM myTable WHERE id = :id');
$statement->bindParam(':id', $id, PDO::PARAM_STR);
$statement->execute();

$row = $statement->fetch(PDO::FETCH_OBJ)))

Теперь предположите, что у меня есть id = 10,20,30, я хочу приложить всех их во Множестве JSON, Как я могу сделать это?

just like return json_encode(array('Result'=>$row);

Отредактированный код

    function GetMyMembers() 
    {
        $myId = trim($_REQUEST['myId']);

        try {
            $conn = $this->GetDBConnection();

            $statement = $conn->prepare('SELECT valId FROM memList WHERE myId=:myId' );
            $statement->bindParam(':myId', $myId, PDO::PARAM_INT);
            $statement->execute();

            if(!($row = $statement->fetchAll(PDO::FETCH_ASSOC))) 
            {
                return false;
            }

// $row contains ALL THE ID'S

            $placeholders = str_repeat('?,', count($row));
            $placeholders = substr($placeholders, 0, -1);
            $sql = "SELECT id, * FROM players WHERE id IN ($placeholders)";
            $statement = $conn->prepare($sql);
            $statement->execute($row);
            $rows = $sth->fetchAll(PDO::FETCH_ASSOC|PDO::FETCH_GROUP);

            $conn = null;
        } catch(PDOException $e) {
            throw $e;
            return false;
        }       
        return $rows;
    }
0
nl ja de
необходимо быть более уверены в выражении пожеланий
добавлено автор Your Common Sense, источник

2 ответы

$statement = $conn->prepare('SELECT * FROM myTable');
$statement->execute();
$data = array();
while($row = $statement->fetch(PDO::FETCH_ASSOC))) 
{
    $data[$row['id']] = $row;
}
return json_encode(array('Result'=>$data));

Btw, используя сырой API не удобен. С библиотекой абстракции Базы данных ваш код может быть всего 2 после линий:

$data = $db->getInd("id",'SELECT * FROM myTable');
return json_encode(array('Result'=>$data));

Edit:
if you have an array of ids, you need more complex code

$ids  = array(1,2,3);
$data = array();
$statement = $conn->prepare('SELECT * FROM myTable WHERE id = :id');
foreach ($ids as $id) {
    $statement->bindValue(':id', $id, PDO::PARAM_STR);
    $statement->execute();
    $data[] = $statement->fetch(PDO::FETCH_OBJ);
}
return json_encode(array('Result'=>$data));

Но пользуясь библиотекой абстракции Базы данных, будут те же самые 2 линии:

$data = $db->getAll('SELECT * FROM myTable where id IN (?a)', $ids);
return json_encode(array('Result'=>$data));

Edit2:
if you need ids only

$statement = $conn->prepare('SELECT id FROM myTable');
$statement->execute();
$data = array();
while($row = $statement->fetch(PDO::FETCH_ASSOC))) 
{
    $data[] = $row['id'];
}
return json_encode(array('Result'=>$data));

пользуясь библиотекой абстракции Базы данных, это - все еще 2 линии:

$ids = $db->getCol('SELECT id FROM myTable');
return json_encode(array('Result'=>$ids));
1
добавлено
($row = $statement-> fetchAll (PDO:: FETCH_ASSOC)) у меня есть этот код, чтобы получить список всех записей, которые дадут мне иды, теперь чтобы сделать $ids = множество (1,2,3); как я сделаю это? пожалуйста, укажите на это также –
добавлено автор Muhammad Umar, источник
didn' t понимают мою мысль, с этим выше я добираюсь, иды сначала тогда должны сделать вопрос, чтобы получить записи этих ид, таким образом, моим вопросом теперь был $row = $statement-> fetchAll (PDO:: FETCH_ASSOC)) Преобразование в $ids = множество (1,2,3);
добавлено автор Muhammad Umar, источник
$ids = array(1,2,3);
$placeholders = str_repeat('?,', count($ids));
$placeholders = substr($placeholders, 0, -1);
$sql = "SELECT id, * FROM table WHERE id IN ($placeholders)";
$sth = $dbh->prepare($sql);
$sth->execute($ids);
$rows = $sth->fetchAll(PDO::FETCH_ASSOC|PDO::FETCH_GROUP);
echo json_encode(array('Result' => $rows));

На основе дополнительных комментариев:
Наилучший вариант:

$sql = '
SELECT *
FROM table1 AS t1
INNER JOIN table2 t2
ON  t2.fилиeign_key = t1.id
';

или

$sql = 'SELECT id FROM table1';
$sth = $dbh->prepare($sth);
$sth->execute();
$ids = $sth->fetchColumn();
//next look above
0
добавлено
($row = $statement-> fetchAll (PDO:: FETCH_ASSOC)) у меня есть этот код, чтобы получить список всех записей, которые дадут мне иды, теперь чтобы сделать $ids = множество (1,2,3); как я сделаю это? пожалуйста, укажите на это также
добавлено автор Muhammad Umar, источник
нет, я достаю иды из другого стола, так как я надеялся использовать для петли, но здесь u используемое множество (1,2,3), как составить мой идентификационный список как это
добавлено автор Muhammad Umar, источник
@cetver вы понимали мою мысль или я должен быть более ясным?
добавлено автор Muhammad Umar, источник
@cetver да, пожалуйста, проверьте отредактированный код
добавлено автор Muhammad Umar, источник
I' m перепутанный, вам нужно только id' s от вопроса?
добавлено автор cetver, источник
поскольку я понял: у вас есть данные из table1 , и вы должны принести данные из table2 где table2.foreign_key в (table1.id, table1.id...) . Правильный?
добавлено автор cetver, источник
Хорошее кодирование.:)
добавлено автор Your Common Sense, источник
phpGeeks
phpGeeks
3 620 участник(ов)

Best PHP chat Еще: @dbGeeks - базы данных @phpGeeksJunior - новичкам @moscowProgers - IT Москва @ebanoePhp - весёлый канал о PHP @laravel_pro - Laravel @jobGeeks - вакансии @jsChat - JS Правила: https://t.me/phpGeeks/764859 ДР - 28.03.2016

PHP
PHP
1 309 участник(ов)

Группа про современный PHP. Обсуждаем ООП, TDD, BDD, DDD, SOLID, GRASP и прочие крутые базворды Для ознакомления: https://gist.github.com/mkusher/711bd46f0b62fbae851182e6fb3b1839 Группа PHP для новичков @phpGeeksJunior Вакансии: https://t.me/fordev

PHP — вакансии, поиск работы и аналитика
PHP — вакансии, поиск работы и аналитика
1 251 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению PHP, Laravel, Symfony, Yii и т.д. Здесь всё: full-time, part-time, remote и разовые подработки. См. также: @qa_jobs, @devops_jobs, @javascript_jobs, @nodejs_jobs, @uiux_jobs, @products_jobs

phpGeeksJunior
phpGeeksJunior
980 участник(ов)

Группа для новичков. Не стесняйтесь задавать вопросы по php. Не флудить!!!! Правила и полезные ссылки https://gist.github.com/exileed/a53dd0617b35a705ff44b38c8028e6a5 Бест от пхпгикс https://t.me/best_of_phpgeeks

phpclub.ru
phpclub.ru
872 участник(ов)

Официальный чат phpclub.ru - остерегайтесь подделок #rules Правила группы - уважайте друг друга. Скриншоты -> ссылками. Код -> pastebin.com. Вакансии строго -> https://goo.gl/4bNxym, в чат ссылку. За рекламу и мат - БАН!

Devall | PHP
Devall | PHP
272 участник(ов)

Пристанище для восходящих звёзд разработки, которые перейдут на более адекватные языки. http://combot.org/chat/-1001014863761 Инвайт: j.mp/devallphp