我在这方面是一个完全的新手,但试着自己学到很多/教程。然而,我似乎找不到这个(可能)简单问题的答案。如果SQL数据库小于10,我希望检查它的输出,然后给出INT的当前值。如果它还不是10或更多,那么我想输出一行,如果是的话,输出另一行。然而,目前它似乎无法正常工作。
//Connect to DB
$con = mysqli_connect("localhost","root","root","cursuson");
//Get counter!
$getcounter = mysqli_query($con,"SELECT * FROM cursus01");
$cursus01 = mysqli_fetch_assoc($getcounter);
//check if output is less than 10
if(count($cursus01) <= 10)
echo 'aantal aanmeldingen is ' . $cursus01['counter'] . '<br>';
else
echo 'De cursus gaat door! <br>';
//check the output
echo '<b>Aantal aanmeldingen:</b> ' . $cursus01['counter'] . '<br>';
echo '<b>ID:</b> ' . $cursus01['id'];发布于 2013-09-29 20:03:00
我假设您正在尝试从数据库中获取行数(就像其他人所做的那样),并留下了答案,如果这是下面的情况。您可能会发现它很有用,删除它似乎是一种浪费!
不管怎么说,从你上面的评论和你问题中的$cursus01['counter']来看,我现在假设你真正想要的是.
解决方案
我建议您使用下面的mysqli方法,因为在不久的将来,mysql将被从语言中删除,因为它是不推荐的!如果您继续使用它并使用它创建站点/应用程序,那么当这种情况最终发生时,您将不得不使用带有自身风险/限制的旧版本的php,或者面临大量的错误代码需要修复……
mysql
mysql_connect("localhost","root","root");
mysql_select_db("cursuson");
$query = mysql_query("SELECT * FROM cursus01");
if(mysql_num_rows($query)){
//Rows are returned
while($row = mysql_fetch_assoc($query)){
//Do stuff with row data
if($row['counter'] <= 10){
//Counter is less than or exactly 10
}
else{
//Counter is greater than 10
}
}
}
else{
//No rows were returned
}米斯里
$mysqli = new mysqli('localhost', 'root', 'root', 'cursuson');
$result = $mysqli->query("SELECT * FROM cursus01");
if($result->num_rows;){
//Rows are returned
while($row = $result->fetch_assoc()){
//Do stuff with row data
if($row['counter'] <= 10){
//Counter is less than or exactly 10
}
else{
//Counter is greater than 10
}
}
}
else{
//No rows were returned
}
原始答案
我假设您实际上是在尝试echo返回的行数的计数?您当前的代码echo是库仑数的计数。如果你还不知道,这意味着这里有更大的问题.
解决方案
mysql
mysql_connect("localhost","root","root");
mysql_select_db("cursuson");
$query = mysql_query("SELECT * FROM cursus01");
$count = mysql_num_rows($query);
if($count <= 10){
//Less than (or exactly) 10 rows were returned
while($row = mysql_fetch_assoc($query)){
//Do stuff with row data
}
}
else if($count > 10){
//More than 10 rows were returned
while($row = mysql_fetch_assoc($query)){
//Do stuff with row data
}
}
else{
//No rows were returned
}米斯里
$mysqli = new mysqli('localhost', 'root', 'root', 'cursuson');
$result = $mysqli->query("SELECT * FROM cursus01");
$count = $query->num_rows;
if($count <= 10){
//Less than (or exactly) 10 rows were returned
while($row = $result->fetch_assoc()){
//Do stuff with row data
}
}
else if($count > 10){
//More than 10 rows were returned
while($row = $result->fetch_assoc()){
//Do stuff with row data
}
}
else{
//No rows were returned
}发布于 2013-09-29 19:14:23
你做这件事的方式,每次都是一样的。您将返回数据库中的列数($cursus01),以获取应该使用num_rows函数或执行计数查询的行数,除非您需要查询中的数据,在这种情况下,您应该执行如下操作.
$cursus01 = array();
while($row = mysql_fetch_assoc($getcounter))
$cursus01[] = $row;在这种情况下,计数($cursus01)将返回行数。希望我没有混淆你的要求。正如edward所指出的,您应该开始使用mysqli而不是mysql。您还可能需要考虑使用oop而不是过程调用。有关示例这里,请参阅手册
发布于 2013-09-29 19:54:28
同意Bryan的回答,但在对数据库行进行计数时,我会选择使用MySQL计数。在这种情况下,代码行是:
$getcounter = mysql_query("SELECT COUNT(*) FROM cursus01");您将使用此查询获得确切的行数。
https://stackoverflow.com/questions/19082020
复制相似问题