With the code below, I am attempting to loop through data in my database and then output all of the records. The code is currently outputting only the first record. I thought that PDO's fetchAll
function acted as a while
loop?
What should I do to get all of my records to output?
try {
$con = new PDO('mysql:host='.$servername.';dbname=mb', $username, $password);
$con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
//SQL Call
$sql_project = "
SELECT *, COUNT(solution) AS solution_count
FROM projectslider
WHERE solution = '". $page ."'
";
if ($project_stmt = $con->prepare($sql_project)) {
$project_stmt->execute();
$project_rows = $project_stmt->fetchAll(PDO::FETCH_ASSOC);
echo '<section id="solProj">';
foreach ($project_rows as $project_row) {
$solution_count = $project_row['solution_count'];
$project_solution = $project_row['solution'];
$project_img = $project_row['image'];
$project_alt = $project_row['alt'];
$project_img = '<img class="home-comment-profile-pic" src=" '. $project_img .'" alt="' . $project_alt .'">';
if ($solution_count === 0) {
echo 'No projects found.';
} else {
echo '<div class="projSlide">';
echo $project_img;
echo '</div>';
}
}
echo '</section>';
}
}
catch(PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
Updated Code:
$sql_project_count = "
SELECT *, COUNT(solution) AS solution_count
FROM projectslider
WHERE solution = '". $page ."'
";
$sql_project = "
SELECT *
FROM projectslider
WHERE solution = '". $page ."'
";
if ($project_stmt_count = $con->prepare($sql_project_count)) {
$project_stmt_count->execute();
$project_rows_count = $project_stmt_count->fetchAll(PDO::FETCH_ASSOC);
foreach ($project_rows_count as $project_row_count) {
$solution_count = $project_row_count['solution_count'];
}
}
//var_dump($solution_count);
if ($project_stmt = $con->prepare($sql_project)) {
$project_stmt->execute();
$project_rows = $project_stmt->fetchAll(PDO::FETCH_ASSOC);
echo '<section id="solProj">';
foreach ($project_rows as $project_row) {
$project_solution = $project_row['solution'];
$project_img = $project_row['image'];
$project_alt = $project_row['alt'];
$project_img = '<img class="home-comment-profile-pic" src=" '. $project_img .'" alt="' . $project_alt .'">';
if ($solution_count === 0) {
echo 'No projects found.';
} else {
echo '<div class="projSlide">';
echo $project_img;
echo '</div>';
}
}
echo '</section>';
}