← Desenvolvimento

Sql

Lida 5762 vezes

Offline

=IceBurn= 
Membro
Mensagens 897 Gostos 3
Feedback +3

Troféus totais: 32
Trófeus: (Ver todos)
Windows User Level 6 Linux User Mobile User Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5

Boas!
Para não tar a abrir um novo tópico, digam-me uma coisa,
neste código:

Código: [Seleccione]
<?php
include &#40;"config.php"&#41;;

$id $_GET['id'&#93;;

$date =  date&#40;"Y,m,d,h,i,s"&#41;;

$sql mysql_query&#40;"SELECT * FROM wap_live_top WHERE id = '$id' "&#41;; 

while&#40;$row = mysql_fetch_array&#40;$sql&#41;&#41;
     
&#123; 

     
$link $row['link'&#93;;

     
$out $row['out'&#93; + 1;

     
$total $row['total'&#93; + 1;

     
&#125;

mysql_query&#40;"UPDATE wap_live_top SET out='$out', total='$total', lastout='$date' WHERE id='$id'"&#41;or die&#40;mysql_error&#40;&#41;&#41;;

header&#40;"Location&#58; $link"&#41;;
exit;
?>


Alguem vê aqui algum erro?

É que tou a criar uma nova top list, já ta tudo a funcinar correctamente, mas esta parte ta-me a deixar fora de mim  :evil:
Tou farto de olhar para isto e parece tar tudo bem, mas da-me o seguinte erro:

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 'out='1', total='9', lastout='2006,09,01,08,14,58' WHERE id='12'' at line 1
Offline

OFFICER 
Membro
Mensagens 2076 Gostos 0
Troféus totais: 29
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2

O problema está na sintaxe que escreves-te para inserir os dados.

Tenta colocar as coisas separadamente e em vez de teres virgulas teres "and" lol..é 1 ideia.

mysql_query("UPDATE wap_live_top SET out = '$out' and total = '$total' and lastout = '$date' WHERE id = '$id'") or die (mysql_error());

Não sei se será disto, mas ele não está a reconhecer..
Offline

Nazgulled 
Membro
Mensagens 552 Gostos 0
Troféus totais: 29
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2

n vejo nenhum erro... n sera por causa do lastout com essas virgulas todas? tens isso em varchar nesse campo com espaço suficiente pa string? pk n usas antes um int e usas o unix timestamp? se o prob n for esse, vai dar ao mesmo, são tecnicas diferentes... é k n tou a ver k + possa ser...
Offline

kingless 
Membro
Mensagens 857 Gostos 0
Troféus totais: 27
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2 Level 1

Citação de: "OFFICER"
O problema está na sintaxe que escreves-te para inserir os dados.

Tenta colocar as coisas separadamente e em vez de teres virgulas teres "and" lol..é 1 ideia.

mysql_query("UPDATE wap_live_top SET out = '$out' and total = '$total' and lastout = '$date' WHERE id = '$id'") or die (mysql_error());

Não sei se será disto, mas ele não está a reconhecer..

Não se utiliza "and" tem que ser  ","  :wink:

@=iceburn= eu não vejo nenhum erro  :shock:  Tenta fazer o backup da base de dados e cria outra vez a base de dados.
Offline

=IceBurn= 
Membro
Mensagens 897 Gostos 3
Feedback +3

Troféus totais: 32
Trófeus: (Ver todos)
Windows User Level 6 Linux User Mobile User Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5

Em primeiro lugar, muito obrigado aos 3.
Nazgulled, sim os varchar estão com espaço suficiente.
Em localhost da-me esse erro, mas entretanto experimentei a fazer o upload para o servidor (web) e já não dá erro...  :shock:  :?:  :?:
Nunca tinha tido problemas com sql em localhost, tambem não percebo!
Offline

kingless 
Membro
Mensagens 857 Gostos 0
Troféus totais: 27
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2 Level 1

Se criasses a base de dados outra vez acho que ia funcionar.. Já me aconteceu um erro parecido eu criei a base de dados outra vez e funcionou.
Offline

=IceBurn= 
Membro
Mensagens 897 Gostos 3
Feedback +3

Troféus totais: 32
Trófeus: (Ver todos)
Windows User Level 6 Linux User Mobile User Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5

Já tinha experimentado isso Kingless, mas não funcionou.
Mas o mais irónico disto tudo é que o código que conta os hits in é exactamente igual, (só mudam mesmo os campos claro) e funciona perfeitamente!
Código: [Seleccione]

// HITS IN
$date =  DATE("Y,m,d,h,i,s");
$sql = mysql_query("SELECT * FROM wap_live_top where id = '$id' ");
while($row = mysql_fetch_array($sql)){
$id = $row['id'];
$in = $row['incoming'] + 1;
$total = $row['total'] + 1;

}
mysql_query("UPDATE wap_live_top SET incoming='$in', total='$total', lastin='$date' WHERE id='$id' ")
or die(mysql_error());
//......
}


 :roll:
Offline

=IceBurn= 
Membro
Mensagens 897 Gostos 3
Feedback +3

Troféus totais: 32
Trófeus: (Ver todos)
Windows User Level 6 Linux User Mobile User Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5

Ok, não sei como, sou sincero, mas ja tá a funcionar correctamente.
Se há coisas que não tem explicação, bem, esta foi uma delas! LoL
De qualquer maneira obrigado mais umas vez pelas vossas sugestões.