← PHP

actualização de tabelas não funciona

Lida 3086 vezes

Offline

CasaTuga 
Membro
Mensagens 397 Gostos 0
Troféus totais: 28
Trófeus: (Ver todos)
Avatar Tenth year Anniversary Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3

Boas, estou aqui com um pequeno problema num ficheiro php que estou a tentar fazer para usar como cron job.

O problema é que aparenta executar tudo sem qualquer problema, no entanto, a base de dados fica igual .... (isto executando o ficheiro directamente pelo browser, mas como eu já configurei como cron job à dois dias e, até agora, está igual...)

isto é o código:
Código: (php) [Seleccione]
<?php
error_reporting
(E_ALL);
$con mysql_connect("localhost","username","password");
if (!
$con)
  {
  die(
'Could not connect: ' mysql_error());
  }

mysql_select_db("conta_tabela"$con) or die(mysql_error());
echo 
"connected";


mysql_query("UPDATE phcdl_users SET user_uploads = (SELECT COUNT(file_id) FROM phcdl_files WHERE phcdl_files.file_author = phcdl_users.user_name GROUP BY user_id"); echo "<br/>1# done";
mysql_query("UPDATE phcdl_users SET total_downs = (SELECT SUM(file_downloads) FROM phcdl_files WHERE phcdl_users.user_uploads > '0' AND  phcdl_files.file_author = phcdl_users.user_name GROUP BY user_id");echo "<br/>2# done";
mysql_query("UPDATE phcdl_users SET total_cmmnts = (SELECT SUM(file_total_comments) FROM phcdl_files WHERE phcdl_users.user_uploads > '0' AND  phcdl_files.file_author = phcdl_users.user_name GROUP BY user_id");echo "<br/>3# done";
mysql_query("UPDATE phcdl_users SET total_views = (SELECT SUM(file_fiews) FROM phcdl_files WHERE phcdl_users.user_uploads > '0' AND phcdl_files.file_author = phcdl_users.user_name GROUP BY user_id") ;echo "<br/>4# done";
mysql_query("UPDATE phcdl_users SET total_votes = (SELECT SUM(file_votes) FROM phcdl_files WHERE phcdl_users.user_uploads > '0' AND phcdl_files.file_author = phcdl_users.user_name GROUP BY user_id");echo "<br/>5# done";

mysql_close($con);
?>

Output:
Código: [Seleccione]
connected
1# done
2# done
3# done
4# done
5# done


Outra coisa, todos os comandos funcionam perfeitamente se forem executados através do PhpMyAdmin, mas como eu queria usar isto como cron, não dá... xD (não sei se é relevante, mas cada query demora cerca de 40/50 segundos a executar pelos testes que fiz pelo phpmyadmin....)

Alguém sabe o problema?
Offline

Glazz 
Membro
Mensagens 74 Gostos 0
Troféus totais: 17
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Level 3 Level 2 Level 1 50 Posts 10 Posts First Post Karma

Boas,

Que erros te dá? Sei que está a correr por cron job, mas existe o log de erros do php, tenta correr o ficheiro pelo browser também a ver se te dá erros.

Não tenho a certeza pois não sou nenhum expert em MySQL mas não te falta ali um ) na query?

Cumps
Offline

epsy 
Membro
Mensagens 553 Gostos 1
Feedback +1

Troféus totais: 25
Trófeus: (Ver todos)
Search Windows User Super Combination Combination Topic Starter Poll Voter Level 4 Level 3 Level 2 Level 1


mysql_query("UPDATE phcdl_users SET user_uploads = (SELECT COUNT(file_id) FROM phcdl_files WHERE phcdl_files.file_author = phcdl_users.user_name GROUP BY user_id"); echo "<br/>1# done";



Exacto, como disse o Glazz, nos comandos de sql abres 3  parentesis e so fechas 2 .
Offline

Jeckerson 
Membro
Mensagens 34 Gostos 0
Feedback +1

Troféus totais: 22
Trófeus: (Ver todos)
Level 5 Level 4 Nineth year Anniversary Eighth year Anniversary Super Combination Combination Topic Starter Poll Voter Level 3 Level 2

Código: (php) [Seleccione]

$query = mysql_query('YOUR QUERY HERE');

if($query)
{
       echo 'ok';
}
else
{
      echo mysql_error($query);
}