我想选择一些我存储在MySQL DB中的信息。例如,我有两个表gameTable和playerTable。现在我想要得到gameTable,并得到这些球员的名字和等级。我该怎么做??

这就是我到目前为止得到的,它是有效的,但我不确定这是最有效的方法。是否需要为每个引用行创建联接??
<?php
include ('connect.php');
$result = mysqli_query($connect,
"SELECT gameTable.id,
playerTable1.name AS name1, playerTable1.level AS level1,
playerTable2.name AS name2, playerTable2.level AS level2,
playerTable3.name AS name3, playerTable3.level AS level3,
playerTable4.name AS name4, playerTable4.level AS level4
FROM gameTable
JOIN playerTable AS playerTable1 ON gameTable.P1_id = playerTable1.id
JOIN playerTable AS playerTable2 ON gameTable.P2_id = playerTable2.id
JOIN playerTable AS playerTable3 ON gameTable.P3_id = playerTable3.id
JOIN playerTable AS playerTable4 ON gameTable.P4_id = playerTable4.id
");
while ($record = mysqli_fetch_array($result))
{
echo $record['id'] . " - "
. $record['name1'] . " - " . $record['level1'] . " - "
. $record['name2'] . " - " . $record['level2'] . " - "
. $record['name3'] . " - " . $record['level3'] . " - "
. $record['name4'] . " - " . $record['level4'] . "<br>";
}
?>第二个问题,我的数据库设置为MyISAM。将其更改为InnoDB会有帮助吗?或者,这只适用于数据库中的更新、删除等操作,而不适用于获取数据?
发布于 2015-03-17 17:56:29
我会像这样使用字符串(引用注释问题,而不是原始问题)。这只为内存中的每个位置保留了一个字符串空间。这节省了为中间字符串赋值的开销,而且应该可以节省内存,甚至可以加快执行时间,因为字符串连接有时是一个非常慢的过程。
$myarr = array();
while ($record = mysqli_fetch_array($result))
{
$myarr[] = $record['id'] ;
$myarr[] = " - " ;
$myarr[] = $record['name1'] ;
$myarr[] = " - " ;
$myarr[] = $record['level1'];
$myarr[] = " - ";
$myarr[] = $record['name2'];
$myarr[] = " - ";
$myarr[] = $record['level2'];
$myarr[] = " - ";
$myarr[] = $record['name3'];
$myarr[] = " - ";
$myarr[] = $record['level3'];
$myarr[] = " - ";
$myarr[] = $record['name4'];
$myarr[] = " - ";
$myarr[] = $record['level4'];
$myarr[] = "<br>";
}
echo implode('',$myarr);
unset($myarr);https://stackoverflow.com/questions/29095198
复制相似问题