我在mysql中有name1,name2,name3如何做一个'for循环'来检索我需要为我的表单验证做的mysql中每个人的名字。
<?php
$row2 = "SELECT * FROM user WHERE username = '" . mysql_real_escape_string($_SESSION['username']) . "'";
$result = mysql_query($row2) or die("Error in SQL: " . mysql_error());
$row3 = mysql_fetch_array($result);
?>
在表单中,我使用以下内容,但它没有检索名称:
for($i=1; $i<=5; $i++)
// form code
<?php echo $row3['name'+[$i]]?>');
答案 0 :(得分:1)
mysql_fetch_array()
默认返回数字和关联键,因此增量for循环不会提供您想要的。相反,请使用MYSQL_ASSOC
选项或mysql_fetch_assoc()
$row3 = mysql_fetch_assoc($result);
// OR
$row3 = mysql_fetch_array($result, MYSQL_ASSOC);
for
循环必须在PHP中完成。很难判断你的循环是客户端还是服务器端。
<?php
for ($i=1; $i<=5; $i++) {
// not 'name' + $i -- PHP uses '.' for concatenation
// but it is easier to interpolate it in double quotes.
echo $row3["name$i"];
}
?>
由于您试图将PHP混合到一个JS循环(这将无法工作),我建议使用PHP创建一个JavaScript数组,然后可以在以后的JS循环中使用它。
<?php
// Open a JS array called namesArray
echo "var namesArray = [";
$names = array();
for ($i=0; $i<=5; $i++) {
// get all the column values into an array
$names[] = '"' . $row3["name$i"] . '"';
}
// Make it into a string
$names = implode(',', $names);
// Close the JS array
echo $names . "];"
?>
那应该输出如下内容:
var namesArray = ["val1","val2","val3","val4","val5"];
在JavaScript循环中(您不必更改),访问以下值:
// Updated to use i-1 instead of i
alert('Please make your colour & shade selection for ' + namesArray[i-1]);
答案 1 :(得分:0)
for循环需要在php标记内。