2013-10-15 3 views
0

Я не понимаю, почему это не работает. Я знаю, что это нечто более чем вероятно. Я хочу, чтобы значение из второго запроса было помещено в $newowner. Я получаю массив для преобразования строки.Результат PHP mySQL для переменной

$query = "INSERT INTO owners (fname, lname) VALUES ('default', 'default')"; 
mysqli_query($con, $query); 
echo $query; 
$query = "SELECT MAX(id) FROM owners"; 
$result = mysqli_query($con, $query); 
$newowner = mysqli_fetch_assoc($result); 
echo $newowner; 
+0

Вы прочитали документацию по mysqli_fetch_assoc? Вы получаете массив для преобразования строки, потому что mysqli_fetch_assoc возвращает ассоциативный массив. – user2759991

ответ

1

Это потому, что mysqli_fetch_assoc возвращает массив. Что вам нужно сделать, это получить значение из массива, например:

echo $newowner['MAX(id)']; 

можно упростить путем присвоения псевдонима с именем столбца, например, в запросе:

select max(ID) as MaxID from owners 

и тогда вы можете использовать echo $newowner['MaxID'].

+0

Спасибо. Это сработало. –

1

В этом случае $newowner представляет собой массив. Попробуйте добавить псевдоним для запроса как:

$query = "SELECT MAX(id) AS max_id FROM owners"; 
$result = mysqli_query($con, $query); 
$newowner = mysqli_fetch_assoc($result); 
echo $newowner['max_id']; 

, чтобы узнать, как получить доступ к значению из ассоциативного массива или просто сделать, чтобы получить значение в числовом индексируемой моде.

$newowner = mysqli_fetch($result); 
echo $newowner[0]; 
0

Предполагая, что ваши исходные запросы правильно вставляются, $newowner на самом деле представляет собой массив, поэтому вы не можете просто повторить его. Вы могли бы показать, как это:

print_r($newonwer); 

Но вы бы лучше использовать следующее:

$query = "SELECT MAX(id) as ID FROM owners"; 
$result = mysqli_query($con, $query); 
$newowner = mysqli_fetch_assoc($result); 
echo $newowner['ID']; 
Смежные вопросы