Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Način ubacivanja npr. 5000 unosa u bazu MySQL-a pomocu html i php skripte?

[es] :: PHP :: PHP za početnike :: Način ubacivanja npr. 5000 unosa u bazu MySQL-a pomocu html i php skripte?

[ Pregleda: 4787 | Odgovora: 14 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

blaki
Kraljevo

Član broj: 9616
Poruke: 400
*.dynamic.isp.telekom.rs.

Sajt: Kraljevo


+14 Profil

icon Način ubacivanja npr. 5000 unosa u bazu MySQL-a pomocu html i php skripte?28.01.2013. u 17:57 - pre 135 meseci
Pozdrav svima,

Ovo pitanje je posledica mog ranijeg rada u MC Accessu i formi za ubacivanje podataka u bazu. Dakle napravimo formu upisujemo podatak, stisnemo enter podatak se upise u tabelu, forma se resetuje, ne dižemo prste sa tastature, nastavljamo sa radom, upisujemo drugog, treceg,....... pet hiljaditog.

U ovim početničkim primerima koje sam savladao svuda je isto, html skripta iz koje se inicira php kod koji ubacuje podatak u bazu, php se izvrši u novom prozoru, daje obavest da je podatak upisan i zatvara konekciju sa MySQL serverom. Ako hoćete ubaciti sledeći red, obavezan klik na dugme reload u browseru, nigde opisa mogucnosti (ajd što nema opisa - ljudi nema ni naznake da postoji i drugi način) da se konekcija ne zatvori ili da php radi u pozadini, da ne otvara novi prozor ???

Sad ako cu ja vremenom to nauciti da isprogramiram, ako je to znanje koje tek trebam steći i niko mi to neće otkriti i to prihvatam i to je u redu, ali ako ne postoji druga mogućnost (ne mogu da verujem, al bolje da pitam), recite pa da znam šta me čeka.

Živo se nadam da niko neće spomenuti opciju ubacivanja podataka u bazu iz komandne linije MySQL-a.

Hvala unapred na odgovorima,

blaki
Druže Tito skrenuli smo s puta, sad nas jebe i Kurta i Murta
 
Odgovor na temu

Miroslav Ćurčić
ex mVeliki
Novi Sad

Član broj: 19034
Poruke: 1118
*.dynamic.isp.telekom.rs.



+19 Profil

icon Re: Način ubacivanja npr. 5000 unosa u bazu MySQL-a pomocu html i php skripte?28.01.2013. u 18:12 - pre 135 meseci
PHP radi samo u kratkom periodu između tvog klika na taster "Save" i trenutka kad počinje da se prikazuje sadržaj u browseru.

Kad se sadržaj prikaže, PHP je već završio posao i zatvorio konekciju.

Dakle ako ti treba unos velikog broja redova u bazu sve te redove moraš upisati u tom jednom potezu.
Recimo rasporedi INPUT-e u HTML-u da nalikuje na EXCEL tabelu tako da je svaki red ustvari slog u bazi, i forma će ih sve proslediti odjednom.
"The quieter you become, the more you are able to hear."
Blog | PowerCMS
 
Odgovor na temu

agvozden
Aleksandar Gvozden
founder
Info-G
Beograd

Član broj: 37813
Poruke: 1122
92.244.135.*

Sajt: www.gvozden.info


+68 Profil

icon Re: Način ubacivanja npr. 5000 unosa u bazu MySQL-a pomocu html i php skripte?28.01.2013. u 18:55 - pre 135 meseci
Najbilje ti je da iskombinujes sa JS, tj da okidas AJAX posle svakog reda i tako sacuvas svoj rad, umesto da uneses 4000 zapisa i da ti pukne konekcija...

 
Odgovor na temu

ivan.a
PHP developer

Član broj: 83976
Poruke: 403
89.216.28.*



+44 Profil

icon Re: Način ubacivanja npr. 5000 unosa u bazu MySQL-a pomocu html i php skripte?29.01.2013. u 06:42 - pre 135 meseci
Neće ti tu puno pomoći javascript, pošto ceo proces unosa u bazu obrađuje php. Jedino zbog "vizuelnog doživljanja" možeš koristiti js.
Ovaj deo mi baš nije jasan:
Citat:
Ako hoćete ubaciti sledeći red, obavezan klik na dugme reload u browseru, nigde opisa mogucnosti (ajd što nema opisa - ljudi nema ni naznake da postoji i drugi način) da se konekcija ne zatvori ili da php radi u pozadini, da ne otvara novi prozor ???


U trenutku kada klikneš na Save / Submit dugme, php obrađuje proces i kada završi stranica se učita. Verujem da je tako i u tvom slučaju.
Dakle, tvoj kod bi trebalo ovako da izgleda: prvo php procesira zahtev i unosi podatke, a posle toga ide html kod tj. deo za unos podataka (html forma). Kada je forma poslata i stranica se učita, php je već uneo sve podatke u bazu...
I hope I didn't brain my damage - Homer
if (wife.position == kitchen) {return sandwich};
 
Odgovor na temu

blaki
Kraljevo

Član broj: 9616
Poruke: 400
*.dynamic.isp.telekom.rs.

Sajt: Kraljevo


+14 Profil

icon Re: Način ubacivanja npr. 5000 unosa u bazu MySQL-a pomocu html i php skripte?29.01.2013. u 06:52 - pre 135 meseci
Citat:
Miroslav Ćurčić:
PHP radi samo u kratkom periodu između tvog klika na taster "Save" i trenutka kad počinje da se prikazuje sadržaj u browseru.

Kad se sadržaj prikaže, PHP je već završio posao i zatvorio konekciju.

Dakle ako ti treba unos velikog broja redova u bazu sve te redove moraš upisati u tom jednom potezu.
Recimo rasporedi INPUT-e u HTML-u da nalikuje na EXCEL tabelu tako da je svaki red ustvari slog u bazi, i forma će ih sve proslediti odjednom.


Vezano za ovu poruku i sledecu od agvozdena, nadao sam se malo jednostavnijem odgovoru, osobito sto je forum za PHP pocetnike, no nije to toliko vazno, vaznije je ono cega sam se pribojavao, da objasnim navest cu primer:

Dakle u jednoj firmi kolega koji naravno (nazalost takvih je 99 %) ima samo osnovno korisnicko znanje o racunarima mi izrazi zahtev za potrebom evidentiranja nekih korisnika-podataka, ja u Accessu smislim tabele, formiram bazu, napravim forme za unos, odgovarajuce upite i na osnovu njih izvestaje sa smislenim naslovima, ogranicim prava i dr. Njemu ukratko objasnim kako da ubacuje podatke, kako da proveri podatak da li ga vec ima u bazi, kako da odstampa izvestaj kolji mu je potreban; klik, klik, klik i ja sam posao zavrsio, on ubacuje korisnike, on pravi izvestaje kada mu trebaju, moje je evntualno da mu to malo sredim povremeno u smislu brisanja nekih koje je dvaput greskom ubacio i to je to.

Kod MySQL-a koliko vidim ja sam taj "fizikalac" koji zapravo sve mora raditi, ukljucivsi i ubacivanje silnih podataka - to mi se nimalo ne dopada. Ajd kada bih ja radio samo taj posao pa covek i da se navikne, ali naravno to je posao koji se radi usputno.


Druže Tito skrenuli smo s puta, sad nas jebe i Kurta i Murta
 
Odgovor na temu

gotivac
Kragujevac

Član broj: 26754
Poruke: 160
*.static.sbb.rs.



+2 Profil

icon Re: Način ubacivanja npr. 5000 unosa u bazu MySQL-a pomocu html i php skripte?29.01.2013. u 07:45 - pre 135 meseci
Ako sam te dobro razumeo, tebi je osnovni problem što treba unositi sukcesivno veliku količinu podataka bez dizanja ruku sa tastature?

Ako je to u pitanju, onda napraviš dve strane, jednu sa formom za unos podataka (ona se na primer zove index.php), i drugu kojoj forma submituje podatke (insert_data.php).

Primer prve strane index.html (recimo da upisujemo samo ime i prezime):

Code:

<form name="form1" id="form1" method="post" action="insert_data.php">
Ime:<input type="text" name="ime" id="ime" />
</br>
Prezime: <input type="text" name="prezime" id="prezime" />
<br/>
<input type="submit" value="Upisi" />
</form>



Primer druge strane:

Code:

<?php
$ime = $_POST['ime'];
$prezime = $_POST['prezime'];

$sql = "INSERT INTO blabla (ime, prezime) VALUES ('$ime','$prezime')"

... upises u bazu kako vec to radis ...

... i onda na kraju:

header("Location: index.php");

?>


To ti je osnovno, pa ti dalje kombinuj. Bitno je da nemaš nikakav echo pre header funkcije, dakle, ne smeš imati nikakav izlaz na ekran na ovoj drugoj strani.
Ukoliko ti ipak treba, onda možeš umesto header() da zatvoriš php kod sa ?>, pa nakon toga da dodaš jednostavnu javascript komandu:

Code:


<script type="text/javascript">
window.location.replace("index.php");
</script>


Drugi način je da na istoj strani radiš i upis u bazu i da ti na njoj bude forma. U tom slučaju ti ne treba preusmeravanje, veće se sve dešava na index.php strani:

Code:

<?php
if (isset($_POST['ime']) && isset($_POST['prezime']))
{
$ime = $_POST['ime'];
$prezime = $_POST['prezime'];

$sql = "INSERT INTO blabla (ime, prezime) VALUES ('$ime','$prezime')"

... upises u bazu kako vec to radis ...
}
?>

<form name="form1" id="form1" method="post" action="index.php">
Ime:<input type="text" name="ime" id="ime" />
</br>
Prezime: <input type="text" name="prezime" id="prezime" />
<br/>
<input type="submit" value="Upisi" />
</form>



Sve ovo, naravno, ako sam dobro razumeo tvoje pitanje.


[Ovu poruku je menjao gotivac dana 29.01.2013. u 10:21 GMT+1]
 
Odgovor na temu

bantu

Član broj: 38670
Poruke: 305
89.111.240.*



+27 Profil

icon Re: Način ubacivanja npr. 5000 unosa u bazu MySQL-a pomocu html i php skripte?29.01.2013. u 08:28 - pre 135 meseci
Pa zavisi koja je tvoja uloga u svemu tome. Da li si ti programer, administrator ili pak korisnik sistema. Ukoliko si samo korisnik baš te briga, znaš koji ti je posoao i tamo nešto klikćeš u aplikaciji. Ako si administartor sistema, onda je tvoja uloga da upravljaš sistemom privilegijama i ukoliko je potrebno uradiš neki masovni import kao što si naveo.

E sada ako si programer, onda treba da obezbjediš interface za sve gore pomenute radnje. Ako ćeš jednom godišnje da izvršis neki import onda vjerovatno nema smisla da razvijaš poseban dio aplikacije za to. Ali ako je to radnja koja se često ponavlja moraš da razviješ aplikaciju za to te da obezbjediš da to neko drugi radi a ne osba koja ima direktan pristup bazi. Najjednostavnije riješenje je da submit-uješ neki file koji sadrži podatke koje importuješ i da provjeriš podatke u file-u, te ako su dobri upišeš ih u bazu.
 
Odgovor na temu

blaki
Kraljevo

Član broj: 9616
Poruke: 400
*.dynamic.isp.telekom.rs.

Sajt: Kraljevo


+14 Profil

icon Re: Način ubacivanja npr. 5000 unosa u bazu MySQL-a pomocu html i php skripte?29.01.2013. u 09:04 - pre 135 meseci
Citat:
ivan.a:
Neće ti tu puno pomoći javascript, pošto ceo proces unosa u bazu obrađuje php. Jedino zbog "vizuelnog doživljanja" možeš koristiti js.
Ovaj deo mi baš nije jasan:
Citat:
Ako hoćete ubaciti sledeći red, obavezan klik na dugme reload u browseru, nigde opisa mogucnosti (ajd što nema opisa - ljudi nema ni naznake da postoji i drugi način) da se konekcija ne zatvori ili da php radi u pozadini, da ne otvara novi prozor ???


U trenutku kada klikneš na Save / Submit dugme, php obrađuje proces i kada završi stranica se učita. Verujem da je tako i u tvom slučaju.
Dakle, tvoj kod bi trebalo ovako da izgleda: prvo php procesira zahtev i unosi podatke, a posle toga ide html kod tj. deo za unos podataka (html forma). Kada je forma poslata i stranica se učita, php je već uneo sve podatke u bazu...


Mislim da shvatam sustinu. Odlican odgovor. Sad kao laik bi pitao, a sta je sa startovanjem od unosa dok nema nikakvog podatka u poljima html-a? No zanemarimo to. Evo primera sa kojima sam ja radio, pa proceni da li je uopste moguce ovo promeniti na nacin da prvo ide php skript, a forma html da ostane aktivna.




Druže Tito skrenuli smo s puta, sad nas jebe i Kurta i Murta
 
Odgovor na temu

dakipro
Dalibor Jovic
Web Developer
Bergen, Norway

Moderator
Član broj: 31848
Poruke: 1792
*.85-200-249.bkkb.no.

Sajt: norway.dakipro.com


+190 Profil

icon Re: Način ubacivanja npr. 5000 unosa u bazu MySQL-a pomocu html i php skripte?29.01.2013. u 09:07 - pre 135 meseci
Citat:
sta je sa startovanjem od unosa dok nema nikakvog podatka u poljima html-a?

stavis neki if/else na odgovarajuce mesto
if(isset($_POST['actionID'])) recimo, ili mozes mozda i is_empty($_POST)
Ja licno uvek u svakoj formi setuijem jedan hidden field 'actionID' i na osnovu njega pratim jal je to forma ili sta je
 
Odgovor na temu

blaki
Kraljevo

Član broj: 9616
Poruke: 400
*.dynamic.isp.telekom.rs.

Sajt: Kraljevo


+14 Profil

icon Re: Način ubacivanja npr. 5000 unosa u bazu MySQL-a pomocu html i php skripte?29.01.2013. u 09:13 - pre 135 meseci
Citat:
gotivac:
Ako sam te dobro razumeo, tebi je osnovni problem što treba unositi sukcesivno veliku količinu podataka bez dizanja ruku sa tastature?
Sve ovo, naravno, ako sam dobro razumeo tvoje pitanje. :)


Ovo cu probati, moguce je resenje jer toga koji bi unosio podatke mogu nauciti da pravilno ispunjava formu html koju vidi u browseru.

Javljam ako uspem.

Druže Tito skrenuli smo s puta, sad nas jebe i Kurta i Murta
 
Odgovor na temu

ivan.a
PHP developer

Član broj: 83976
Poruke: 403
89.216.28.*



+44 Profil

icon Re: Način ubacivanja npr. 5000 unosa u bazu MySQL-a pomocu html i php skripte?29.01.2013. u 10:23 - pre 135 meseci
Mislim da je sada malo jasnije u čemu je problem.

U tvojoj formi se koristi i konekcija sa bazom (treba ukucati database: username, password itd).
Posle svakog unosa ova forma se resetuje pa ponovo moraš da kucaš iste podatke.
Rešenje za ovo je da napraviš posebnu stranicu za konekciju sa bazom i kada se korisnik uloguje kreiraš sesiju.
Ili možeš da sačuvaš podatke za konekciju u sesiji. Ukoliko postoji sesija za konekciju više ne prikazuješ formu, već koristiš parametre iz sesije. Eventualno možeš napraviti disconnect dugme, gde resetuješ sesiju.

Primer (gledajući tvoj kod):
Code:
session_start(); //ovo stavljaš uvek na početku stranice (prva linija koda).

//PROVERA SESIJE
if ( isset($_SESSION["vlasnik"]) AND isset($_SESION["lozinka"]) AND isset($_SESSION["baza"]) ) {
  $user = $_SESSION["vlasnik"];
  $passwd= $_SESSION["lozinka"];
  $bp = $_SESSION["baza"];
} else {
  //U suprotnom koristiti podatke iz forme i kreirati sesiju
  $user = $_POST["vlasnik"];
  $passwd= $_POST["lozinka"];
  $bp = $_POST["baza"];
  //Uneti podatke u sesiju
  $_SESSION["vlasnik"] = $user;
  $_SESSION["lozinka"] = $passwd;
  $_SESSION["baza"] = $bp;
}

$host = 'localhost';


Dakle, ovaj kod zameniš sa kodom iz UnesiProces.php (linija od 1-7), poske čega ide:
$connection = mysql_connect( ... itd.

Pre unosa u bazu proveriš da li je forma poslata:
Ovaj ceo kod od $sqlquery
zameniš sa
Code:
if (isset($_POST["1Ime"]) AND isset($_POST["2Prezime"])  AND isset($_POST["3Mesto"]) AND isset($_POST["4Datum"]) ) {
  OVDE IDE KOD ZA UNOS U BAZU PODATAKA>
  od $sqlquery do mysql_close();
} else {
  echo "PODACI NISU UNETI! PROVERITE SVA POLJA";
}


Fajl FormaZaUnos1.html preimenuješ u FormaZaUnos1.php

prva linija:
Code:
<?php session_start();

Zameniš kod koji prikazuje formu za konekciju sa bazom (tj. ne prikazivati formu za konekciju sa bazom ukoliko je korisnik već ukucao podatke):
Code:
if ( isset($_GET["prekini_vezu"])  ) {
  unset($_SESSION["vlasnik"]);
  unset($_SESSION["lozinka"]);
  unset($_SESSION["baza"]);
  session_destroy();
  //header("location: FormaZaUnos1.php"); die; // mozes uraditi redirekciju posle odjave
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Unos podataka u tabelu</title>>
</head>
<body>
<form action="UnesiProces.php" method="post">
<h2>Unos podataka u tabelu</h2>
<?php
//Ukoliko postoji sesija sa podacima, prikazi link za prekid veze
if ( isset($_SESSION["vlasnik"]) AND isset($_SESION["lozinka"]) AND isset($_SESSION["baza"]) ) {
  ?>
  <a href="FormaZaUnos1.php?prekini_vezu">[Prekini vezu sa bazom]</a>
  <?php
} else {
 ?>
 <table>
  <tr>
    <td>Username:</td>
    <td><input type="text" name="vlasnik" /></td>
  </tr>
  <tr>
    <td>Password:</td>
    <td><input type="password" name="lozinka" /></td>
  </tr>
  <tr>
    <td>Baza:</td>
    <td><input type="text" name="baza" /></td>
  </tr>
 </table>
 <?php
}
?>

<table>
  <tr>
   <td>IME</td>
   <td><input type="text" value="" name="1Ime" /></td>
 </tr>

  <tr>
   <td>PREZIME</td>
   <td><input type="text" value="" name="2Prezime" /></td>
 </tr>

  <tr>
   <td>MESTO</td>
   <td><input type="text" value="" name="3Mesto" /></td>
 </tr>

  <tr>
   <td>DATUM</td>
   <td><input type="text" value="" name="3Datum" /></td>
 </tr>
</table>
</form>
</body>
</html>


Da li možda imaš fajl sa podacima za unos u elektronskoj formi (excel tabela ili text fajl)?
Ukoliko imaš, možda postoji mogućnost da uneseš sve podatke od jednom batch metodom parsirajući fajl.

[Ovu poruku je menjao ivan.a dana 29.01.2013. u 12:06 GMT+1]
I hope I didn't brain my damage - Homer
if (wife.position == kitchen) {return sandwich};
 
Odgovor na temu

blaki
Kraljevo

Član broj: 9616
Poruke: 400
*.dynamic.isp.telekom.rs.

Sajt: Kraljevo


+14 Profil

icon Re: Način ubacivanja npr. 5000 unosa u bazu MySQL-a pomocu html i php skripte?29.01.2013. u 12:11 - pre 135 meseci
Pokusajima do kojih sam dosao zakljucujem da ono sto mi je preporucio g. gotivac nema ni u kom slucaju osim sto ne znam za treci predlozeni jer ne znam kako da ga implementiram, poruke o gresci. Dakle namerno ne upisem bazu, a on gresku ne prijavi, odnosno mozda i prijavi ali ga trenutno prekrije javascript, tako da u sustini to ne moze.

Ovo zadnje sto je predlozio g.ivan.a i sto se potrudio da napise (veliko hvala na trudu), dosao sam do toga da prijavljuje gresku da postoi dupli zapis u auto polju koje je podeseno na autoincrement, dakle npr.

Duplicate entry '127' for key 'PRIMARY'

Kao da se u istoj sesiji dva puta pokusava upisati slog. Ako obrisem sve zapise-slogove prvi prodje, ali sledeci jok.

Hvala jos jednom svima na dosadasnjim odgovorima.
Druže Tito skrenuli smo s puta, sad nas jebe i Kurta i Murta
 
Odgovor na temu

kelja

Član broj: 70429
Poruke: 1416
*.dynamic.isp.telekom.rs.



+35 Profil

icon Re: Način ubacivanja npr. 5000 unosa u bazu MySQL-a pomocu html i php skripte?29.01.2013. u 12:30 - pre 135 meseci
E, a imas li ti te podatke (ili mozda mozes da ih dobijes/slozis) vec u nekom, za prebacivanje zgodnom, formatu (.xml, .csv, .xls,...)?

Imas gomilu gotovih skripti za masovni import podataka, a i phpmyadmin moze da odradi neke stvari...

Recimo, ovde je resenje za excel fajlove:

http://rackerhacker.com/2008/1...cel-files-into-mysql-with-php/

Jerbo, unosenje 5000+ podataka preko forme i ne deluje bas kao najsrecnije resenje?

ako sam uopste razumeo temu/problem, dakako....
 
Odgovor na temu

ivan.a
PHP developer

Član broj: 83976
Poruke: 403
89.216.28.*



+44 Profil

icon Re: Način ubacivanja npr. 5000 unosa u bazu MySQL-a pomocu html i php skripte?29.01.2013. u 12:54 - pre 135 meseci
Nisam siguran zašto ti prijavljuje dupli unos kada je skripta za unos podataka u bazu ista tj. neizmenjena osim što se proverava da li je forma poslata (i ako jeste tek onda se podaci unose).

Pretpostavljam da imaš neke prazne unose, jer ranije nisi proveravao da li je forma poslata pa se podaci uvek unose kada se učita stranica (ili refresh-uje). Da bi ovo rešio najbolje je da uradiš redirekciju posle unosa - zameniš else echo "Podatak unesen", sa else { header("location: FormaZaUnos1.php"); die; } ili zaštitiš formu sa nekim jedinstvenim slogom tj. kodom koji se svaki put menja kada učitaš formu i smešta u sesiju. Kod unosa forme proveriš da li je podatak iz sesije isti sa poslatim zahtevom.

Kao što sam već napomenuo...ukoliko imaš podatke u elektronskoj formi, verujem da se lako može napraviti tabela u excelu. Nakon toga veoma jednostavno možeš uneti sve podatke "u dahu".
I hope I didn't brain my damage - Homer
if (wife.position == kitchen) {return sandwich};
 
Odgovor na temu

Gost




Profil

icon Re: Način ubacivanja npr. 5000 unosa u bazu MySQL-a pomocu html i php skripte?15.02.2014. u 18:07 - pre 123 meseci
ja sam početnik
pa te molim da dopuniš ovu skriptu
kako upisati u bazu
i logovanje
 
Odgovor na temu

[es] :: PHP :: PHP za početnike :: Način ubacivanja npr. 5000 unosa u bazu MySQL-a pomocu html i php skripte?

[ Pregleda: 4787 | Odgovora: 14 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.