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

Wynik Zapytania - Php

VPS Starter Arubacloud
0 głosów
588 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 (605,260 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 (605,260 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 (605,260 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 (605,260 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 (605,260 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ź 233 wizyt
pytanie zadane 2 maja 2021 w PHP przez Filipczak Gaduła (4,020 p.)
+1 głos
1 odpowiedź 285 wizyt
pytanie zadane 10 grudnia 2020 w PHP przez ariva6152 Użytkownik (570 p.)
0 głosów
2 odpowiedzi 389 wizyt
pytanie zadane 1 czerwca 2020 w PHP przez koterka Nowicjusz (210 p.)

93,025 zapytań

141,990 odpowiedzi

321,293 komentarzy

62,374 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

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...