我正在尝试创建一个PHP函数,它将回显来自db的信息。我的名字看起来像香蕉[1],香蕉[2],苹果[1],苹果[2],苹果[3]等。
该功能将选择水果
function fruits($fruit){
}
然后在那个函数中我会循环结果。
我如何回应这些?
echo $fruit[$i];
显然不起作用。
非常基本,但我无法弄明白。连接杀了我。
function ponctuation($section,$sect){
switch($section){
case 'apple':
$i=1;
break;
case 'banana':
$i=13;
break;
}
global $mysql_tablename;
global $FName;
global $Lname;
if(isset($mysql_tablename)){
$result = mysql_query("SELECT * FROM $mysql_tablename WHERE FName='$FName' AND Lname='$Lname'");
$row = mysql_fetch_array($result);
echo '<form method="post" action="ponctuation.php?'.${$section.$sect}.'_valider">';
echo '<ul>';
$query = mysql_query("SELECT * FROM `ponct_enonces` WHERE `section`='$section' AND `sect`='$sect'");
while($row_q = mysql_fetch_assoc($query)) {
if($row_q['enon']==0 && $row_q['senon']==0){
echo '<h2>'.$row_q['enonce'].'</h2>';
}
if($row_q['enon']==1){
echo '<h3>'.$row_q['enonce'].'</h3>';
echo '<textarea rows="3" cols="100" name="'.$i.'" wrap="physical">' . $row[$section[$i]] . '</textarea>';
}
if($row_q['senon']==1){
echo '<h4>'.$row_q['enonce'].'</h4>';
echo '<textarea rows="3" cols="100" name="'.$i.'" wrap="physical">' . $row[$section]. '</textarea>';
}
$i++;
}
echo '</ol>';
echo '<input type="submit" name="submit" value="Valider"/>';
echo '</form>';
}
}
代码有点难看,有些vars有法语名字,有些有英文名字。
答案 0 :(得分:0)
col名称不会扩展为PHP数组结构,例如
SELECT fruit[1], fruit[2], ...., fruit[100]
将为您提供相应的
$row = array(
'fruit[1]' => someval,
'fruit[2]' => someval,
...
);
如果你想迭代那些,你将不得不变得丑陋:
$fruit = array();
for ($i = 0; $i <= 100; $i++) {
$fruit[$i] = $row['fruit[' . $i . ']'];
}
这引出了......为什么这样的问题?这是一个可怕的数据结构。将其正确地标准化为“水果属性”子表可以省去这个麻烦,并且还允许您拥有n
属性,而不是固定的1..100范围或者您拥有的任何属性。
答案 1 :(得分:0)
如果您尝试循环连续的所有列,可以使用fetch_array
:
$result = $mysqli->query($query);
$row = $result->fetch_array();
// loop over columns
for ($i = 0, $count = count($row); $i < $count; $i++)
echo $row[$i];
这样,您就不必担心列名。不过,我可能会误解你的问题。