zsdfk
zsdfk

Reputation: 1

PHP Loop Question?

I have a php script that will loop until all the skill, exp and rating variables are displayed that the user entered into the database.

What I want is the following code to only display once and only if the variables are holding info and not empty. How can I do this. I hope I explained it okay.

I want this code displayed first.

echo '<div id="con">';
echo '<h2 id="s">Skills</h2>';
echo '<h2 id="exp">Exp</h2>';
echo '<h2 id="r">Rating</h2>';

Here is the full code.

<?php
$mysqli = new mysqli("localhost", "root", "", "sitename");
$dbc = mysqli_query($mysqli,"SELECT * FROM skills WHERE user_id='3'");

if (!$dbc) {
    print mysqli_error();
}

echo '<div id="con">';
echo '<h2 id="s">Skills</h2>';
echo '<h2 id="exp">Exp</h2>';
echo '<h2 id="r">Rating</h2>';

while ($row = mysqli_fetch_assoc($dbc)) {
    if (!empty($row['skill']) || !empty($row['exp']) || !empty($row['rating'])) { 
        if (! empty($row['skill'])) {
                echo '<div class="s">';
                echo '<p>' , htmlspecialchars($row['skill']) , '</p>';
            }

        if (! empty($row['exp'])) {
                echo '<div class="s">';
                echo '<p>' , htmlspecialchars($row['exp']) , '</p>';
            }

        if (! empty($row['rating'])) {
                echo '<div class="s">';
                echo '<p>' , htmlspecialchars($row['rating']) , '</p>';
            }

    }
}

echo '</div>';
?>

Upvotes: 0

Views: 194

Answers (1)

Sabeen Malik
Sabeen Malik

Reputation: 10880

you can take the following after the loop:

echo '<div id="con">';
echo '<h2 id="s">Skills</h2>';
echo '<h2 id="exp">Exp</h2>';
echo '<h2 id="r">Rating</h2>';

and instead of echo in the loops , use vars to store the text and then check if the var holds something and then echo

update: would become something like this:

$skills = "";
$exps = "";
$ratings = "";
while ($row = mysqli_fetch_assoc($dbc)) {
        if (!empty($row['skill']) || !empty($row['exp']) || !empty($row['rating'])) { 
                if (! empty($row['skill'])) {
                                $skills .='<div class="s">';
                                $skills .= '<p>' , htmlspecialchars($row['skill']) , '</p>';
                        }

                if (! empty($row['exp'])) {
                                $exps .= '<div class="s">';
                                $exps .= '<p>' , htmlspecialchars($row['exp']) , '</p>';
                        }

                if (! empty($row['rating'])) {
                                $ratings .= '<div class="s">';
                                $ratings .= '<p>' , htmlspecialchars($row['rating']) , '</p>';
                        }

        }
}

echo '<div id="con">';
if($skills){
 echo '<h2 id="s">Skills</h2>';
 echo $skills;
}

if($exps){
  echo '<h2 id="exp">Exp</h2>';
  echo $exps;
}

if($ratings){
  echo '<h2 id="r">Rating</h2>';
  echo $ratings;
}
echo '</div>';

Upvotes: 3

Related Questions