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

Izmena konekcije i paginacija

[es] :: PHP :: Izmena konekcije i paginacija

[ Pregleda: 2937 | Odgovora: 18 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

-Godfather-
Bez posla
Nema

Član broj: 313147
Poruke: 62



Profil

icon Izmena konekcije i paginacija03.07.2013. u 11:52 - pre 131 meseci
Evo mene ponovo...Pokušavam da izmenim tip konekcije al to mi stvara problem kod paginacije koju koristim
Ranije sam se konektovao sa
db.php
Code:
<?php
$mysql_hostname = "localhost";
$mysql_user = "root";
$mysql_password = "root";
$mysql_database = "messages";
$prefix = "";
$bd = mysql_connect($mysql_hostname, $mysql_user, $mysql_password) or die("Error");
mysql_select_db($mysql_database, $bd) or die("Eror");

?>

a dio koda koji treba za paginaciju izgleda ovako
load_data.php
Code:
$query_pag_data = "SELECT msg_id,message from messages LIMIT $start, $per_page";
$result_pag_data = mysql_query($query_pag_data) or die('MySql Error' . mysql_error());
$msg = "";
while ($row = mysql_fetch_array($result_pag_data)) {
$htmlmsg=htmlentities($row['message']);
    $msg .= "<li></b> " . $htmlmsg . "</li>";
}
$msg = "<div class='data'><ul>" . $msg . "</ul></div>"; // Content for Data


/* --------------------------------------------- */
$query_pag_num = "SELECT COUNT(*) AS count FROM messages";
$result_pag_num = mysql_query($query_pag_num);
$row = mysql_fetch_array($result_pag_num);
$count = $row['count'];
$no_of_paginations = ceil($count / $per_page);

i ovo je radilo odlično.
E sad sam ja promenio konekciju
db_novo.php
Code:
<?php
$prefix = "";
try {
    $pdo = new PDO('mysql:host=localhost;dbname=messages', 'root', 'root');
} catch (PDOException $e){
    exit('Datebase error.');
}
?>

i javlja mi grešku jer ne uspevam da prepravim load_data.php
load_data_novo.php
Code:
$query = $pdo->prepare("SELECT msg_id,message from messages LIMIT $start, $per_page");
$query->bindValue(1, $message);
$msg = "";
while ($row = mysql_fetch_array($result_pag_data)) {
$htmlmsg=htmlentities($row['message']);
    $msg .= "<li></b> " . $htmlmsg . "</li>";
}
$msg = "<div class='data'><ul>" . $msg . "</ul></div>"; // Podaci


/* --------------------------------------------- */
$query = $pdo->prepare("SELECT COUNT(*) AS count FROM messages");
$query->bindValue(1, $row);
$count = $row['count'];
$no_of_paginations = ceil($count / $per_page);


Verovatno da u load_data_novo.php ništa nije tačno pa ako može neko da mi kaže šta da uradim...

[Ovu poruku je menjao -Godfather- dana 03.07.2013. u 21:12 GMT+1]
 
Odgovor na temu

pajaja
Beograd

Administrator
Član broj: 41598
Poruke: 3430
2001:470:1f0b:1af2:8815:13dc..

Jabber: pajaja@elitesecurity.org
ICQ: 253317269


+144 Profil

icon Re: Izmena konekcije i paginacija03.07.2013. u 16:35 - pre 131 meseci
Gde ti se izvrsava taj prepared statement?
Najbolje je da procitas manual i pogledas primere, bice ti sve jasno.
xxx
mali mali mali kamičak...nebo plave boje.
In Memoriam: Madzone Zeka(15.09.2005-16.09.2005)
 
Odgovor na temu

Mladjox
Web Developer
Banja Luka

Član broj: 226253
Poruke: 35



+3 Profil

icon Re: Izmena konekcije i paginacija03.07.2013. u 16:59 - pre 131 meseci
PDO i mysql_fetch_array, zanimljivo O.o
 
Odgovor na temu

-Godfather-
Bez posla
Nema

Član broj: 313147
Poruke: 62



Profil

icon Re: Izmena konekcije i paginacija03.07.2013. u 18:48 - pre 131 meseci
Citao sam al nisam uspio srediti...Daleko je to od zanimljivog, rekoh da nista nije tačno jer ne umijem sve napisati kao PDO
 
Odgovor na temu

Mladjox
Web Developer
Banja Luka

Član broj: 226253
Poruke: 35



+3 Profil

icon Re: Izmena konekcije i paginacija03.07.2013. u 19:02 - pre 131 meseci
Citat:
-Godfather-: Citao sam al nisam uspio srediti...Daleko je to od zanimljivog, rekoh da nista nije tačno jer ne umijem sve napisati kao PDO


Da si samo 5 min proveo na linku koji je postavio pajaja znao bi o cemu se radi, niko od nas se nije rodio naucen, nadji sam gdje ti je greska i ispravi je, sto se vise budes trudio vise ces znati :)

I evo ti jos mala pomoc

http://net.tutsplus.com/tutori...-phps-pdo-for-database-access/
 
Odgovor na temu

-Godfather-
Bez posla
Nema

Član broj: 313147
Poruke: 62



Profil

icon Re: Izmena konekcije i paginacija03.07.2013. u 19:17 - pre 131 meseci
Slab sam sa PHP-om treba mi samo ovo za paginaciju zato i trazim pomoc...al lakse je drzati nekom predavanje nego mu pomoci...
 
Odgovor na temu

pajaja
Beograd

Administrator
Član broj: 41598
Poruke: 3430
2001:470:1f0b:1af2:a19b:2f03..

Jabber: pajaja@elitesecurity.org
ICQ: 253317269


+144 Profil

icon Re: Izmena konekcije i paginacija03.07.2013. u 19:24 - pre 131 meseci
Citat:
Citao sam al nisam uspio srediti...Daleko je to od zanimljivog, rekoh da nista nije tačno jer ne umijem sve napisati kao PDO

Ovo su elementarne stvari koje su objasnjene u manualu, dao sam ti link na kome postoje primeri i dao sam ti hint da nemas nigde izvrsavanje prepared statement-a. Da si procitao prvu recenicu sa linka video bi da u njoj pise:
Citat:
Prepares an SQL statement to be executed by the PDOStatement::execute() method.

Ti ne pozivas nigde u svom kodu execute metod.

Da si pogledao primere za PDOStatement::execute() video bi ovako nesto na pocetku:
Code (php):

<?php
/* Execute a prepared statement by binding PHP variables */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < :calories AND colour = :colour'
);
$sth->bindParam(':calories', $calories, PDO::PARAM_INT);
$sth->bindParam(':colour', $colour, PDO::PARAM_STR, 12);
$sth->execute();
?>
 

Na osnovu njega mozes zakljuciti kako se zadaju parametri u prepared statementu (:calories, :colour), kako se vezuju vrednosti za te parametre (bindParam) i na kraju kako se izvrsava prepared statement (execute). Sada bi trebalo da znas kako da prepravis ove dve linije
Code (php):
$query_pag_data = "SELECT msg_id,message from messages LIMIT $start, $per_page";
$result_pag_data = mysql_query($query_pag_data) or die('MySql Error' . mysql_error());

tako da koristis PDO po ugledu na primer iznad. Skoro je identicna stvar. Nakon toga mozes da pogledas i ostale primere da bi video kako se uzimaju rezultati toga sto si uradio i da pitas ako ti nesto nije jasno.
xxx
mali mali mali kamičak...nebo plave boje.
In Memoriam: Madzone Zeka(15.09.2005-16.09.2005)
 
Odgovor na temu

-Godfather-
Bez posla
Nema

Član broj: 313147
Poruke: 62



Profil

icon Re: Izmena konekcije i paginacija03.07.2013. u 21:16 - pre 131 meseci
Nije mi baš najjasnije ovo oko bindParam al evo kako to kod mene izgleda
Code:
$query = $pdo->prepare("SELECT msg_id,message from messages LIMIT $start, $per_page");
$query->bindParam(1, $msg_id, PDO::PARAM_INT);
$query->bindParam(2, $message, PDO::PARAM_INT);
$query->execute();
$msg = "";
while ($row = $query->fetch(PDO::FETCH_ASSOC)) {
$htmlmsg=htmlentities($row['message']);
    $msg .= "<li></b> " . $htmlmsg . "</li>";
}
$msg = "<div class='data'><ul>" . $msg . "</ul></div>"; // Podaci

/* --------------------------------------------- */
$query1 = $pdo->prepare("SELECT COUNT(*) AS count FROM messages");
$query1->execute();
$count = $query1->rowCount();
$no_of_paginations = ceil($count / $per_page);

Jel bar nešto tačno?
 
Odgovor na temu

Tpojka
Ratio, Logic

Član broj: 60114
Poruke: 209

ICQ: 491318095


+33 Profil

icon Re: Izmena konekcije i paginacija03.07.2013. u 21:47 - pre 131 meseci
Ne treba da bind-uješ ono što tražiš iz baze već vrijednosti (ili parametre, zavisno od zahtjeva) potrebne query-ju.
Tako da:
Code:

$query = $pdo->prepare("SELECT msg_id,message from messages LIMIT ?, ?");
$query->bindValue(1, $start, PDO::PARAM_INT);
$query->bindValue(2, $per_page, PDO::PARAM_INT);
$query->execute();
$msg = "";
while ($row = $query->fetch(PDO::FETCH_ASSOC)) {
$htmlmsg=htmlentities($row['message']);
    $msg .= "<li></b> " . $htmlmsg . "</li>";
}
$msg = "<div class='data'><ul>" . $msg . "</ul></div>"; // Podaci

/* --------------------------------------------- */
$query1 = $pdo->prepare("SELECT COUNT(*) AS count FROM messages");
$query1->execute();
$count = $query1->rowCount();
$no_of_paginations = ceil($count / $per_page);

S tim da se moraju znati vrijednosti $start i $per_page prije prvog query-ja.
Drugi dio pretpostavljam da radi.

p.s.
[off]Kako koristite php code highlight?[/off]
-A Tpojke su Đuro - šta?
-Osnovne jedinice diverzantskih grupa!
 
Odgovor na temu

-Godfather-
Bez posla
Nema

Član broj: 313147
Poruke: 62



Profil

icon Re: Izmena konekcije i paginacija03.07.2013. u 22:05 - pre 131 meseci
Nisam ni ja siguran za drugi deo, cini mi se da ne radi....Ne razumem pitanje za korišćenje php code highlight?

[Ovu poruku je menjao -Godfather- dana 03.07.2013. u 23:20 GMT+1]
 
Odgovor na temu

pajaja
Beograd

Administrator
Član broj: 41598
Poruke: 3430
109.122.97.*

Jabber: pajaja@elitesecurity.org
ICQ: 253317269


+144 Profil

icon Re: Izmena konekcije i paginacija04.07.2013. u 00:01 - pre 131 meseci
Citat:
Kako koristite php code highlight?

[code:php]
xxx
mali mali mali kamičak...nebo plave boje.
In Memoriam: Madzone Zeka(15.09.2005-16.09.2005)
 
Odgovor na temu

-Godfather-
Bez posla
Nema

Član broj: 313147
Poruke: 62



Profil

icon Re: Izmena konekcije i paginacija04.07.2013. u 07:46 - pre 131 meseci
Ovaj drugi deo izgleda da nije u redu, samo što ne znam gde grešim. Probao sam i
Code:
$query1 = $pdo->prepare("SELECT COUNT(*) AS `brojac` FROM messages");
$query1->execute();
$row = $query1->fetchAll(PDO::FETCH_ASSOC);
$brojac = count($row);
$no_of_paginations = ceil($brojac / $per_page);
 
Odgovor na temu

pajaja
Beograd

Administrator
Član broj: 41598
Poruke: 3430
..f0b:1af2:5d6c:49b1:11e1:bf4b

Jabber: pajaja@elitesecurity.org
ICQ: 253317269


+144 Profil

icon Re: Izmena konekcije i paginacija04.07.2013. u 14:46 - pre 131 meseci
Najbolje je da posle $row = $query1->fetchAll(PDO::FETCH_ASSOC); uradis var_dump($row) i da vidis kako izgleda ta promenljiva.
U prvom primeru:
Code (php):
$query1 = $pdo->prepare("SELECT COUNT(*) AS count FROM messages");
$query1->execute();
$count = $query1->rowCount();

brojis broj redova koji ce za tvoj query uvek biti jedan. Ne bi trebalo da brojis broj redova vec da iskoristis vrednost koju dobijes kao rezultat query-ja. Isto vazi i za drugi primer:
Code (php):

$query1 = $pdo->prepare("SELECT COUNT(*) AS `brojac` FROM messages");
$query1->execute();
$row = $query1->fetchAll(PDO::FETCH_ASSOC);
$brojac = count($row);
 

Ovde ce ti $row biti asocijativni niz opet sa samo jednim elementom pa ce i $brojac uvek imati vrednost 1. Vrednost koju trazis mozes najlakse videti tako sto ces da uradis var_dump($row) i pogledas strukturu promenjlive. Vrednost koju trazis ovde ce izgledati recimo $row[0]['brojac'] - 0 kao prvi row (zato sto si iskoristio fetchAll() metod) i 'brojac' kao promenljiva ciju vrednost uzimas (zato sto si iskoristio PDO::FETCH_ASSOC).
xxx
mali mali mali kamičak...nebo plave boje.
In Memoriam: Madzone Zeka(15.09.2005-16.09.2005)
 
Odgovor na temu

-Godfather-
Bez posla
Nema

Član broj: 313147
Poruke: 62



Profil

icon Re: Izmena konekcije i paginacija04.07.2013. u 16:08 - pre 131 meseci
U pravu si da uvijek ima vrednost 1, al ja se ubih i ne mogu da napravim da mi daje broj redova
Da li može nesto kao što ti reče da iskoristim prvi query
Code:
$count = $query->rowCount();
$no_of_paginations = ceil($count / $per_page);




[Ovu poruku je menjao -Godfather- dana 04.07.2013. u 17:20 GMT+1]
 
Odgovor na temu

pajaja
Beograd

Administrator
Član broj: 41598
Poruke: 3430
..f0b:1af2:5d6c:49b1:11e1:bf4b

Jabber: pajaja@elitesecurity.org
ICQ: 253317269


+144 Profil

icon Re: Izmena konekcije i paginacija04.07.2013. u 17:47 - pre 131 meseci
Gresis u samoj logici ne u php-u. Uzimas broj redova query-ja kojim zahtevas broj unosa u tabeli. COUNT(*) ce uvek imati jedan red i tebi treba ta vrednost a ne broj redova, to je vec izracunato. Dacu ti primer:
Code:

mysql> select count(*) as brojac from ip2c;
+--------+
| brojac |
+--------+
| 108257 |
+--------+
1 row in set (0.01 sec)



Query je isti kao tvoj, i kao sto vidis broj redova ovog query-ja je 1 iako u tabeli postoji 108257 unosa. Da si koristio select * from messages; onda bi uzimao broj redova, ovako uzimas tu vrednost i dodeljujes je promenljivoj $count.
xxx
mali mali mali kamičak...nebo plave boje.
In Memoriam: Madzone Zeka(15.09.2005-16.09.2005)
 
Odgovor na temu

-Godfather-
Bez posla
Nema

Član broj: 313147
Poruke: 62



Profil

icon Re: Izmena konekcije i paginacija04.07.2013. u 19:47 - pre 131 meseci
Probao sam sve sto sam nasao na netu al ne ide, ako moze napisi mi ta dva reda...
 
Odgovor na temu

pajaja
Beograd

Administrator
Član broj: 41598
Poruke: 3430
..f0b:1af2:5d6c:49b1:11e1:bf4b

Jabber: pajaja@elitesecurity.org
ICQ: 253317269


+144 Profil

icon Re: Izmena konekcije i paginacija04.07.2013. u 20:05 - pre 131 meseci
Ne znam kakve si primere trazio po internetu ali ja sam ti vec napisao u kojoj liniji ti je greska i objasnio kako da ispravis.
Code (php):

$count = $row[0]['brojac'];
 


xxx
mali mali mali kamičak...nebo plave boje.
In Memoriam: Madzone Zeka(15.09.2005-16.09.2005)
 
Odgovor na temu

-Godfather-
Bez posla
Nema

Član broj: 313147
Poruke: 62



Profil

icon Re: Izmena konekcije i paginacija04.07.2013. u 20:34 - pre 131 meseci
Vidim da se trudis da bih naucio, a takodje vidim da mi to slabo ide. Nisam programer samo sam hteo da promenim nesto na sajtu...i pored svih tvojih uputstava opet nisam uspeo
Da li celi kod koji treba da mi izracuna broj redova izgleda
Code (php):
$query1 = $pdo->prepare("SELECT COUNT(*) AS `brojac` FROM messages");
$query1->execute();
$row = $query1->fetchAll(PDO::FETCH_ASSOC);
$brojac = count($row);
$count = $row[0]['brojac'];

mada ne verujem...
 
Odgovor na temu

pajaja
Beograd

Administrator
Član broj: 41598
Poruke: 3430
..f0b:1af2:5d6c:49b1:11e1:bf4b

Jabber: pajaja@elitesecurity.org
ICQ: 253317269


+144 Profil

icon Re: Izmena konekcije i paginacija04.07.2013. u 21:20 - pre 131 meseci
Pa izgleda da jesi uspeo, samo sto imas liniju koda viska ($brojac = count($row);) koja ne bi trebalo da utice na funkcionalnost osim ako ne koristis posle promenljivu $brojac umesto $count. Uglavnom ovo bi trebalo da radi:
Code (php):

$query1 = $pdo->prepare("SELECT COUNT(*) AS `brojac` FROM messages");
$query1->execute();
$row = $query1->fetchAll(PDO::FETCH_ASSOC);
$count = $row[0]['brojac'];
$no_of_paginations = ceil($count / $per_page);
 

Inace ovde broj redova dobijas od baze, ne racunas ti u kodu. Vrednost koju dobijes od SQL query-ja predstavlja broj poruka koje postoje u toj tabeli u bazi.
xxx
mali mali mali kamičak...nebo plave boje.
In Memoriam: Madzone Zeka(15.09.2005-16.09.2005)
 
Odgovor na temu

[es] :: PHP :: Izmena konekcije i paginacija

[ Pregleda: 2937 | Odgovora: 18 ] > FB > Twit

Postavi temu Odgovori

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