• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wynik Zapytania - Php

Object Storage Arubacloud
0 głosów
430 wizyt
pytanie zadane 24 maja 2015 w PHP przez HaKIM Szeryf (87,590 p.)

Witam.

Mam o taki sobie kodzik:

            foreach($rower as $roweks)
            {
                $roweks->id_rower;
            }

Gdy daję przed $roweks->id_rower; echo wyświetlają mi się wszystkie id.

            foreach($rower as $roweks)
            {
                echo $roweks->id_rower;
            }

np. 1 6 7.

Ale, gdy dam po foreachu{} 

echo $roweks->id_rower;

Wyświetla mi się ostatnie wyszukane id, w tym przykładzie będzie to: 7.

Ma ktoś pomysł dlaczego tak jest oraz jak temu zaradzić?

1 odpowiedź

+4 głosów
odpowiedź 24 maja 2015 przez Comandeer Guru (601,590 p.)
wybrane 26 maja 2015 przez HaKIM
 
Najlepsza

Biblioteki do obsługi bazy danych zwracają typ resource. Jest on wyposażony w tak zwany iterator.

Co to iterator? A no to taki gościu, którego prosisz o udostępnienie czegoś z kolekcji. Wyobraź sobie, że ktoś ma kolekcję znaczków, a Ty chcesz ją oglądnąć. Podchodzisz zatem do jej właściciela i prosisz o znaczek. On daje Ci pierwszy. Oglądasz, odkładasz go na bok, po czym prosisz o kolejny. Zatem właściciel daje Ci drugi. Oglądasz, prosisz, dostajesz trzeci itd. itd. aż nie przeglądniesz całej kolecji. Ostatniego znaczka jednak zapomniałeś odłożyć na bok i poszedłeś z nim do domu.

W Twoim kodzie tą kolekcją jest $rower, prośbą foreach a konkretnym znaczkiem - $roweks. Właścicielem jest skrypt ;)

Jak to obejść? Korzystaj z tablicy i pętli - innego sposobu nie ma.

komentarz 24 maja 2015 przez HaKIM Szeryf (87,590 p.)

Rozumiem. Dzięki.

 

A wiesz może jak można wykorzystać pętle tutaj:

if($Id_jakies != [$roweks->id_rower] - Tutaj jakoś pętle zastosować)
{
echo 'lol';
}
komentarz 24 maja 2015 przez Comandeer Guru (601,590 p.)

Hm… Coś takiego?

$ids = [];

foreach($rower as $roweks)
{
	$ids[] = $roweks->id_rower
}

if(!in_array($id_jakies, $ids))
{
	echo 'lol';
}

 

komentarz 24 maja 2015 przez HaKIM Szeryf (87,590 p.)

Nie.

 

To ma działać tak:

Wyciągam wszystkie ID poprzez 

foreach($rower as $roweks)

{

    $roweks->id_rower;

}

A następnie chcę sprawdzić czy jedna wartość jest nie równa drugiej, czyli:

if($Id_jakies != $roweks->id_rower)
{
echo 'Y';
}else{
echo 'Z';
}

 

komentarz 24 maja 2015 przez Comandeer Guru (601,590 p.)
No to zrób to w pętli - po prostu
komentarz 24 maja 2015 przez HaKIM Szeryf (87,590 p.)

Nie można, po prostu. Gdyby się dało, nie pytałbym. : D

 

A PHP Error was encountered

Severity: Parsing Error

Message: syntax error, unexpected 'foreach' (T_FOREACH)

Filename: controllers/Temats.php

Line Number: 43

Backtrace:

if($IdKwiatka != foreach($all_id_flowers as $rowek){$rowek->id_flower})

 

komentarz 24 maja 2015 przez Comandeer Guru (601,590 p.)
A takie coś?
foreach($rower as $roweks)
{
	if($Id_jakies != $roweks->id_rower)
	{
	echo 'Y';
	}else{
	echo 'Z';
	}
}

 

komentarz 24 maja 2015 przez HaKIM Szeryf (87,590 p.)
Już Ci tłumaczę co chcę zrobić:

 

Jeżeli id w bazie nie będzie równe w temu w linku np:

http://www.krude.com/zobacz/temat/2

To wywala błąd.

2 to id.

Ten if sprawdza, czy takie id jest w bazie, jak jest pokazuje treść, jesli nie, wywala error 404.
komentarz 24 maja 2015 przez Comandeer Guru (601,590 p.)

To czemu nie zrobisz coś typu

SELECT * FROM costam WHERE id = idZURI

Wiadomo, że jak nic nie zwróci, to nie ma takiego artykułu ;)

komentarz 24 maja 2015 przez HaKIM Szeryf (87,590 p.)

Poradziłem sobie jakoś. 

if($IdKwiatka > $rowek->id_flower)

Podobne pytania

0 głosów
1 odpowiedź 205 wizyt
pytanie zadane 2 maja 2021 w PHP przez Filipczak Gaduła (4,020 p.)
+1 głos
1 odpowiedź 265 wizyt
pytanie zadane 10 grudnia 2020 w PHP przez ariva6152 Użytkownik (570 p.)
0 głosów
2 odpowiedzi 336 wizyt
pytanie zadane 1 czerwca 2020 w PHP przez koterka Nowicjusz (210 p.)

92,579 zapytań

141,432 odpowiedzi

319,664 komentarzy

61,964 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...