我已经试图解决这个问题好几天了,我确信合适的人可以轻松解决这个问题。
<?php
displayMatrixNumbers();
?>
<?php
function displayMatrixNumbers()
{
$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
$statement = "SELECT number, association, image_file, skeleton, sound, colour, comments ";
$statement .= "FROM num_image ";
$statement .= "ORDER BY number ";
$sqlResults = selectResults($statement);
$error_or_rows = $sqlResults[0];
if (substr($error_or_rows, 0 , 5) == 'ERROR')
{
print "<br />Error on DB";
print $error_or_rows;
} else {
$arraySize = $error_or_rows;
for ($i=1; $i <= $error_or_rows; $i++)
{
$number = $sqlResults[$i]['number'];
$association = $sqlResults[$i]['association'];
$image_file = $sqlResults[$i]['image_file'];
$skeleton = $sqlResults[$i]['skeleton'];
$sound = $sqlResults[$i]['sound'];
$colour = $sqlResults[$i]['colour'];
$comments = $sqlResults[$i]['comments'];
print "<div id='mcnumbers-container'>";
print "<h3>".$number."</h3>";
print "<p><img id='mcnumber-image' src='images/matrix/".$number. ' - '.$association.".jpg'>";
print "<br />".$association."</p>";
print "</div>";
}
}
}
?>
我是否需要插入的行数?它能在某些方面派上用场吗?
我试图完成的主要目标是:
我想使用这段代码并在不同的DIV标签中粘贴功能displayMatrixNumbers()100次或者使用函数不是最佳做法?
在pastebin中我想更改一行:$statement .= "ORDER BY number ";
到$statement .= "BETWEEN 00 to 09 ORDER BY ASC ";
或类似的东西?
然而,我需要将两个数字从&#39; 00更改为09&#39;至&#39; 10至19&#39;至&#39; 20至29&#39;等我正在建设的项目。
简而言之,是否可以仅从函数外部更改BETWEEN数字。那样的&#39;一些如何&#39;我可以输入两个数字$lownum = '00'; $highnum = '09';
,然后输入$statement .= "BETWEEN $lownum to $highnum ORDER BY ASC "
说我有3个DIV&#39>
<div id="div1">
<?php displayMatrixNumbers(); ?> /* This one displays 00 to 09 */
</div>
<div id="div2randomID">
<?php displayMatrixNumbers(); ?> /* 10 to 19 */
</div>
<div id="div3">
<?php displayMatrixNumbers(); ?> /* 20 to 29.. and so on */
</div>
说我有100个div ..我怎样才能明确告诉每个人只显示我想要的结果而不创建100个单独的.php页面?我知道我需要某种循环来编辑BETWEEN数字,但不知道怎么做?
我必须重写这一点,以使其更清晰,但我的大脑是油炸的,我希望有人能够理解我的意思。即使你需要我澄清一些事情,请问。
我对这一切都很陌生,如果不是我用过的所有PHP,我都会道歉,并希望了解如何使用PHP实现这一目标。
干杯, 丹:)
答案 0 :(得分:1)
使用类来解决永久显示。类保存可以存储和重用的数据。
class display {
private $count = 0;
public function display(){
for($i = $this->count; $i < $this->count + 10; $i++){
echo $i;
}
$this->count += 10;
}
}
$display = new display();
$display->display(); //prints 0 - 9
$display->display(); // prints 10 - 19
$display->display(); //prints 20 - 21
答案 1 :(得分:1)
如果您使用LIMIT sql子句,则可以非常轻松地完成此任务
$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
$statement = "SELECT number, association, image_file,
skeleton, sound, colour, comments
FROM num_image
ORDER BY number
LIMIT $start, 10";
$sqlResults = selectResults($statement);
$error_or_rows = $sqlResults[0];
// I am not sure what library you are using to access your database
// but there must be a better way of identifying errors
// than this next piece of code
if (substr($error_or_rows, 0 , 5) == 'ERROR')
{
print "<br />Error on DB";
print $error_or_rows;
} else {
foreach ( $sqlResults as $row ) {
$number = $row['number'];
$association = $srow['association'];
$image_file = $row['image_file'];
$skeleton = $row['skeleton'];
$sound = $row['sound'];
$colour = $row['colour'];
$comments = $row['comments'];
print "<div id='mcnumbers-container'>";
print "<h3>".$number."</h3>";
print "<p><img id='mcnumber-image' src='images/matrix/".$number. ' - '.$association.".jpg'>";
print "<br />".$association."</p>";
print "</div>";
}
}
}
然后使用您要使用的起始行调用它
<div id="div1">
<?php displayMatrixNumbers(0); ?> /* This one displays 00 to 09 */
</div>
<div id="div2randomID">
<?php displayMatrixNumbers(10); ?> /* 10 to 19 */
</div>
<div id="div3">
<?php displayMatrixNumbers(20); ?> /* 20 to 29.. and so on */
</div>