PHP & MySQL povezivanje te input / output

poruka: 17
|
čitano: 3.034
|
moderatori: Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
10 godina
neaktivan
offline
PHP & MySQL povezivanje te input / output
Pozdrav.
Novi sam ovdje i u PHP-u :)

Tražio sam dosta na internetu, ali nikako da uspijem povezati PHP dokument i databazu. A kada uspijem ne ide mi nikako da ispravno šalje /uzima podatke...

Molim vas ako mi netko može pomoći tako da napiše što mi treba redom i kako da to funkcionira, bio bih jako zahvalan...
Koristim xampp na računalu.

Počeo sam s php-om i ne znam još baš objektivan način programiranja, ali potruditi ću se naučiti. Za sada samo želim povezati databazu s php dokumentom, a za dalje, kako bude išlo :)
Moj PC  
0 0 hvala 0
12 godina
neaktivan
offline
PHP & MySQL povezivanje te input / output

primjer koda...

 
0 0 hvala 0
13 godina
neaktivan
offline
PHP & MySQL povezivanje te input / output

POVEZIVANJE SA DATABAZOM

 

<?php

$servername = "localhost";
$username = "root";
$password = "";

$baza = "ime_databaze";

// Create connection
$conn = new mysqli($servername, $username, $password, $baza);

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>

 

INSERT U DATABAZU 

 

$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('John', 'Doe', 'john@example.com')";

if ($conn->query($sql) === TRUE) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

 

ČITANJE IZ DATABAZE

 

$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {
        echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
    }
} else {
    echo "0 results";
}

 

 

Poruka je uređivana zadnji put sri 4.11.2015 6:18 (Dema).
 
0 0 hvala 0
12 godina
neaktivan
offline
PHP & MySQL povezivanje te input / output

nemas definiranu bazu na koju se povezujes

 

$mysqli = new mysqli("localhost""user""password""database");

 
0 0 hvala 0
13 godina
neaktivan
offline
Re: PHP & MySQL povezivanje te input / output
igor2007 kaže...

nemas definiranu bazu na koju se povezujes

 

$mysqli = new mysqli("localhost""user""password""database");

 Ispravljeno.

16 godina
odjavljen
offline
Re: PHP & MySQL povezivanje te input / output
Dema kaže...

$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('John', 'Doe', 'john@example.com')";

Ovo se NE radi. Nema smisla učiti nekoga da radi opasno i krivo samo zato što je početnik. Treba odmah učiti kako treba.

 

 

Svakako bih preporučio PDO umjesto MYSQLI-a. Mislim da nema smisla pisati primjere od nule, kad je tu sve pokriveno: https://secure.php.net/manual/en/book.pdo.php

 

Big wheel keep on turning, Proud Mary keep on burning, Trolling, trolling, trolling on the river.
10 godina
neaktivan
offline
PHP & MySQL povezivanje te input / output

Okani se čorava posla, PGSQL i ActiveRecord ;)

 
0 0 hvala 0
10 godina
neaktivan
offline
Re: PHP & MySQL povezivanje te input / output
@Dema hvala, ali, jel bi mogao molim te, napraviti kako bi ti dokumenti trebali izgledati?
Znači ništa posebno mi ne treba, najjednostavnija databaza s jednom tablicom s 2 podatka (čisto da znam dodavati više podataka) i jednostavnim html inputom s dva obična kvadrata i jednim outputom...

@MrBlc što ne valja? Na što da obratim pažnju dok radim s time?

Znači treba mi izgled dokumenta cijeli ako je moguće... Stvarno mi ne ide i bio bih jako zahvalan ako netko može napraviti to...
16 godina
odjavljen
offline
Re: PHP & MySQL povezivanje te input / output
Ikerepc kaže...
@MrBlc što ne valja? Na što da obratim pažnju dok radim s time?

Znači treba mi izgled dokumenta cijeli ako je moguće... Stvarno mi ne ide i bio bih jako zahvalan ako netko može napraviti to...

Vrijednosti se nikad ne ubacuju u query osim u onih 0,01% slučajeva kad si 100% siguran koje vrijednosti su moguće i znaš da ne mogu uzrokovati problem, a odstupati od uobičajenog za takve slučajeve je opet kontraproduktivno, pa lijepo koristiš mogućnosti koje ti db adaptor pruža. Na danom linku imaš kvalitetnih primjera.

 

Nego, mene zanima druga stvar: želiš učiti ili moraš riješiti neki konkretni zadatak, pa ćeš sad tu žicati da ti netko riješava domaći?

Big wheel keep on turning, Proud Mary keep on burning, Trolling, trolling, trolling on the river.
10 godina
neaktivan
offline
Re: PHP & MySQL povezivanje te input / output
MrBlc kaže...
Ikerepc kaže...
@MrBlc što ne valja? Na što da obratim pažnju dok radim s time?

Znači treba mi izgled dokumenta cijeli ako je moguće... Stvarno mi ne ide i bio bih jako zahvalan ako netko može napraviti to...

Vrijednosti se nikad ne ubacuju u query osim u onih 0,01% slučajeva kad si 100% siguran koje vrijednosti su moguće i znaš da ne mogu uzrokovati problem, a odstupati od uobičajenog za takve slučajeve je opet kontraproduktivno, pa lijepo koristiš mogućnosti koje ti db adaptor pruža. Na danom linku imaš kvalitetnih primjera.

 

Nego, mene zanima druga stvar: želiš učiti ili moraš riješiti neki konkretni zadatak, pa ćeš sad tu žicati da ti netko riješava domaći?

 

nikakav domaći, ja samo želim to napraviti... Ali znam samo proceduralni php, objektivni sam mislio krenit kad ga povežem s bazom. Al kolko god da sam pokušavo, ne mogu da me kolješ...

 

Samo želim konkretan najjednostavniji mogući primjer jer me ovo ubija...

ZnaČi dokument s inputom, dokument za prihvat i kako da se povežem... Neki kažu da naprvim posebni dokument za povezivanje s bazom a neki da  u svakom posebno stavljam taj kod... Također me zanima zato, šta si ti napisao to za query? Radim za sebe i svoje znanje...

 

Ili mi prvo preporuČate da nauČim objektivni naČin?

Ako da, di to mogu naći? Tutorijal neki... Ovaj normalni sam nauČio na codecademy, al objektivni mi ne ide lol. Pa sam mislio, možd da prvo nauČim samo povezat databazu pa da mogu podatke vuć iz nje i onda uČit dalje...

 

Nikoga ne žicam niti ću žicati. tržim samo primjer :( Najjednostavniji mogući kažem. Nikakav html mi ne treba, samo php kod za to osnovni, i u koje da ga dokumente smjestim, a dalje ću ja kemijat :)

 

Ps. Dakle da prvo povezujem s bazom il uČim objektivno?

Zašto da se okanim MySQL-a?

Pitam jer sam novi, posebno kod baza. PHP znam da se koristi pa bih ga htio nauČit a sliČan je i JS-u kojeg onak djelomiČno znam, uČim još. A s php-om ide mysql baza. O Čemu ste vi priČali?

Poruka je uređivana zadnji put sri 4.11.2015 20:45 (Ikerepc).
16 godina
odjavljen
offline
PHP & MySQL povezivanje te input / output

Ok, idemo redom.

 

Prvo, spajanje na bazu:

 

$options = array();
$options[PDO::MYSQL_ATTR_INIT_COMMAND] = "SET NAMES utf8".$db_config['charset']; //ako ćeš koristiti utf-8 - preporučam
$pdo = new PDO('mysql:host='.$host.';dbname='.$dbname, $username, $password, $options);

 

Znači, kreirao si konekciju na bazu.

 

Za početak ti je lakše prvo vaditi. Da bi kreirao bazu i da bi imao što vaditi iz iste, najbolje ti je preko phpmyadmina (u XAMP-u je obično po defaultu na http://localhost/phpmyadmin) kreirati bazu i ubaciti neke podatke koji će se prikazati.

 

Traženje jednog itema:

$query = $pdo->prepare("SELECT * FROM tablica WHERE id=?");
$query->execute(array($item_id));
if($item = $query->fetch(PDO::FETCH_ASSOC)){
  // našao si ga, koristiš ga
}

 

Ili više itema:

$query = $pdo->prepare("SELECT * FROM tablica WHERE category_id=? AND language_id=? ORDER BY sort ASC");
$query->execute(array($category_id, $language_id));
$items = $query->fetchAll(PDO::FETCH_ASSOC);

 

Umjesto zadnje linije možeš raditi i:

while($item = $query->fetch(PDO::FETCH_ASSOC)){
  // kod koji se izvršava za svaki item
}

 

? u query-u predstavlja mjesto argumenta, a argumente prosljeđuješ u arrayu. Umjesto upitnika možeš koristiti :neko_ime, pa onda 'neko_ime' mora biti key u arrayu za taj podatak ili koristiš metodu bindValue() za spajanje podatka s placeholderom.

 

 

Uređivanje postojećeg podatka:

$query = $pdo->prepare("UPDATE tablica SET naslov = :naslov, text = :text WHERE id = :id");
$query->bindValue(':naslov', $naslov);
$query->bindValue(':text ', $text );
$query->bindValue(':id', $id);
$query->execute();

 

Kod uređivanja je u pravilu named placeholder (:naziv umjesto ?) praktičniji jer se radi o više varijabli, a nerijetko polja za update dinamički dodaješ, pri čemu bindValue dosta zna olakšati. Nema razloga da ne koristiš ?, to je na tebi. U pravilu je upitnik zgodniji za mali broj parametara.

 

Umetanje:

$query = $this->pdo->prepare("INSERT INTO tablica (naslov, text, sort, language_id, category_id) VALUES (?, ?, ?, ?, ?)");
$query->execute(array($naslov, $text, $sort, $language_id, $category_id));



Brisanje:

$query = $this->pdo->prepare("DELETE FROM tablica WHERE id = ?");
$query->execute(array($id));

 

 

To bi bilo više manje to za rad s bazom pod pretpostavkom da znaš SQL. Objašnjavanje SQL-a ili implementacije forme, kompletno od prikaza do validacije je ipak malo preopširno za ovaj medij.

 

 

Što se tiče objektno orjentiranog, mislim da ti nije prerano učiti se. Inače, PDO je intuitivniji pri objektno orjentiranom programiranju, dok mysqli_ funkcije, iako se mogu koristiti objektno, prate logiku zastarjelih proceduralnih mysql_ funkcija.

 

PDO::FETCH_ASSOC je konstanta koja govori PDO-u da ti vrati rezultate kao associjativni array. Kad kreneš s objektnim, tražiti ćeš da ti vraća klase.

 

 

 

P.S. Razlog zbog kojeg sam mislio da ti je ovo za neki zadatak je isti razlog zbog kojeg ćeš teško nešto naučiti - želiš sve i želiš odmah. Skoncentriraj se na jedno - ili kreni od forme, pa nek ti kod submita samo ispiše vrijednosti, pa onda dodaj validaciju, pa lagano kreni igrati se s bazom ili kreni s čitanjem iz baze, pa spremanje iz predefiniranog arraya, pa onda širiš lagano s formom. Ako očekuješ da možeš nabrzinu sklepati kod bez greške, gadno ćeš se razočarati. To će ti predstavljati izazov i za par godina, samo ćeš onda lako skužiti gdje je greška, a sad to ne možeš, pa ideš korak po korak i testiraš svaki korak.

 

 

Big wheel keep on turning, Proud Mary keep on burning, Trolling, trolling, trolling on the river.
 
2 0 hvala 2
10 godina
neaktivan
offline
Re: PHP & MySQL povezivanje te input / output

Hvala @MrBlc

 

Ma ja samo hoću neku osnovu od koje mogu eksperimentirati... Zato hoću najjednostavniji kod, da ga shvatim, i radim dalje jer je teško učiti ako ne vidim retultate i ne znam gdje sam onda uopće pogriješio.

 

Probat ću popodne kada dođem kući na komp :)

 

EDIT: to se radi s posebnim 'sql' kodom? Pa što mi netko to prije nije rekao :/ ja sam mislio da je to php lol

Sad se glupo osjećam... Svejeno si mi puno pomogao. Pogledat ću to prvo lol

 

Kad nemam nekoga da mi pomogne a nisam sam skužio da.je taj sql zapravo valjda poseban odvojen od php-a. Još mi se činilo malo čudno al nisam primjetio :D

Poruka je uređivana zadnji put čet 5.11.2015 7:41 (Ikerepc).
16 godina
odjavljen
offline
PHP & MySQL povezivanje te input / output

Uf, imaš ti tu onda posla.

 

Znači, za bazu se koristi SQL, a PHP kao i ostali programski jezici ima sučelja za spajanje na bazu, slanje SQL naredbi i dohvat rezultata.

 

Prije nego kreneš na baze, možeš se poigrati samim SQL-om preko phpmyadmina kako bi shvatio što se tu događa.

 

Upravo ako kreneš od gotovog rješenja ćeš najteže razlučiti što je što jer nisi još u stanju raspoznati različite dijelove koda i funkcionalnosti. Kreneš od jednog s dummy podacima, pa lagano širiš.

Big wheel keep on turning, Proud Mary keep on burning, Trolling, trolling, trolling on the river.
 
1 0 hvala 1
10 godina
neaktivan
offline
Re: PHP & MySQL povezivanje te input / output

Hahhha, još to mwn neš komplicirane naredbe i to... :D

A dobro, imam vremena ;)

 

Ako se zagubim, mogu tu pitat, hvala na pomoći :)

10 godina
neaktivan
offline
PHP & MySQL povezivanje te input / output

Danas sam preko codecademy prošao sql, laganl je to, kreirao neku tablicu, php je prikazuje.

 

Našao sam kod na w3schools koji funkcionira, al nisam baš skužio kak radi. Ipak ću je još igrat php-om, posebno objektivnim sad.

 

Znaš neku stranicu i/ili neke zadatke koje mogu radit lagano da naučim?

Kako god, hvala. Puno si mi pomogao. Skužio sam kako sql izgleda i radi, te kako se povezuje s bazom. A kad još malo proučim php onda ću si i neku stranicu napravit ;) :D

Moj PC  
0 0 hvala 0
16 godina
odjavljen
offline
PHP & MySQL povezivanje te input / output

Prođi par osnovnih tutorijala na w3school, pokušaj malo ekperimentirati, probaj malo pratiti kod.

 

 

Kad zapneš, pokušaj naći gdje se gubiš, pa vidi što ta funkcija radi: https://secure.php.net/manual/en/index.php

 

 

Pišeš u notepadu ili koristiš neki IDE? Kvalitetan IDE ti pruža dodatne mogućnosti za lakše učenje: control + click za odlazak na funkciju koja se poziva, učitavanje informacija o funkciji, link na manual, code completion, debug. Ja osobno koristim Eclipse, ali nisam siguran koji je najjednostavniji za početnika.

Big wheel keep on turning, Proud Mary keep on burning, Trolling, trolling, trolling on the river.
 
0 0 hvala 0
10 godina
neaktivan
offline
PHP & MySQL povezivanje te input / output

Radim u Bracketsu (Adobe Brackets, besplatni softver) - u njemu pišem sav kod da naučim a on ga boja i predlaže kod css-a i html-a i to mi se sviđa kod njega ;)

 

Edit: sad si instaliro Eclipse... Fora program, nudi sve a sa strane varijable... Sviđa mi se na prvi pogled al izgleda komplicirano, trebat ću se potrudit ;)

Kako god, dok učim najviše volim koristit nešto di sve pišem jer kad ja kod napišem 20 puta, ja njega zapamtim a onda ću si neći tako neki program. Za sada mi je Brackets car i to je to :)

Bar dok ne vidim kako će mi ići ovo objektivno... :/ :D

Poruka je uređivana zadnji put čet 5.11.2015 21:26 (Ikerepc).
Moj PC  
0 0 hvala 0
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice