Avatar billede cot Nybegynder
09. januar 2008 - 19:23 Der er 13 kommentarer og
2 løsninger

Update Mysql

Hej, er det muligt, hvis jeg nu har en fil:

http://s2.travian.dk/map.sql

Den vil jeg gerne have sat ind i min Mysql-database, som ligger på mit domæne: Traviannews.dk

Er der et PHP-script, der kan bruges så den fil bliver taget over i min Mysql database.

Jeg har prøvet med noget System()-funktion, men det understøtter One.com ikke...
Avatar billede matz Nybegynder
09. januar 2008 - 20:04 #1
Kan du ikke bare indsætte din sql i phpmyadmin?
Avatar billede cot Nybegynder
09. januar 2008 - 20:12 #2
Ja, men nu lemte jeg lige at tilføje, at det skal gøres automatisk når man åbner denne php fil, da det andet er meget irriterende i længden, og btw, så kan jeg jo bruge cronjobs til at gøre det hver morgen da det er noget data der skal skrives ud så folk hele tiden er opdateret med det nyeste data...
Avatar billede nielle Nybegynder
09. januar 2008 - 20:25 #3
Mon ikke noget i denne stil kan gøre det?

$sqlArr = file("map.sql");

foreach ($sqlArr as $sql)
    mysql_query($sql) or die(mysql_error());
)
Avatar billede cot Nybegynder
09. januar 2008 - 20:33 #4
Jeg kan da prøve :D
Og der skal ikke addes andet end self <?php og ?>?
Avatar billede nielle Nybegynder
09. januar 2008 - 20:36 #5
Det kommer jo lidt an på hvad der ellers skal være på siden, og hvor at den skal have map.sql fra. Men basalt set burede det kunne gøre det.
Avatar billede cot Nybegynder
09. januar 2008 - 20:36 #6
Den skal tages fra http://s2.travian.dk/map.sql
Avatar billede cot Nybegynder
09. januar 2008 - 20:38 #7
Kan jeg evt. få det som en lidt mere hel kode, da det he rikke virkede, sikkert noget jeg gør forkert, kode:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<?php

$con = mysql_connect("localhost","***","***");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("***", $con);

$sqlArr = file("http://s2.travian.dk/map.sql");

foreach ($sqlArr as $sql)
    mysql_query($sql) or die(mysql_error());
)
?>
Avatar billede cot Nybegynder
09. januar 2008 - 20:47 #8
Dont worry, fik hjælp fra en anden... Ellers tak du, vi kan dele point?
Avatar billede nielle Nybegynder
09. januar 2008 - 20:49 #9
Ok.
Avatar billede nielle Nybegynder
09. januar 2008 - 20:55 #10
Hvordan kom den endelige løsning så til at se ud?
Avatar billede cot Nybegynder
09. januar 2008 - 20:58 #11
Mener du output eller kode?
Avatar billede nielle Nybegynder
09. januar 2008 - 21:02 #12
Koden :^)
Avatar billede cot Nybegynder
09. januar 2008 - 21:11 #13
Det var noget i denne stil:
$sql = "TRUNCATE TABLE travian_dk"; // Tømmer først min table
$result = mysql_query($sql); // Her udføres tømningen
$file = "http://s2.travian.dk/map.sql"; // Stien til filen map.sql
$fh = @fopen($file, 'r'); // Her åbner jeg filen og indlæser den i cachen
$i = 0; // Initiaering af tæller
while (!feof($fh)) { //Så længe der ikke er en ulæst linje I den indlæste fil, kører jeg løkken
                      $theData = fgets($fh); // Her indlæses næste linje
                      $theData = eregi_replace('`x_world`','travian_dk',$theData); // her erstatter jeg x_world med mite get tabelnavn som her er travian_dk
                      $result = mysql_query($theData); // jeg udfører den nu færdige sql sætning
                      $i++; // tæller tæller op
}
Avatar billede nielle Nybegynder
09. januar 2008 - 21:52 #14
Hmm, der er en tæller $i som ikke bruges til noget. Og en eregi_replace() som snart vil forsvinde ud af PHP, og i øvrigt er langsommere end en almindelig str_replace().

Må jeg så anbefale denne kode:

$sql = "TRUNCATE TABLE travian_dk"; // Tømmer først min table
$result = mysql_query($sql); // Her udføres tømningen

$sqlArr = file("http://s2.travian.dk/map.sql");
foreach ($sqlArr as $sql)
    $sql = str_replace('`x_world`', 'travian_dk', $sql);
    mysql_query($sql) or die(mysql_error());
)
Avatar billede nielle Nybegynder
09. januar 2008 - 21:53 #15
foreach ($sqlArr as $sql) {
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester