2015-06-21 40 views
0

我是PHP和MySQL的新手,并且正在寻找以下帮助。PHP/MySQL:如何修改工作选择何时结果总是一行

通常当我需要从数据库中提取数据,我知道结果会是多行比我取数据,并将其存储阵列下面在PHP中进一步使用其作品如预期

$sql = "SELECT " . $selectedLang . ", tID, info FROM TranslationsMain WHERE location LIKE '%language main%' ORDER BY " . $selectedLang; 
$result = $conn->query($sql); 
while($arrLanguagesMain = $result->fetch_assoc()){ 
    $languagesMain[] = $arrLanguagesMain; 
} 

现在我有一个场景,结果总是只有一行。 目前我使用以下查询,但在这种情况下,我不需要数组(这会返回例如“Array ([en] => English)”)。
这里我只需要它从列$selectedLang返回值,在这个例子中将是“English”。

$sql = "SELECT " . $selectedLang . " FROM TranslationsMain WHERE info = '" . $selectedLang . "'"; 
$result = $conn->query($sql); 
while($arrSelectedTrans = $result->fetch_assoc()){ 
    $selectedTrans = $arrSelectedTrans; 
} 

有人能告诉我什么是最好的/首选的方法来修改上述,以便它返回一个单一的值,而不是创建一个数组?

非常感谢提前。

回答

1

其指数刚刚获得该数组的值:

$sql = "SELECT " . $selectedLang . " FROM TranslationsMain WHERE info = '" . $selectedLang . "'"; 
$result = $conn->query($sql); 
while($arrSelectedTrans = $result->fetch_assoc()){ 
    $selectedTrans = $arrSelectedTrans[$selectedLang]; 
    //you can use break; here to make sure it runs only once 
} 
1

您可以尝试使用

fetch_object()

$sql = "SELECT " . $selectedLang . " FROM TranslationsMain WHERE info = '" . $selectedLang . "'"; 
$selectedTrans = $conn->query($sql)->fetch_object()->$selectedLang; 
+0

谢谢你 - 我找到了一种适合我的方式(见下文)。 – TaneMahuta

0

我想通了,效果最好的方式我在这里:

要选择单行:

$sql = "SELECT " . $selectedLang . " FROM TranslationsMain WHERE info = '" . $selectedLang . "' LIMIT 1"; 
$result = $conn->query($sql); 
$selectedTrans = $result->fetch_assoc(); 

......和地方呼应它在页面上:

echo $selectedTrans[$selectedLang]; 

感谢反正您的帮助。