PHP Инкрементный номер, каждый раз, когда создается новый div - PullRequest
1 голос
/ 30 мая 2011

В основном у меня есть PHP-скрипт, который создает div для каждого элемента в базе данных, но я хочу, чтобы в каждом созданном div был номер "ранга", т. Е..

Вот мой текущий код ...

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

    $name = stripslashes($row['name']);
    $description = stripslashes($row['description']);
    $votes = stripslashes($row['votes']);
    $id = ($row['id']);
    $link = ($row['link']);
    $rank = 0;
    ?>

    <div class="site" id="site">
    <u><center>
    <strong><a href="<?php echo $link ?>" target="_blank"><?php echo $name; ?></a></strong></u>
    </font></center>
    <p>Rank:<?php echo $rank++ ; ?></p>
    <p><b><?php echo $description; ?></b><br />
    Votes:<b> <?php echo $votes; ?></b><br />
    </p>
    </div>

   <center>
    <?php
}
?>

Но это не работает, любая помощь будет принята с благодарностью.(Кроме того, div продолжаются на нескольких страницах).

Ответы [ 4 ]

1 голос
/ 30 мая 2011

$rank необходимо определить вне оператора while. Каждый раз, когда он зацикливается, он сбрасывается в ноль. Кроме того, приращение $rank в другом месте - делает код немного более надежным и понятным.

1 голос
/ 30 мая 2011

Вы определяете переменную $rank в вашем цикле, поэтому в каждом цикле цикла она определяется значением 0. Определите встречную переменную вне цикла и увеличьте ее в цикле.

1 голос
/ 30 мая 2011

Ранг должен быть вне цикла, или вы будете каждый раз сбрасывать его в 0

$rank = 0;
while($row = mysql_fetch_array($result)) {

    $name = stripslashes($row['name']);
    $description = stripslashes($row['description']);
    $votes = stripslashes($row['votes']);
    $id = ($row['id']);
    $link = ($row['link']);
    ?>

    <div class="site" id="site">
    <u><center>
    <strong><a href="<?php echo $link ?>" target="_blank"><?php echo $name; ?></a></strong></u>
    </font></center>
    <p>Rank:<?php echo $rank ; ?></p>
    <p><b><?php echo $description; ?></b><br />
    Votes:<b> <?php echo $votes; ?></b><br />
    </p>
    </div>

   <center>
    <?php
     $rank++;
}
?>

Дополнительно для комментария:

Используйте для этого смещение, например

$result_per_page = 5; // this is the number of result you show per page
$offset = isset($_GET['id'])? (int)$_GET['id'] : 1;
$rank = $offset * $result_per_page;
1 голос
/ 30 мая 2011

Поместите $rank = 0; за пределы цикла.В противном случае это всегда будет 0.

...