Začetniško mysql vprašanje - mysqli_fetch_array()
 
G-force 11. jul 2010 09:30:18 Pridružen od:
31. mar 2008
828 objav
516 60 3
#1

Iz baze poberem en podatek. Ker je samo en, vem, da obstaja neka "finta", da ti ni potrebno uporabiti mysqlifetcharray() ampak na hitro daš to vrednost v spremenljivko vendar sem pozabil kako.



Torej, zanima me, kako bi krajše zapisal spodnjo kodo, če vem, da je v $r2 samo ena vrstica oziroma samo en podatek...

while($tip = mysqlifetcharray($r2, MYSQLI_NUM)) {

$tip = $tip[0];

}



Prav tako me zanima zakaj mi vrednosti spremenljivke $tip izven while zanke ne izpiše (možno jo je uporabiti le v zanki while jaz pa bi jo rad uporabil tudi izven)?


všeč(0) ni všeč(0) spam(0)
 
G-force 11. jul 2010 09:34:11 Pridružen od:
31. mar 2008
828 objav
516 60 3
#2

(Vini, da ti malo preveri kodo foruma, ker se mi kar pogosto zgodi, da urejam sporočilo in potem mi kar dvojnega pošlje in ga moram še enkrat popravljati)


všeč(0) ni všeč(0) spam(0)
 
carli 11. jul 2010 09:36:16 Pridružen od:
5. avg 2008
1258 objav
583 54 17
#3

Ne uporabiš while, in namesto mysqlfetcharray() uporabiš mysqlfetchassoc().


$tip = mysql_fetch_assoc($r2, MYSQLI_NUM);
$tip = $tip['neko_polje_v_bazi'];
všeč(1) ni všeč(0) spam(0)
 
G-force 11. jul 2010 12:01:16 Pridružen od:
31. mar 2008
828 objav
516 60 3
#4

Tole, da uporabim mysqlfetchassoc() namesto mysqlfetcharray() ne bo ravno držalo, saj je funkcija mysqlfetchassoc() le krajši, identični zapis mysqlfetcharray($r, MYSQLIASSOC) sam pa MYSQLIASSOC, MYSQLI_BOTH ne uporabljam, ker sta pač počasnejša ter porabita več memory. Čeprav strani keširam, sem se tako pač navadil. :-) Drugače pa seveda, ruknem stran while pa je. :/


všeč(0) ni všeč(0) spam(0)
 
fatg 11. jul 2010 12:30:11 Pridružen od:
28. jan 2008
94 objav
73 2 0
#5

PDOStatement ima funkcijo fetchColumn(0), ki v praksi izgleda takole:


$podatek = $db->query('select something from table where id = 3')->fetchColumn(0);

Zakaj še uporabljate mysql_* funkcije, mi kdo pove svoje razloge?


všeč(0) ni všeč(0) spam(0)
 
carli 11. jul 2010 12:34:39 Pridružen od:
5. avg 2008
1258 objav
583 54 17
#6

Mislim da bo bolje če bolj paziš kak imaš sam query ... dvomim da se ti pri enem zapisu karkoli pozna kako to izpišeš :D



@fatq se strinjam :D


všeč(0) ni všeč(0) spam(0)
 
halo 11. jul 2010 13:14:42 Pridružen od:
16. maj 2010
92 objav
17 3 1
#7

fatg:

Zakaj še uporabljate mysql_* funkcije, mi kdo pove svoje razloge?




Lahko na kratko opišeš kakšne so prednosti PDOStatement? Jaz uporabljam kar mysql_* funkcije, ker z njimi delam že od začetka in so pri enostavnih primerih zame dovolj.


všeč(0) ni všeč(0) spam(0)
 
G-force 11. jul 2010 13:39:20 Pridružen od:
31. mar 2008
828 objav
516 60 3
#8

V drugem sporočilu sem kopiral od carli in sem pozabil dodati "i". Sam ne uporabljam mysql_ ampak mysqli_ ... Za 5PDOStatement pa prvič slišim... sem še bolj začetnik


všeč(0) ni všeč(0) spam(0)
 
fatg 11. jul 2010 14:06:54 Pridružen od:
28. jan 2008
94 objav
73 2 0
#9

@halo



omogoča prepared statements (varnost in hitrost++), objekten pristop, doda exceptione, posledica je krajša in varnejša koda. Poenostavi delanje z LOB (large object) polji in ima še razne sladkorčke, kot je bindParam.



Kot extra dodatek je še abstrakcija od baze, torej se za menjavo baze (na obstoječem ali novem projektu) ne rabiš učiti nič novega, samo queryje prilagodiš.


všeč(2) ni všeč(0) spam(0)
 
krifa 13. jul 2010 22:41:32 Pridružen od:
9. feb 2010
402 objav
401 54 6
#10

se kar strinjam s fatg-jem.

@G-force mislim, da je funkcija, ki jo iščeš mysqlifetchrow( object result)


všeč(0) ni všeč(0) spam(0)
Prevajanje - prevajalska agencija pravo-prevajanje.si
Awesome jobs for awesome people: Dlabs jobs
 
 

🔒 Za odgovor na to temo se moraš prijaviti.

Prijavi se