1

好吧,这里是一个非常新手的问题,但我找不到合适的问题将它放在谷歌或这里。

我有一个非常小的表,只有 3 行,每一行都有一个定义的 ID(1、2、3)。

我想要做的是打印每个的行数据,但避免循环功能。

IE

查询将是:

$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)。

4

5 回答 5

1

你可以像这样使用mysql_field_seek

$query = "SELECT field1, field2, field3 FROM table";
$query_result = mysql_query($query);

$var1 = mysql_field_seek($query_result,0);
$var2 = mysql_field_seek($query_result,1);
$var3 = mysql_field_seek($query_result,2);

$resutl1 = mysql_fetch_field($var1);
$resutl2 = mysql_fetch_field($var2);
$resutl3 = mysql_fetch_field($var3);
于 2012-08-02T03:03:08.687 回答
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);
于 2012-08-02T02:54:06.383 回答
0

这是一个获取字段名和 ID 的简单函数。然后,您可以为您需要的任何字段/ID 组合调用它。

function getField($fieldName, $id)
{ 
  $sql = sprintf("SELECT `%s` FROM `table` WHERE `id` = %d", $fieldName, $id);
  $result = mysql_query($sql);
  return mysql_num_rows($result) == 1 ? mysql_result($result, 0, 0) : null;
}

echo getField('field1', 1);
echo getField('field1', 2);
于 2012-08-02T02:57:25.600 回答
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"];
...

这基本上会让你在没有循环的情况下得到同样的东西。快乐编码!

于 2012-08-02T03:07:54.370 回答
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";
}
于 2012-08-02T03:08:45.950 回答