[mysql] insert probleem

Pagina: 1
Acties:

  • Haranaka
  • Registratie: September 2000
  • Laatst online: 07-06 23:13
Iedere 15 minuten haal ik informatie elkders van het internet af die ik voor mijn eigen site wil gebruiken.
Het gaat om een lijstje met scores met een naam er achter.

Maar soms ligt die site wel eens plat, dan heb ik geen data meer om. Zoals ik het nu ontworpen heb heeft mijn site ook geen data meer als die andere site plat gaat. Daar wil ik dus eens wat aan gaan doen. Dat hij dan dus de laatste beschikbara data gebruikt.

De informatie komt binnen en dat sla ik op in een file users.txt (als die andere site plat is, bestaat deze file wel maar is dan leeg).
Dan gooi ik ze met de volgende query in mijn database:
code:
1
2
3
drop table if exists temp;
create table temp (score int, name varchar(40));
load data infile "/l2/stats/users.txt" into table temp;

Dus mijn vraag is hoe kan ik de boel aanpassen zodat hij kijk of users.txt niet leeg is. Of dat hij alleen de temp update ofzo :?

...


  • Erik Jan
  • Registratie: Juni 1999
  • Niet online

Erik Jan

Langzaam en zeker

Dit moet je niet in MySQL aanpakken, maar in je scriptje dat om de 15 minuten loopt.

1) Haal data binnen van andere site
2) Als data niet corrupt is, update dan pas je MySQL tables

Je kan controleren of je data corrupt is door bijvoorbeeld te kijken of het wel lang genoeg is en een juist begin en einde heeft.

This can no longer be ignored.


  • Haranaka
  • Registratie: September 2000
  • Laatst online: 07-06 23:13
dat heb ik al eens geprobeert om het op die manier op te lossen, maar zonder resultaat. (http://gathering.tweakers.net/forum/list_messages/461430)

ik gebruik daarvoor een simpel bash scriptje:
code:
1
2
3
4
wget -q -O  users.txt  http://proxy.qik.nl/simplestats.php?team=950 && \
if [ -s ./users.txt ] ; then
mysql < /l2/stats/users
fi

Toen ik op zoek was naar een oplossing werden er me 2 aangedragen, de "if -s" hoort te kijken of hij niet leeg is maar werkt dus niet. En bij de wget regel die "&& \" zou de ervoor zorgen dat de file niet wordt overschreven als hij geen data zou bevatten.

Maar aangezien geen van die dingen werkt dacht ik dan nu maar in mysql proberen.

...


  • Haranaka
  • Registratie: September 2000
  • Laatst online: 07-06 23:13
Opgelost :)
Ik gebruik nu een php scripje:
PHP:
1
<?$dummy = file("users.txt");if (count($dummy) > 0) {  // hier de database vullen}?>

...