Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> rozbicie zmiennej
peterlan
post 29.07.2015, 10:11:50
Post #1





Grupa: Zarejestrowani
Postów: 131
Pomógł: 0
Dołączył: 25.10.2012

Ostrzeżenie: (0%)
-----


Witam,

mam taki problem...

chce przygotować listę 'ala schowek dla klientów,

numery id znajduja sie w jednej zmiennej, zrobilem cos takiego:

  1. <?php
  2. foreach ($_COOKIE as $artikelnummer){
  3. if( (strlen($artikelnummer)>=4) && is_numeric($artikelnummer) ){
  4. echo $artikelnummer."<br>";
  5. }
  6. }
  7. ?>


i chcialbym by te id byly uwzgledione tak:

  1. $result=mysql_query("SELECT id, title, preis, referenz, geschlecht, gallery FROM uhren WHERE id=".$artikelnummer."");



Czy ktoś mi podpowie?

ogolnie, jesli ktos moglby podpowiedziec, jak stowrzyc taka liste-schowek

  1. setcookie($number,$value,time() + (86400 * 7));


i chodzi teraz jak zczytac numery $value.


Moze ma ktos jakies gotowe rozwiazania, badz przyklady?

badz mam tak przygotowana liste:

  1.  
  2. foreach ($_COOKIE as $artikelnummer){
  3. if( (strlen($artikelnummer)>=4) && is_numeric($artikelnummer) ){
  4. $temp = explode(",", $artikelnummer);
  5. foreach($temp as $key => $value)
  6. $tablica[$i++] = trim($temp[$key]);
  7. echo '<pre>';
  8. print_r($tablica[1]);
  9. echo '</pre>';
  10. }
  11. }
  12.  



ale jak teraz uwzglednic wszystkie id?

  1. $result=mysql_query("SELECT id, title, preis, referenz, geschlecht, gallery FROM uhren WHERE id=".$tablica[1]."");
Go to the top of the page
+Quote Post
viking
post 29.07.2015, 10:52:31
Post #2





Grupa: Zarejestrowani
Postów: 6 378
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


WHERE id IN (1,2,3)


--------------------
Go to the top of the page
+Quote Post
peterlan
post 29.07.2015, 11:04:33
Post #3





Grupa: Zarejestrowani
Postów: 131
Pomógł: 0
Dołączył: 25.10.2012

Ostrzeżenie: (0%)
-----


super, a jak wypisac wszystkie id z tablicy?

tak mam jeszcze problem
  1. WHERE id IN (".$tablica[1].",".$tablica[2].")");
Go to the top of the page
+Quote Post
nospor
post 29.07.2015, 11:07:28
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




WHERE id IN (".implode(',',$tablica).")");


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
peterlan
post 29.07.2015, 12:44:03
Post #5





Grupa: Zarejestrowani
Postów: 131
Pomógł: 0
Dołączył: 25.10.2012

Ostrzeżenie: (0%)
-----


fest smile.gif dzieki za pomoc
Go to the top of the page
+Quote Post
redeemer
post 29.07.2015, 12:51:27
Post #6





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

Ostrzeżenie: (0%)
-----


  1. ...
  2. if( (strlen($artikelnummer)>=4) && is_numeric($artikelnummer) ){
  3. $temp = explode(",", $artikelnummer);
Sprawdzasz czy zmienna jest "numeric" i jeśli tak to chcesz ją rozbijać po "," ?

  1. $s = '1,2,3';
Kod
bool(false)


--------------------
Go to the top of the page
+Quote Post
peterlan
post 29.07.2015, 13:10:10
Post #7





Grupa: Zarejestrowani
Postów: 131
Pomógł: 0
Dołączył: 25.10.2012

Ostrzeżenie: (0%)
-----


jeszcze jedno pytanie,

a jak obliczyc ilosc numerow?

obecnie gdy wpisze

  1. echo count($tablica);


to mam:
123

a chcialbym tylko
3
Go to the top of the page
+Quote Post
nospor
post 29.07.2015, 13:11:56
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Sie zdecyduj.... chcesz obliczyc czy ograniczyc?
Bo jak masz tam 123 numery w tej tablicy, to logiczne ze count zwroci ci 123.
A jak chcesz ograniczyc tylko do 3 to zupelnie inna bajka.

Wiec sie zdecyduj: obliczyc czy ograniczyc


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
peterlan
post 29.07.2015, 13:14:43
Post #9





Grupa: Zarejestrowani
Postów: 131
Pomógł: 0
Dołączył: 25.10.2012

Ostrzeżenie: (0%)
-----


chcialbym wysweitlac tylko ostatnia cyferke czyli w tym przypadku 3
Go to the top of the page
+Quote Post
nospor
post 29.07.2015, 13:19:38
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




substr()


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
KsaR
post 29.07.2015, 14:09:02
Post #11





Grupa: Zarejestrowani
Postów: 520
Pomógł: 102
Dołączył: 15.07.2014
Skąd: NULL

Ostrzeżenie: (0%)
-----


Cytat(nospor @ 29.07.2015, 14:19:38 ) *
substr()


O ile ostatnia (1).

  1. substr($text,-1);
  2. // Lub
  3. $text[mb_strlen($text,'UTF-8')-1];


Jednak gdyby więcej, to lepiej chyba:

  1. $t=explode(',',$text); # rodzielenie stringu po "," do oddzielnych elementow tablicy.
  2. end($t); # ostatnie cyfry.


---
I jeszcze offtopując:

  1. if( (strlen($artikelnummer)>=4) && is_numeric($artikelnummer) ){

Co prawda redeemer wskazał wyżej blad,
Ale gdyby drugi warunek byl poprawny.
To zamiast "(warunek) &&" lepiej zebys uzyl "warunek and" na jedno wyjdzie jak się nie myle.

A poza tym mozna to jeszcze inaczej zastapic:
  1. if (isset($artikelnummer[3])){

Jako ze do stringów mozna sie odwolywac jak do tablic, śmiało możesz tak zastąpić tamta linijke tongue.gif.
Kod powyzej sprawdzi czy istnieje 4 litera w stringu. Jesli cos tam jest(nawet spacja) to >=.

~ dziś mam głupie rozkminy biggrin.gif.

Ten post edytował Ksar 29.07.2015, 14:32:32


--------------------
Go to the top of the page
+Quote Post
nospor
post 29.07.2015, 14:38:31
Post #12





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
O ile ostatnia (1).
He? Mamy tam zwykłą liczbe, zadnych utf8 i takich tam.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.06.2025 - 13:27