我試圖循環播放一個類似於WordPress的函數。我使用該函數返回true或false的布爾值。現在,這是我的功能。現在,只有它返回true或false,我知道我必須讓我的函數has_rows();
更改爲false後,它遍歷我所有的行。這可能嗎?循環播放函數like_posts
所以我想我的問題是,如果它是可能的,以及如何循環一個函數在一個while循環如下面的例子。我知道這是可能的,因爲WordPress的使用功能,我的問題是如何。
這是我試過的。循環不會停止。
function has_rows() {
global $Q_INFO;
global $DB_CONN;
static $COUNT; // STATIC TO REMEMBER LAST TIME FUNCTION CALLED
$COUNT = @$COUNT ? $COUNT++ : 0; // IF NOT SET, SET TO 0 AND COUNT EACH LOOP
echo $QUERY = "SELECT * FROM `" . $Q_INFO['table'] . "` LIMIT " . $COUNT . ", 1";
$STMT = $DB_CONN->prepare($QUERY);
$STMT->execute();
$RESULT = $STMT->get_result();
$STMT->close();
if ($RESULT->num_rows > 0) {
return true;
} else {
return false;
}
}
林調用它,就像在WordPress:
<?php if (has_rows()):?>
<?php while (has_rows()): ?>
Hi World!!
<?php endwhile; ?>
<?php endif; ?>
這是我的最終代碼: 我不得不添加另一個靜態變量函數的第一個呼叫if(has_rows()):
,然後我用下面的選擇答案來完成剩下的工作。
感謝您的幫助!
function has_rows() {
global $Q_INFO;
global $DB_CONN;
static $I = 0;
static $COUNT = 0;
if ($I == 0) {
$QUERY = "SELECT * FROM `" . $Q_INFO['table'] . "`";
$I++;
} else {
$QUERY = "SELECT * FROM `" . $Q_INFO['table'] . "` LIMIT " . $COUNT . ", 1";
$COUNT++;
}
$STMT = $DB_CONN->prepare($QUERY);
$STMT->execute();
$RESULT = $STMT->get_result();
$STMT->close();
if ($I != 0) {
while ($ROW = $RESULT->fetch_assoc()) {
foreach ($ROW as $KEY=>$VALUE) {
$Q_INFO[$KEY] = $VALUE;
}
}
}
if ($RESULT->num_rows > 0) {
return true;
} else {
return false;
}
}
這是完美的,但它只是解決了我的謎語的第二部分,在第一個電話'如果(has_rows())'是第一個調用,所以如果我調用該函數,則count比第一行多1,因此我必須在方程中添加第二個變量$ I,然後在其中使用您的答案。 –