Нельзя использовать Пока более одного раза в запросе.Чтобы решить вашу проблему, правильно использовать While только один раз и создать массив , а затем вызвать его в foreach .
require_once 'self_class.php';
$user = new USER();
$under_id = "0";
$get_categories_main = $user->runQuery('SELECT * FROM category WHERE Under LIKE :under ORDER BY Id ASC ');
$get_categories_main->bindParam(':under',$under_id);
$get_categories_main->execute();
while ($fetch_category_main = $get_categories_main->fetch(PDO::FETCH_ASSOC)) {
$category[] = $fetch_category_main;
}
if(isset($_GET['both'])){
echo "Both";
foreach ($category as $key => $value) {
echo $value['Id'].") ".$value['Name']."<br />";
}
}
echo "Main";
foreach ($category as $key => $value) {
echo $value['Id'].") ".$value['Name']."<br />";
}
Вы также можете использовать For , как показано ниже;
require_once 'self_class.php';
$user = new USER();
$under_id = "0";
$get_categories_main = $user->runQuery('SELECT * FROM category WHERE Under LIKE :under ORDER BY Id ASC ');
$get_categories_main->bindParam(':under',$under_id);
$get_categories_main->execute();
$len =$get_categories_main->rowCount();
while ($fetch_category_main = $get_categories_main->fetch(PDO::FETCH_ASSOC)) {
$category[] = $fetch_category_main;
}
if(isset($_GET['both'])){
echo "Both";
for($x = 0; $x < $len; $x++) {
echo $row = $category[$x]['Id'].") ".$category[$x]['Name']."<br />";
}
}
echo "Main";
for($x = 0; $x < $len; $x++) {
echo $row = $category[$x]['Id'].") ".$category[$x]['Name']."<br />";
}