如何控制在PHP中打印数组的每个元素?

时间:2013-04-10 16:16:43

标签: php database arrays

我希望能够控制我在此数组中打印的内容。到目前为止,这就是我所拥有的:

<?php
/* DB CONNECTION */
try {
  $pdo = new PDO('mysql:host=' . DB_HOST . '; dbname=' . DB_NAME . '', DB_USER, DB_PASSWORD);
  $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  $pdo->exec('SET NAMES "utf8"');
  $sql = 'SELECT nombre,categoria,descripcion FROM equipos ORDER BY nombre ASC';
  $result = $pdo->query($sql);
}
catch(PDOException $e) {
  echo $error = 'Error fetching jokes: ' . $e->getMessage();
  exit();
}

/*FETCH ARRAY */
$equipos = array();
while ($row = $result->fetch()) {
  $equipos[] = $row['nombre'];
  $equipos[] = $row['categoria'];
  $equipos[] = $row['descripcion'];
}
?>       
<?php
/* PRINT ARRAY */
foreach($equipos as $equipo): ?>
  <p><?php
  echo htmlspecialchars($equipo);
?></p>
<?php
endforeach; 
?>

我的结果是:

Value1
value2
Value3

etc.

我希望能够打印出类似的内容:

Value1, Value2, Value3
Value4, Value5, Value6

必须有一种实用的方法。

2 个答案:

答案 0 :(得分:0)

很难说出你想要的是什么,但我在黑暗中拍摄 请注意正确连接到PDO的方式

<?php

$opt = array(
    PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
);
$dsn = 'mysql:host=' . DB_HOST . '; dbname=' . DB_NAME . ';charset=utf8';
$pdo = new PDO($dsn, DB_USER, DB_PASSWORD, $opt);

$sql    = 'SELECT nombre,categoria,descripcion FROM equipos ORDER BY nombre ASC';
$result = $pdo->query($sql);
$data   = $result->fetchAll();
?>       

现在在$data变量中,您有一个包含所有行的数组,每个行都包含一个包含所选字段的数组。因此,您可以通过字段名称控制它们:

<?php foreach($data as $row): ?>
  <p>
    <?=htmlspecialchars($row['nombre'])?>,
    <?=htmlspecialchars($row['categoria'])?>,
    <?=htmlspecialchars($row['descripcion'])?>
  </p>
<?php endforeach ?>

答案 1 :(得分:-1)

而不是使用foreach语句使用

for(var i = 0;i<(sizeof($equipos);i++)
{
 echo htmlspecialchars($equipo[i]);
}