在PHP中,如何在成长代码中编写以下内容(pref Objected Oriented)? 我无法掌握PHP如何遍历数组。
$result = mysql_query("SELECT name FROM newsletters WHERE ID = '1'");
$result2 = mysql_query("SELECT name FROM newsletters WHERE ID = '2'");
$result3 = mysql_query("SELECT name FROM newsletters WHERE ID = '3'");
etc
$row = mysql_fetch_array($result);
$row2 = mysql_fetch_array($result2);
$row3 = mysql_fetch_array($result3);
etc
$title1 = $row{'name'};
$title2 = $row2{'name'};
$title3 = $row3{'name'};
etc
理想情况下,我想在$ title [x]中将结果显示在表格中。
感谢。
答案 0 :(得分:1)
我假设您想要获取所有简报的名称。如果是这样,您只需要一个查询:
$result = mysql_query('SELECT name FROM newsletters');
如果要获取特定简报,可以在查询中指定ID:
$result = mysql_query('SELECT name FROM newsletters WHERE ID IN(1, 2, 3)');
您可以使用while循环迭代结果中的行:
$titles = array();
while( $row = mysql_fetch_array($result, MYSQL_ASSOC) ) {
$titles[] = $row['name'];
}
另外,你真的不应该使用mysql_ *函数。使用mysqli或PDO。这是使用MySQLi的等效代码:
//assuming you already have a mysqli connection
$result = $mysqli->query('SELECT name FROM newsletters');
$titles = array();
while( $row = $result->fetch_assoc() ) {
$titles[] = $row['name'];
}
如果您需要为未经硬编码的查询添加参数,则应阅读有关预准备语句的信息,尤其是在您处理用户输入时。
答案 1 :(得分:1)
除了已经正确的mtinsley答案之外,我还添加了另一个例子。 PDO的实现:
$dbh = new PDO(/*dns*/);
$ids = array(1, 2, 3);
$place_holders = implode(',', array_fill(0, count($ids), '?'));
$sth = $dbh->prepare("SELECT name FROM newsletters WHERE ID IN($place_holders)");
$sth->execute($ids);
while ($row = $sth->fetch(PDO::FETCH_ASSOC)) {
// $title[] = $row['name']; ... or whatever you need to do
}