Autor Zpráva
Tomasekkkk
Profil *
Dobrý večer, známý je v nemocnici, tak se nemám kde jinde zeptat. S PHP se teprve učím, chtěl bych poprosit o radu, snažím se udělat jednu aplikaci na Facebooku, mám následující problém. Mám tento zápis:

$nacti_pohlavi = $facebook->api_client->users_getInfo($friends,'sex');


tento zápis mi vygeneruje všechny uživatele i s jejich pohlavim, kdy si je nactu napr. takto $nacti_pohlavi[0]['sex'], existuje prosím přes forearch nebo podobně udělat nějaký zápis, který by mi dle zadaných kritérií vysypal pouze uživatele kde sex = M ? Zkoušel jsem s forearch a nedařilo se mi, prosím tedy o radu, případně dotaz upřesním. Díky tom

Moderátor Alphard: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
Alphard
Profil
Při zpracovávání to můžete porovnávat a nehodící se přeskakovat.
if(neco) continue;

Jestli vám záleží na oddělení, tak můžete hodící se naházet do nějakého pole, ale může to být zbytečný mezikrok.
Tomasekkk
Profil *
No dekuji za informaci, podminky if apod. znam, ale spis si myslim, ze by se to melo pridavat nekde do forearch kde by se dana podminka mela objevit, ale bohuzel nevim jak zapsat forearch, nyni ho mam takto:


$friends = $facebook->api_client->friends_get();

$nacti_pohlavi = $facebook->api_client->users_getInfo($friends,'sex');

foreach ($friends as $friend) {

echo($friend);
}


jenže takto mi vypisuje všechny uživatele :-( $nacti_pohlavi umi vypsat vsechny uzivatele a tedy pouze jejich pohlavi :-(
Kcko
Profil
Alphard:
Při zpracovávání to můžete porovnávat a nehodící se přeskakovat.
>
1
>
if(neco) continue;
[/pre]

Tomasekkk:

foreach ($friends as $friend) {

if ($friend->pohlavi == 'M') continue;  // takto nejak

}



dej si print_r($friend) abys vedel jak je tam ten zaznam nacten a pak das akorat continue a tim preskocis nechtene zaznamy.
Tomasekkkk
Profil *
Super, to jsem potreboval, diky moc, vyzkousim a snad bude tedy problem vyresen ;o)
Tomasekkkk
Profil *
Jeste mne napadla vec, jak to udelat, aby to vypsalo nahodne nejakeho uzivatele ze seznamu? Myslim tim, ze kdyz dam pouze continue, vypise mi vsechny, kteri maji pohlavi M, ale co kdyz chci tedy vybrat jen jednoho? V MYSQL vim jak na to, ale takto foreach apod. to neni moje parketa :-(
Kcko
Profil
Pokud to muzes zaridit rovnou v MYSQL cili

ORDER BY RAND() LIMIT 1


tak to bude nejsnazsi.

Pokud ne tak zkus toto

$random_users = array();
foreach ($friends as $friend) {

if ($friend->pohlavi == 'M') 
{
  $random_users[] = $friend; // ulozis si jednotlivy cely zaznam / objekt nebo co to je do pole
}

}

// ted tim zamichas
shuffle($random_users);

// a vypises nahodneho
echo $random_users[0]->nickname; //  nebo echo $random_users[0]['nickname']; 

// debug
print_r($random_users[0]);

Tomasekkkk
Profil *
Tak jsem zkousel, bohuzel podminka if (pohlavi ...) je asi spatna, protoze mi to nenatahne zadneho, ktery ma stejne pohlavi :-( Neni v tom nejaky problem?
Majkl578
Profil
Co říká API:
sex - User-entered "Sex" profile file. This is a translated string, so the gender returned depends on the user's locale. This field may be blank.
Například v náhledu odpovědi je vidět "<sex>male</sex>", tedy pohlaví je "male" a ne "M".
Doporučil bych prvně si ty navrácené hodnoty prohlédnout a pak zvážit další postup při třídění.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: