2013-06-15 4 views
0

Я использую запрос SELECT для получения переменной с использованием mysql_fetch_assoc. Затем это значение переносит переменную в переменную UPDATE, чтобы вернуть возвращаемое значение в базу данных.Использование запроса SELECT для поиска запроса UPDATE в MySQL

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

$arrgateRetrivalQuery = mysql_query(**Select Query**); 
    $arrGate = mysql_fetch_assoc($arrgateRetrivalQuery); 
    $arrivalGateTest = $arrGate['gatetype']; 
$setGateAirportSQL = "UPDATE pilots SET currentgate = '".$arrivalGateTest."' WHERE pilotid = '".$pilotid."'"; 
    $setGateAirportQuery = mysql_query($setGateAirportSQL); 

    // Close MySQL Connection 
    mysql_close($link); 

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

Надеюсь, что это достаточно ясно. Заранее спасибо.

+1

Не совсем понятно. Вы проверили, что выбор вообще ничего не возвращает? – GolezTrol

+0

Где $ pilotid пришел из .. ?? – Gautam3164

+0

$ pilotid - это переменная, которая отлично работает, я ее протестировал. Значение выбора возвращается, и я подтвердил его, повторив его далее в коде. –

ответ

0

Номер arrivalGateTest Номер или строка? Как вы попытались добавить другое значение в запрос? Если вы уверены, что предыдущий запрос возвращает значение, попробуйте написать: $setGateAirportSQL = "UPDATE pilots SET currentgate = '$arrivalGateTest' WHERE pilotid = '$pilotid'";.

+0

arrivalGateTest - это строка. Я попытался сбросить $ arrGate ['gatetype'] с помощью «Test», и это работает. К сожалению, ваш код не работает :( –

0

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

Вы можете использовать следующий общий синтаксис:

UPDATE pilots SET currentgate = (SELECT gate FROM airport WHERE flight='NZ1') WHERE pilotid='2'; 

, который демонстрируется на this fiddle

Это экономит дополнительный запрос и более точно описывает то, что вы пытаетесь достичь.

ВНИМАНИЕ - сначала проверьте его!

+0

Мне нужно использовать запрос, который уже был выполнен из-за его случайной фигуры. У вас есть другие идеи? –

Смежные вопросы