这是我的mysql查询:
select studentID from GameMaster where hobbies like '%baseball%' and hobbies like '%basketball%';
爱好字段类型-长文本。
这将在mysql中获取两个值。S1001、S1002
当我在PHP代码中使用它时,第一行只得到。
这是我的php代码
$sSQL="select studentID from GameMaster where hobbies like '%baseball%' and hobbies like '%basketball%'";
$result = mysqli_query($dbc,$sSQL);
$numberOfRows = mysqli_num_rows($result);
if ($numberOfRows>0) {
for ($i = 0; $i < $numberOfRows; $i++) {
$row = mysqli_fetch_array($result);
$csv_output .= $row[$i].",";
}
$csv_output .= "'n";
}
print $csv_output;
$csv_output值为S1001,,
正如你所看到的,第二个是空的。循环错误吗?我正在将此值导出到应用程序发明家。
试试这个:
$sSQL="select studentID from GameMaster where hobbies like '%baseball%' or hobbies like '%basketball%'";
$result = mysqli_query($dbc,$sSQL);
$numberOfRows = mysqli_num_rows($result);
if ($numberOfRows>0)
{
$row = mysqli_fetch_array($result);
for ($i = 0; $i < $numberOfRows; $i++)
{
$csv_output .= $row[$i].",";
}
$csv_output .= "'n";
}
print $csv_output;
您不应该循环遍历$行,它总是在第一个位置!应该是$row[0]
或$row['studentID']
而不是$row[$i]
if ($numberOfRows>0) {
for ($i = 0; $i < $numberOfRows; $i++) {
$row = mysqli_fetch_array($result);
$csv_output .= $row['studentID'].",";
}
$csv_output .= "'n";
}
代替for循环,您还可以使用while循环:
if ($numberOfRows>0) {
while($row = mysqli_fetch_array($result)) {
$csv_output .= $row['studentID'].",";
}
$csv_output .= "'n";
}