Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 8 odgovora
  • 3.805 pregleda

Najnovija ↓

Re: kako da pokrenem sql falj nakon sto je ulodiran 12.12.2006. u 10:54 · pre 242 meseca #2
možeš ili preko phpmyadmina ili sa mysqldump (ako server dopušta) ili da sam napišeš skriptu...
Potpis
there's no place like 127.0.0.1
Re: kako da pokrenem sql falj nakon sto je ulodiran 12.12.2006. u 10:57 · pre 242 meseca #3
Pa napraviš fajl run.php i staviš ga u action forme.
Konektuješ se na bazu i taj fajl otvoriš (fread i fopen) . Kao argument koristiš $_FILE array.
Imaš recimo:
$q = fread($fname);
mysql_query($q);
echo "Done!";
$fname ti je path do tog sql fajla.
Pozdrav,
Jezdo.
Potpis
“I never think of the future - it comes soon enough.” - Albert Anštajn (Albert Einstein)
Re: kako da pokrenem sql falj nakon sto je ulodiran 12.12.2006. u 11:02 · pre 242 meseca #4
još jedan način:

Code:

<?php

mysql_connect('localhost', 'nameless', '5xgdvz298');
mysql_select_db('test');

$upload_dir = 'upload/';
$upload_file = 'file.sql';

/**
 * nakon uploada...
 * neka file.sql sadrži samo jednu naredbu ...."SELECT * FROM tablica;"
 */

if (file_exists($upload_dir . $upload_file)) {
    $sql = join('', file($upload_dir . $upload_file));
    $tmp_res = mysql_query($sql);
    //$result = mysql_fetch_row($tmp_res);
    /**
     * sad dalje radiš sa razultatima što god hoćeš.
     */
}

?>
Potpis
Diablo III
Re: kako da pokrenem sql falj nakon sto je ulodiran 12.12.2006. u 12:54 · pre 242 meseca #5
Sve je u redu ili nikako da mi usje
$tmp_res = mysql_query($sql);
Ovoako izgleda sql fajl
Code:

CREATE TABLE `sport` (
  `sport_id` smallint(5) unsigned NOT NULL default '0',
  `naziv` varchar(50) default NULL,
  `export_id` smallint(5) unsigned NOT NULL default '0',
  PRIMARY KEY  (`sport_id`),
  KEY `ID` (`sport_id`),
  KEY `Naziv` (`naziv`)
) ENGINE=MyISAM CHARACTER SET utf8;

SET SQL_MODE = 'MYSQL323';

INSERT INTO `sport` VALUES("10", "Fudbal", "1");
INSERT INTO `sport` VALUES("20", "Košarka", "2");
INSERT INTO `sport` VALUES("30", "Tenis", "3");
INSERT INTO `sport` VALUES("40", "Formula 1", "4");
INSERT INTO `sport` VALUES("45", "Moto trki", "4");
INSERT INTO `sport` VALUES("50", "Golovi vo liga", "5");
INSERT INTO `sport` VALUES("55", "Super Tip", "11");
INSERT INTO `sport` VALUES("60", "Hokej", "6");
INSERT INTO `sport` VALUES("70", "Rakomet", "7");
INSERT INTO `sport` VALUES("80", "Američki fudbal", "8");
INSERT INTO `sport` VALUES("90", "Odbojka", "3");
INSERT INTO `sport` VALUES("100", "Vaterpolo", "7");
INSERT INTO `sport` VALUES("105", "Ski sportovi", "14");
INSERT INTO `sport` VALUES("110", "Atletika", "15");
INSERT INTO `sport` VALUES("115", "Boks", "16");
INSERT INTO `sport` VALUES("120", "Ragbi", "8");
INSERT INTO `sport` VALUES("130", "Politika", "12");
INSERT INTO `sport` VALUES("140", "Zabava", "13");

Da napomenem da preko phpmyadmina sve je Ok.
Re: kako da pokrenem sql falj nakon sto je ulodiran 12.12.2006. u 13:52 · pre 242 meseca #6
Na nekom MySQL serverima je zabranjeno izvršavanje više instrukcija odjednom.

Čak i sam phpMyAdmin kad mu "uvoziš" bekap, to isecka na pojedinačne instrukcije pa ih onda redom izvršava.
To možeš videti po tome što dodaje komentare na kraju svake od njih posle izvršavanja.

Evo moje funkcije koju koristim za to razdvajanje:
Code:

function SqlParser($filename) {
  // razdvaja sql komande iz datoteke u array pojedinačnih instrukcija
  $sql= file($filename);
  $out= array();
  $p= 0;
  $size= count($sql);
  $Terms= array('`',"'",'"');
  while ($p<$size) {
      $line= $sql[$p];
      $tline= trim($line);
      if((!$tline)or($tline[0]=='-')) {$p++; continue;} // prazan red ili komentar
      // ako je stig'o dovde onda počinje neka instrukcija
      $instr= '';
    $InString= false;
      do {
        $instr .= $line;
        // zavrsava li se red usred nekog stringa (enter usred stringa)
        for($x=0;$x<strlen($tline);$x++) {
          if(($InString)and($tline[$x]==$Term)) // izlazimo iz stringa
            {$InString=false; continue;}
          if((!$InString)and(in_array($tline[$x],$Terms))) // ulazimo u string
            {$Term=$tline[$x]; $InString=true; continue;} 
        }
        $FoundSemicolon= (!$InString) && (substr($tline,-1)==';');
         $p++;
         if($p>=$size) break;
         $line= $sql[$p];
        $tline= trim($line);
      } while (($InString) || (!$FoundSemicolon));
      $out[]= $instr;    
  }
  return $out;
}

Posle u foreach petlji izvršiš svaki element vraćenog niza.
Potpis
"The quieter you become, the more you are able to hear."
Blog | PowerCMS
Re: kako da pokrenem sql falj nakon sto je ulodiran 12.12.2006. u 22:15 · pre 242 meseca #9
Evo funkcije koja prevodi iz string iz "našeg" u UTF-8.
Code:

iconv("ISO-8859-2", "UTF-8", $string);

Možes jednostavnom petljom proći kroz query-file da ga "očistiš". Također možeš taj file čitav učitati u jedan string pa ga konvertovati..kako ti volja. Neki će vjerovatno predložiti utf8_encode() i utf8_decode(), ali nažalost ta funkcija ne radi sa našim hiroglifima :) Koristi ISO-8859-1 charset.

cheerz
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme