[RESOLVIDO] Erro com mais de uma condição

Bom dia, estou tentando fazer um update em uma tabela com o seguinte script:
/*** Update a record on another table*/
// SQL statement parameters
$update_table = ‘gabarito’ // Table name
$update_where = “matricula = ‘$matricula’ AND tipo_prova = ‘$fase’”; // Where clause
$update_fields = array( // Field list, add as many as needed
“questao_’.$i.’ = ‘$gabarito’”,
);
// Update record
$update_sql = ‘UPDATE ’ . $update_table
. ’ SET ’ . implode(’, ', $update_fields)
. ’ WHERE ’ . $update_where;
sc_exec_sql($update_sql);
mas está dando erro na condição $update_where, testei com uma condição apenas e funcionou, mas com duas não vai, alguém consegue ver o meu erro ?

seria bom relatar o erro, mas uma boa forma de saber seria recuperar o que tem de resultado e colocar em um gerenciador de banco de dados

faça algo como:

$update_sql = ‘UPDATE ’ . $update_table
. ’ SET ’ . implode(’, ', $update_fields)
. ’ WHERE ’ . $update_where;
echo $update_sql;
exit;
sc_exec_sql($update_sql)

assim o script vai interromper e mostrar o conteúdo que esta sendo passado

o $i é alterado quando?

Sim, de acordo com o número da questão

tem um ponto (concatenação) depois do $i ,creio que é isso.

o erro está ocorrendo nesta linha ralphrangel
$update_where = “matricula = ‘$matricula’ AND tipo_prova = ‘$fase’”;

Essa parte aqui não deveria ser assim?
“questao_”.$i." = ‘".$gabarito."’"

Mas ali onde eu fiz a citação está errado tbm

Jair, quando executo o mesmo script com apenas uma condição, $matricula, funciona blz, mas com cas duas nada, e preciso da segunda condição também

se vc tem a questão variando pergunto: a questão não deveria fazer parte do WHERE?

É erro de código ou de lógica que está acontecendo?

de acordo com os exemplos do scriptcase:
/**

  • Update a record on another table
    */

// SQL statement parameters
$update_table = ‘my_table’; // Table name
$update_where = “field_3 = ‘condition’”; // Where clause
$update_fields = array( // Field list, add as many as needed
“field_1 = ‘new_value_field_1’”,
“field_2 = ‘new_value_field_2’”,
);

// Update record
$update_sql = ‘UPDATE ’ . $update_table
. ’ SET ’ . implode(’, ', $update_fields)
. ’ WHERE ’ . $update_where;

está correto, e no debub essa linha passou
sc_exec_sql($update_sql);

pelo que vi vc tem que colocar a questão também no where

essa rotina é para montar o gabarito, então na condição vai a matricula e a prova e o script escreve na tabela referente a questão a resposta certa, pos na tabela eu tenho os seguintes campos
matricula
tipo_prova
questao_1 … até questao_40

então… no seu WHERE vc nao testa a questão, tem que colocar

Mas é para rotina preencher a questao_$i quando a matricula e prova satisfazerem a condição

o resultado do update é que é gravado somente a ultima questão?

deixei o where com apenas a condição matricula, ele preencheu corretamente a tabela, mas quando o aluno fizer uma outra prova, onde ele inseria os dados ?

Deixa o seu update completo e dá um echo nele pra vc ver como está vindo esse update.
Faz assim:
echo $update_sql;

não, está em um while em que ele procura no banco de questões referente a disciplina preenchedo a prova com 40 questões,

fiz o que disse, mas o erro está na sintaxe do $update_where