我正在回显页面上的所有行以查询我的。
我还需要将第一行和最后一行捕获到PHP变量中进行计算。
db = new mysqli('server','username','password','database');
$resource = $db->query("SELECT . . . (my query, not wanting to modify this)");
我可以把最后一行放到像这样的变量中。
$numResults = $resource->num_rows;
$counter = 0;
while ( $rows = $resource->fetch_assoc() ) {
if (++$counter == $numResults) {
$lastrow = $rows['column'];
}
我可以像这样获取php变量的第一行。
$first = mysqli_fetch_assoc($resource);
$firstrow = $first['column'];
但它似乎只允许我做一个或另一个。
如果我注释掉第一个代码块以获取$lastrow
,我的第二个代码块$firstrow
会显示出来。
如果我注释掉第二个代码块以获取$firstrow
,我的第一个获取$lastrow
的阻止就出现了。
任何人都知道我可以使用的任何技巧,以便我可以使用PHP将$firstrow
和$lastrow
同时放入同一页面的变量中吗?
答案 0 :(得分:1)
如果您的上述代码有效,请尝试按照
$numResults = $resource->num_rows;
$counter = 0;
while ( $rows = $resource->fetch_assoc() ) {
if ($counter == 0) {
$firstrow = $rows['column'];
}
if (++$counter == $numResults) {
$lastrow = $rows['column'];
}
}
答案 1 :(得分:1)
有几种方法可以做到这一点。以下是其中两个。
1)与您的示例类似 - 这很容易理解,因为它使用while循环和if结构$firstRow = $resource->fetch_assoc();
$lastRow = NULL;
while ( $rows = $resource->fetch_assoc() ) {
$lastRow = $rows;
}
if(!isset($lastRow)) $lastRow = $firstRow;
2)使用mysqli_data_seek - http://php.net/manual/en/mysqli-result.data-seek.php
// First Row
$resource->data_seek(0);
$firstRow = $resource->fetch_assoc();
// Last Row
$resource->data_seek($resource->num_rows - 1);
$lastRow = $resource->fetch_assoc();
答案 2 :(得分:0)
这很简单......行就像数组!!!
当您在{
"name": "test",
"version": "1.0.0",
"main": "main.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"devDependencies": {
"babel-core": "^6.3.17",
"babel-loader": "^6.2.0",
"babel-preset-es2015": "^6.3.13",
"babel-preset-react": "^6.3.13",
"babel-runtime": "^6.3.19",
"webpack": "^1.12.9"
},
"dependencies": {
"bootstrap": "^3.3.7",
"chart.js": "^2.4.0",
"fixed-data-table": "^0.6.0",
"jquery": "^3.1.0",
"react": "^0.14.3",
"react-dom": "^0.14.3",
"vis": "^4.17.0"
},
"description": ""
}
...
第一行 - $numResults
最后一行 - $rows[0]
完全尝试以下..
$rows[$numresults-1]
希望这会有所帮助......