我正在尝试编写一些运行SQL查询的PHP,然后计算查询返回的行数并将其存储,以便我可以在if语句中使用它。目前我出于调试原因将数字输出到屏幕上,它总是输出为0,而当我直接在数据库中运行查询时,它返回超过600行。这是为什么?
private int airplaneSeatConstructor(Airplane airplane, String className, int numberOfSeats){
/*Airplane Seat Creator, loops through the seats and attaches credentials to them based on the type of plane
* being formed.*/
//currently only one plane type. 777.
//777 seat number 257
//does have a first class section.
System.out.println("iteration");
if(className.equals("TERM")){
return 1;
}else {
if (className.equals("FIRST")) {
for (int x = 0; x < numberOfSeats; x++) {
airplane.getSeats()[x].setOccupied(false);
airplane.getSeats()[x].setFirstClass(true);
airplane.getSeats()[x].setBusinessClass(false);
if ((x % 4) == 0 || (x % 4) == 3) {
airplane.getSeats()[x].setWindowseat(true);
airplane.getSeats()[x].setAisleSeat(false);
} else {
airplane.getSeats()[x].setAisleSeat(true);
airplane.getSeats()[x].setWindowseat(false);
}
}
System.out.println("in first");
airplaneSeatConstructor(airplane, "BUSINESS", 40);
}
if (className.equals("BUSINESS")) {
for (int x = 0; x < numberOfSeats; x++) {
airplane.getSeats()[airplane.getNumberOfSeatsPerClass()[0] + x].setBusinessClass(true);
airplane.getSeats()[airplane.getNumberOfSeatsPerClass()[0] + x].setFirstClass(false);
airplane.getSeats()[airplane.getNumberOfSeatsPerClass()[0] + x].setOccupied(false);
}
System.out.println("in business");
airplaneSeatConstructor(airplane, "ECONOMY", 209);
}
if (className.equals("ECONOMY")) {
for (int x = 0; x < numberOfSeats; x++) {
airplane.getSeats()[airplane.getNumberOfSeatsPerClass()[0] + airplane.getNumberOfSeatsPerClass()[1] + x].setBusinessClass(false);
airplane.getSeats()[airplane.getNumberOfSeatsPerClass()[0] + airplane.getNumberOfSeatsPerClass()[1] + x].setFirstClass(false);
airplane.getSeats()[airplane.getNumberOfSeatsPerClass()[0] + airplane.getNumberOfSeatsPerClass()[1] + x].setOccupied(false);
}
System.out.println("in economy");
airplaneSeatConstructor(airplane, "SPECIAL", 26);
}
if (className.equals("SPECIAL")) {
System.out.println("in special");
airplaneSeatConstructor(airplane, "TERM", 273);
}
}
return 0;
}
感谢任何帮助
答案 0 :(得分:1)
...它总是输出为0,而当我直接在数据库中运行查询时,它返回超过600行。
问题在于这个陈述,
$row_cnt = $result->mysql_num_rows;
应该是,
$row_cnt = $result->num_rows;
以下是参考资料:
答案 1 :(得分:1)
您可以使用以下解决方案:
$counter = mysql_query("SELECT COUNT(*) AS cnt FROM `bets` WHERE `user` = '76561198223084096'") ;
$num = mysql_fetch_array($counter);
$row_cnt= $num["cnt"];
printf("Result set has %d rows.\n",$row_cnt);
答案 2 :(得分:0)
$result = $db->query("select count(*) as c from `bets` WHERE `user` = '76561198223084096'");
$count = $result->fetch_object()->c;
echo "Result set has {$count} rows ";