嗯,这里有非常新手的问题,但我找不到合适的问题把它放在谷歌或这里。
我有一个非常小的表,只有3行,每行都有一个定义的id(1,2,3)。
我想要做的是打印每一行的行数据,但避免循环函数。
即
查询将是:
$query = "SELECT field1, field2, field3 FROM table";
$var1 = mysql_query($query);
$var2 = mysql_fetch_assoc($var1);
$var3 = mysql_num_rows($var1);
PHP:
<p><?php echo $var2['field1'];//how can i tell to the code "use the row with this id here -> id=1" ?></p>
<p><?php echo $var2['field1']; // "and use the row with the id "2" here" ?></p>
PS:抱歉我的英语很差,阿根廷老兄在这里。
好的,
这就是为什么我不想把它作为一个循环:
我知道我可以这样做:
<?php do { ?>
<p>bla bla <?php echo $var2[field1]; ?> </p>
<?php } while ($var2 = mysql_fetch_assoc($var1)); ?>
但它不能这样做,因为网站设计将这些数据放在不同的div中,具有不同的定位和CSS格式。
我想以正确的方式做到这一点,避免每行使用一个查询。
行将永远为3,每个行的id将始终相同(1,2,3)。
答案 0 :(得分:0)
没有循环就无法做到。你为什么要避免循环呢?它应该相当简单,例如:
$query = 'SELECT field1, field2, field3 FROM table';
$result = mysql_query($query);
while ($row = mysql_fetch_assoc($result))
echo "<p>{$row['field1']}</p>";
mysql_free_result($result);
答案 1 :(得分:0)
我想不出不使用循环的原因...通常,mysql_fetch_assoc函数从结果资源返回一行数据,然后自动递增结果资源中的内部行指针。这将是循环方式:
while ($row = mysql_fetch_assoc($var1)) {
echo $row["field1"];
echo $row["field2"];
echo $row["field3"];
}
mysql_free_result($var1);
但是,您可以这样做,因为内部行指针会自动递增。
$row1 = mysql_fetch_assoc($var1);
$row2 = mysql_fetch_assoc($var1);
$row3 = mysql_fetch_assoc($var1);
echo $row1["field1"];
echo $row1["field2"];
echo $row1["field3"];
echo $row2["field1"];
...
如果没有循环,这基本上可以让你获得同样的东西。快乐的编码!
答案 2 :(得分:0)
这个怎么样?这可能适合你。
$result = mysql_query("SELECT field1, field2, field3 FROM table");
$arr1 = (mysql_fetch_array($result));
$arr2 = (mysql_fetch_array($result));
$arr3 = (mysql_fetch_array($result));
switch ($x)
{
case 1: echo $arr1[0] ." - ".$arr1[1] ." - ".$arr1[2]; break;
case 2: echo $arr2[0] ." - ".$arr2[1] ." - ".$arr2[2]; break;
case 3: echo $arr3[0] ." - ".$arr3[1] ." - ".$arr3[2]; break;
default: echo "Unknown";
}