Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: rozbicie zmiennej
Forum PHP.pl > Forum > PHP
peterlan
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]."");
viking
WHERE id IN (1,2,3)
peterlan
super, a jak wypisac wszystkie id z tablicy?

tak mam jeszcze problem
  1. WHERE id IN (".$tablica[1].",".$tablica[2].")");
nospor
WHERE id IN (".implode(',',$tablica).")");
peterlan
fest smile.gif dzieki za pomoc
redeemer
  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)
peterlan
jeszcze jedno pytanie,

a jak obliczyc ilosc numerow?

obecnie gdy wpisze

  1. echo count($tablica);


to mam:
123

a chcialbym tylko
3
nospor
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
peterlan
chcialbym wysweitlac tylko ostatnia cyferke czyli w tym przypadku 3
nospor
substr()
KsaR
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.
nospor
Cytat
O ile ostatnia (1).
He? Mamy tam zwykłą liczbe, zadnych utf8 i takich tam.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.