Jump to content
Fabio93

Erro de sintaxe, na consulta a BD .

Recommended Posts

Fabio93

bom dia,

Alguem me sabe dizer qual e o erro de sintaxe neste Recordset :

mysql_select_db($database_liga_bd, $liga_bd);
$query_last_id = sprintf ("SELECT cod_reparacao FROM repara ORDER BY cod_reparacao DESC WHERE cod_func=%S", GetSQLValueString($colname_rslast_id, "text"));
$rs_last_id = mysql_query($query_last_id, $liga_bd) or die (mysql_error());
$l_id = mysql_fetch_array($rs_last_id);
$cod=$l_id['cod_reparacao'];

Obrigado.

Share this post


Link to post
Share on other sites
ruimcosta

Admiro-me como o pessoal adora o dreamweaver!

Larga isso, faz mal à saúde e à tua necessidade/gosto de programar.

Que erro dá? Pode ser sql errado, serviço mysql em baixo, sócrates no poder na 2ª feira....podem ser tantas coisas!


Abraços e beijinhos,Rui Costa

Share this post


Link to post
Share on other sites
Fabio93

Tens razao , mas o dreamwever neste caso e porreiro porque quero despachar as coisas e entao , ele faz muita coisa automatica mente . xD

O erro que da e este :

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE repara.cod_func=' at line 1

obrigado pela atenção.

Share this post


Link to post
Share on other sites
ruimcosta

Tens toda a razão na parte automática, só que para isso, se não perceberes um bocadinho que seja de php e mysql estás...como te hei-de explicar....f*****, percebes? Além de criar código não optimizado, com potenciais bugs, montanhas de lixo....mas para que interessa isso?

De uma maneira menos rápida e menos automática, transformava isto:

$query_last_id = sprintf ("SELECT cod_reparacao FROM repara ORDER BY cod_reparacao DESC WHERE cod_func=%S", GetSQLValueString($colname_rslast_id, "text"));

nisto

$id = $_GET['id'];
$sql = "SELECT cod_reparacao FROM repara ORDER BY cod_reparacao DESC WHERE cod_func = $id";
echo $sql;

Pegava no sql que mostrasse e executava-o directamente no phpmyadmin ou outro editor de sql (heisql, o meu preferido) e o mysql dizia logo onde estaria o erro, mas o dreamweaver deve ter alguma ferramenta que mostre automaticamente onde está o erro....percebes o que te quero dizer? 😎

Estou apenas a mostrar-te o meu ponto de vista. Não estou a aplicar segurança alguma e o _GET pode ser _POST, dependendo do teu caso.


Abraços e beijinhos,Rui Costa

Share this post


Link to post
Share on other sites
Fabio93

Ruimcosta , nao pode ser transformado nisso porque ele nao recebe o id por parametro.

Apenas uma consulta a todos id's  dos registos da BD , onde o cod_funcionario é X, ordenado descendente para depois apanhar o ultimo Id do funcionario X, com o fetch array :D

Share this post


Link to post
Share on other sites
ruimcosta

Isto é uma acusação muito grave:

Ruimcosta , nao pode ser transformado nisso porque ele nao recebe o id por parametro.

Claro que podia, mas se queres continuar a utilizar os métodos automáticos e rápidos do dreamweaver, vê aí no wizard se podes fazer isto:

mysql_select_db($database_liga_bd, $liga_bd);
$query_last_id = sprintf ("SELECT cod_reparacao FROM repara ORDER BY cod_reparacao DESC WHERE cod_func=%S", GetSQLValueString($colname_rslast_id, "text"));

echo $query_last_id ;
exit;
$rs_last_id = mysql_query($query_last_id, $liga_bd) or die (mysql_error());
$l_id = mysql_fetch_array($rs_last_id);
$cod=$l_id['cod_reparacao'];

Pegas no sql que te aparecer e testas no phpmyadmin.


Abraços e beijinhos,Rui Costa

Share this post


Link to post
Share on other sites
Fabio93

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE cod_func= LIMIT 0, 30' at line 1

Share this post


Link to post
Share on other sites
ruimcosta

Pronto, já descobriste o erro. Não está a passar o valor para o cod_func.

Agora tens de analisar para tras o porquê de $colname_rslast_id não estar a receber o valor.


Abraços e beijinhos,Rui Costa

Share this post


Link to post
Share on other sites
Fabio93

claro que esta olha a variavel cod_func .

<input name="cod_func" type="hidden" id="cod_func" value="<?php echo $_SESSION['MM_Username']; ?>" />

Share this post


Link to post
Share on other sites
ruimcosta

Há uns posts, atras eu disse-te:

Estou apenas a mostrar-te o meu ponto de vista. Não estou a aplicar segurança alguma e o _GET pode ser _POST, dependendo do teu caso.

E tu respondeste:

Ruimcosta , nao pode ser transformado nisso porque ele nao recebe o id por parametro.

O id a que eu me referia era para essa variável..........

E continuo a afirmar, no sql ele não recebe o valor do cod_func, caso contrário apareceria no echo do sql

WHERE cod_func= XXXXX LIMIT 0, 30

em vez de

WHERE cod_func= LIMIT 0, 30

Como podes confirmar pelo erro que mostraste a seguir ao = não tem o numerodo correspondente ao codigo do funcionario.


Abraços e beijinhos,Rui Costa

Share this post


Link to post
Share on other sites
Fabio93

Fogo , esta tudo muito confuso vou mas e fazer de novo. xD

O que eu quero e apanha o ultimo cod_reparacao , inserido pelo utilizador $_SESSION['MM_Username'].

Ja me começa a enervar a Me*** do dreamweaver. xD

Share this post


Link to post
Share on other sites
ruimcosta

$sql = "SELECT cod_reparacao FROM repara where cod_func=".$_SESSION['MM_Username']." ORDER BY cod_reparacao limit 1";
$rs  = mysql_query($sql);
$row = mysql_fetch_array($rs);
$last_id = $row['cod_reparacao'];

Qualquer coisa parecido com isto? substitui o campo  id_registo pelo campo correspondente!


Abraços e beijinhos,Rui Costa

Share this post


Link to post
Share on other sites
Fabio93

Unknown column 'Fabio93' in 'where clause' -.-

Isto começa a enervar-me  😡     😡

Share this post


Link to post
Share on other sites
ruimcosta

Se copiaste o que te dei, o problema é que este campo ( cod_func ) não existe nessa tabela.

Faz agora um echo $sql; e ve o sql que te retorna


Abraços e beijinhos,Rui Costa

Share this post


Link to post
Share on other sites
Fabio93

SELECT cod_reparacao FROM repara where cod_func=Fabio93 ORDER BY cod_reparacao DESC limit 1Unknown column 'Fabio93' in 'where clause'

Tirando o que esta a sublinhado , esta tudo bem , Fabio93 e o valor certo.  🤔

Share this post


Link to post
Share on other sites
ruimcosta

Se o campo cod_func não for numérico, tens de colocar o valor entre pelícas ''.

SELECT cod_reparacao FROM repara where cod_func='Fabio93' ORDER BY cod_reparacao DESC limit


Abraços e beijinhos,Rui Costa

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.