سؤال

هي طريقة في حلقة while لتعيين متغير لفئة في div، لكل عنصر ثالث في حلقة while.أنا أستخدم بنية المخطط ويكون القسم الثالث في النهاية وأحتاج إلى إرفاق اسم فئة "أخير" لكل قسم ثالث، لذا فإن القسم الثالث والسادس والقسم التاسع وما إلى ذلك؟

/* LOOP THROUGH SHOEDATA TABLE */

$results = mysql_query("SELECT * FROM shoeData");


while($row = mysql_fetch_array($results)){

$name = $row['name'];
$about = $row['about'];
$company = $row['company'];
$buy = $row['buy'];
$tags = $row['tags'];
$id = $row['id'];
$image = $row['image'];


/* ECHO THE SHOEDATA RESULTS */     

    echo "<div class='imageBorder span-8 column'>";
        echo "<div id='imageHeight'>";
        echo "<img  src='thumbs/$image'>";
        echo "</div>";

        echo "<ul>";

            echo "<li>$name</l1>";
            echo "<li>$about</l1>";
            echo "<li>$company</l1>";
            echo "<li><a href='$buy'>BUY</a></l1>";
            echo "<li>$tags</l1>";
        echo "</ul>";
    echo "</div>";


}/*SHOEDATA WHILE LOOP ENDS */
هل كانت مفيدة؟

المحلول

for ($i = 0; $i < $numRecords; $i++)
{
 $className = "";
 if (($i % 3) == 0)
 {
  $className = "last"
 }

 ....
}

الجزء الرئيسي هنا هو ($i % 3) == 0.

يحرر: وفيما يلي ردا على تعليقك.

/* LOOP THROUGH SHOEDATA TABLE */

$results = mysql_query("SELECT * FROM shoeData");

$i = 0;
while($row = mysql_fetch_array($results)){
$i++;
$name = $row['name'];
$about = $row['about'];
$company = $row['company'];
$buy = $row['buy'];
$tags = $row['tags'];
$id = $row['id'];
$image = $row['image'];


/* ECHO THE SHOEDATA RESULTS */         
    $additionalClass = ($i % 3) == 0 ? " last" : "";
    echo "<div class='imageBorder span-8 column" . $additionalClass . "'>";
        echo "<div id='imageHeight'>";
        echo "<img  src='thumbs/$image'>";
        echo "</div>";

        echo "<ul>";

                echo "<li>$name</l1>";
                echo "<li>$about</l1>";
                echo "<li>$company</l1>";
                echo "<li><a href='$buy'>BUY</a></l1>";
                echo "<li>$tags</l1>";
        echo "</ul>";
    echo "</div>";


}/*SHOEDATA WHILE LOOP ENDS */

نصائح أخرى

إذا كنت تريد أن تفعل هذا على العميل يمكن القيام به مع CSS3 (إضافة JS لالمتصفحات القديمة [DOMAssistant + Selectivizr]).

وCSS: div.imageBorder:nth-child(3n) { /* style attributes will be applied to every 3rd div */ }

$sql = "SELECT * FROM shoeData";
$results = mysql_query($sql);
while($row = mysql_fetch_array($results)) {

    // whatever code here 

}

ولا يبدو أن الخلية ذكي بما فيه الكفاية تنفيذ عمليات في حين مقارنة مع القيمة الحقيقية يجب تحديد $sql، $result لأنه يبدو مثل $row = mysql_fetch_array($results) ذلك صحيح أنه يحصل عالقا على تحميل صحيح الصف الأول من البيانات إلى الأبد.

وإذا كان القصد من ذلك هو أن تفعل شيئا كل X استخدام البند مودولو. مودولو هو ما تبقى من الانقسام ويصبح صفرا إذا كان التقسيم هو بالضبط عدد صحيح.

if(!($counter%3)) {
    // this is 3 6 9 etc.
}
$counter++;

وبالطبع يمكنك أن تفعل ذلك مع أي عدد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top