Pereiti prie turinio

[PHP] Kaip sudaryti masyvą paėmus duomenis iš mysql ?


Rekomenduojami pranešimai

mysql_query("SELECT * FROM testas WHERE kazkas='kazkas'");

Daug eilučių randa ir man reikia jas visas sudėti į vieną masyvą. Kaip tai padaryti ?

P.S. Iškyla daug klausimų, nes niekad su masyvais nedirbęs :)

EDIT :

Radau :) mysql_fetch_row

Redagavo DeSigneR
Nuoroda į pranešimą
Dalintis kituose puslapiuose

$duom = mysql_query("SELECT * FROM testas WHERE kazkas='kazkas'");

$n = 0;
while ($duom = mysql_fetch_array($duom))
{
  $n++;
  $masyvas[n] = $q['name'];
// o jai daugiau surasinėsi duomenų tai daryk dvimatį masyvą
//$masyvas[n]['vardas'] = $q['name'];
//$masyvas[n]['pavarde'] = $q['surname'];
//. . . . .
}

 

O poto panaudoti:

 

echo "Pirmo darbuotojo vardas: ".$masyvas[1]['vardas'];
echo "Pirmo darbuotojo pavarde: ".$masyvas[1]['pavarde'];

echo "Antro darbuotojo vardas: ".$masyvas[2]['vardas'];
// .. . . . ..  ir taip toliau

 

Tikiuosi klaidos kokios neįvėliau, ką tik atsibudau. ^_^

Redagavo gidasss2
Nuoroda į pranešimą
Dalintis kituose puslapiuose

mysql_fetch_assoc() , mysql_fetch_row() , mysql_fetch_array() - yra labai panasios funkcijos, bet turi siokiu tokiu skirtumu.

 

Pvz:. jei selectini vardas, pavarde is DB lenteles. ir fetchini i masyva data

 

Naudojant mysql_fetch_row() - varda ir pavarde isgausi tik per skaitine reiksme: data[0], data[1]

 

Naudojant mysql_fetch_assoc() - varda ir pavarde isgausi tik per lenteles lauko reiksmes: data['vardas'], data['pavarde']

 

Naudojant mysql_fetch_array() - varda ir pavarde isgausi per lenteles lauko reiksmes ir/arba skaitines reiksmes priklauso koki papildoma parametra nurodysi sioje funkcijoje (MYSQL_ASSOC, MYSQL_NUM, MYSQL_BOTH)

 

 

o siaip kuria is ju naudosi, cia jau kaip tau patogiau bus :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Greitai parašiau atsidaręs Notepad ir netestavau, tai gali būti kokių smulkių klaidelių - jei taip, jas nesunkiai pats sutvarkysi.

 

Maždaug tokiu būdu aš dirbdavau su PHP SQL užklausomis:

 

 

<?php

// Užklausą geriausia turėti kaip kintamąjį, nes bus atvejų, kai programos eigoje užklausą norėsi papildyti (pvz., pridėti "ORDER BY ...")
$sql = "SELECT ...";
// Kodą, kuris su užklausa kreipiasi į duomenų bazę, geriausia turėti kaip funkciją, nes jį naudosi daug kartų, - kad kas kart nerašyti tų pačių eilučių
$list = get_list($sql);
// Visada verta pažiūrėti, ką gavai iš duomenų bazės (išspausdinti visą masyvo turinį į ekraną)
print_list($list);

// Jei nori pasinaudoti gautu masyvu, geriausia naudoti foreach ciklą
foreach ($list as $row) {
// Sakykime, duombazės lentelė turi laukelį "name"
echo $row['name'] . '<br>';
}

function get_list($sql) {
$rows = array();
// Bet kur, kur naudoji mysql_query() funkciją, pridėk " OR exit(mysql_error())" - tuomet, jei tavo užklausa bloga, tau išmes klaidą - priešingu atveju ilgai užtruks, kol suprasi, kas neveikia
$result = mysql_query($sql) OR exit(mysql_error());
while ($row = mysql_fetch_assoc($result)) {
	// Ši eilutė prie masyvo automatiškai prideda dar vieną įrašą
	$rows[] = $row;
}
return $rows;
}

function print_list($list) {
echo '<pre>';
print_r($list);
echo '</pre>';
}

?>

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Nors jo, gali ir su mysql_fetch_row daryti jai veikia. Aš savo metodą naudodavau, net nežinau kuris geriau, bet tikriausiai mysql_fetch_row :lol:

 

kiek esu susidures, mysql_fetch_row dirba leciau uz mysql_fetch_array, nes kazka esu pats susidures, kad su mysql_fetch_row dirbo letai, tai pakeitus i mysql_fetch_array, pasijuto skirtumas zymiai

Nuoroda į pranešimą
Dalintis kituose puslapiuose

kiek esu susidures, mysql_fetch_row dirba leciau uz mysql_fetch_array, nes kazka esu pats susidures, kad su mysql_fetch_row dirbo letai, tai pakeitus i mysql_fetch_array, pasijuto skirtumas zymiai

 

Nemanau kad gali būti didžiulis skirtumas, nebent duomenų kiekiai yra milžiniški. Paprasčiausiai procesai gal vienas greitesnis o kitas lėtesnis bet vistiek jie labai greiti. Mano nuomonė, nesidomėjau ir nebandžiau.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...