• 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
407 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 (599,730 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 (599,730 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 (599,730 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 (599,730 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 (599,730 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ź 199 wizyt
pytanie zadane 2 maja 2021 w PHP przez Filipczak Gaduła (4,020 p.)
+1 głos
1 odpowiedź 261 wizyt
pytanie zadane 10 grudnia 2020 w PHP przez ariva6152 Użytkownik (570 p.)
0 głosów
2 odpowiedzi 329 wizyt
pytanie zadane 1 czerwca 2020 w PHP przez koterka Nowicjusz (210 p.)

92,452 zapytań

141,262 odpowiedzi

319,080 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...