Skocz do zawartości

Łączenie zmiennych


Mar

Rekomendowane odpowiedzi

Witam,

Hmm, mam banalny problem. Tz. mam coś takiego:

if (empty($_POST['seo'])) {
	$seo = FALSE;
	$suma .= '';
} else {
	$seo = $_POST['seo'];
	$suma .= 'seo = "T"';
}

.. i tak dla każdej zmiennej, i teraz takie pytanie, wszysko łaczę w jedną zminną, ale jak je oddzielać? Tz. chcę wstawić "AND" ale tylko wtedy gdy następna zmienna ma wartość, tak by postało cos takiego:

$suma = $seo AND $ free itp.

a nie coś takiego: $suma = $seo AND lub $suma = $seo AND $free AND

Nie mam pojecia jak to sie nazywa, więc wyszukiwanie nic nie pomogło :D

Mar.

Polecam katalog SeoPark.pl, katalog AK47 (5 lata w sieci) ...oraz Wirtualne-miasta.eu
"Dopóki nie skorzystałem z Internetu, nie wiedziałem, że na świecie jest tylu idiotów" - Stanisław Lem

Odnośnik do komentarza
Udostępnij na innych stronach

Nie mam pojecia jak to sie nazywa,

https://www.leon.w-wa.pl/texts/kurs/operatory.php może Ci chodzi o to ?

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Niezupełnie, może wytłumacze to tak, wyświetal wyrazy, jeden za drugim, i jeśli jest jeden wyraz to nic na końcu nie będzie, jeśli są dwa to międzynimi przecinek na końcu nic itd.

Mar.

Polecam katalog SeoPark.pl, katalog AK47 (5 lata w sieci) ...oraz Wirtualne-miasta.eu
"Dopóki nie skorzystałem z Internetu, nie wiedziałem, że na świecie jest tylu idiotów" - Stanisław Lem

Odnośnik do komentarza
Udostępnij na innych stronach

to międzynimi przecinek na końcu nic itd.

Mar.

To pisz, ze chodzi o takie laczenie a nie operatory logiczne :D Zaraz Ci napisze jak to zrobic

edyta___

if(isset($_POST[zmienna1])) $zmienna_zlaczona = $_POST[zmienna1];
if(isset($_POST[zmienna2])) $zmienna_zlaczona .= '+'.$_POST[zmienna2];
if(isset($_POST[zmienna3])) $zmienna_zlaczona .= '+'.$_POST[zmienna3];
// ... ITD

Lub za pomoca tablicy i funkcji implode

if(isset($_POST[zmienna1])) $zmienna_zlaczona[] = $_POST[zmienna1];
if(isset($_POST[zmienna2])) $zmienna_zlaczona[] = $_POST[zmienna2];
if(isset($_POST[zmienna3])) $zmienna_zlaczona[] = $_POST[zmienna3];

$comma_separated = implode(",", $zmienna_zlaczona);

echo $comma_separated; 

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

No przeciem pisał...

Ale pojawia sie teoretycznie problem, bo w Twoim przykładzie, działa to OK, jeśli będzie 1 lub 1 + 2, ale jak bedzie samo 2 to wyjdzie +2, bo ja mam coś takiego jak podałem w pierwszym poście, i tak dla kilku opcji, i niekoniecznie muszą być one wszystkie, np. moze byc tylko ostatnia, i tą zmienna łączoną wrzucam w zapytanie: ... FROM katalogi WHERE ' . $suma . ' ORDER BY ...

Mar.

Polecam katalog SeoPark.pl, katalog AK47 (5 lata w sieci) ...oraz Wirtualne-miasta.eu
"Dopóki nie skorzystałem z Internetu, nie wiedziałem, że na świecie jest tylu idiotów" - Stanisław Lem

Odnośnik do komentarza
Udostępnij na innych stronach

, np. moze byc tylko ostatnia, i tą zmienna łączoną wrzucam w zapytanie: ... FROM katalogi WHERE ' . $suma . ' ORDER BY ...r.
AAAA chodzi Ci o dynamiczne przygotowanie zapytania do bazy... To jeszcze inaczej poczekaj :D

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Mam, ale nie wiem czy to Takie optymalne :D

if (empty($_POST['seo'])) {
	$seo = FALSE;
	$suma .= '';
} else {
	$seo = $_POST['seo'];
	$suma .= 'seo = "T"';
}

if(isset($_POST[seo])) $zmienna_zlaczona[] = $_POST[seo];

if (empty($_POST['free'])) {
	$seo = FALSE;
	$suma .= '';
} else {
	$free = $_POST['free'];
	$suma .= 'free = "T"';
}

if(isset($_POST[free])) $zmienna_zlaczona[] = $_POST[free];

if (empty($_POST['zwrot'])) {
	$zwrot = FALSE;
	$suma .= '';
} else {
	$zwrot = $_POST['zwrot'];
	$suma .= 'zwrot = "T"';
}

if(isset($_POST[zwrot])) $zmienna_zlaczona[] = $_POST[zwrot];

if (empty($_POST['moder'])) {
	$moder = FALSE;
	$suma .= '';
} else {
	$moder = $_POST['moder'];
	$suma .= 'moder = "T"';
}
if(isset($_POST[moder])) $zmienna_zlaczona[] = $_POST[moder];

$comma_separated = implode(" AND ", $zmienna_zlaczona);

echo 'zzzzz<h1>' . $comma_separated . '</h1>zzzzzzz';

Bo wrzucam wszystko do tablicy, a pózniej znów ją rozbijam...

Ale działa ;]

Mar.

Polecam katalog SeoPark.pl, katalog AK47 (5 lata w sieci) ...oraz Wirtualne-miasta.eu
"Dopóki nie skorzystałem z Internetu, nie wiedziałem, że na świecie jest tylu idiotów" - Stanisław Lem

Odnośnik do komentarza
Udostępnij na innych stronach

Mam, ale nie wiem czy to Takie optymalne :D

Teraz Ci gotowca nie podam bo nie mam zbyt czasu ale pokombinuj z przerobieniem tego kodu:

foreach($_POST AS $klucz => $wartosc)
{	
print''.$klucz.'=\'$_POST['.$klucz.']\', ';	
}
/// 2 kod
foreach ($_POST AS $klucz=>$wartosc)
{	
$licz++;
$WARUNKI.="AND  /// dopisz
if(count($_POST)!=$licz)$WARUNKI.=',';
}

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Dzięki, wielkie za pomoc, póki co zrobiłem tak i działa:

$seo = $_POST['seo'];
$free = $_POST['free'];
$zwrot = $_POST['zwrot'];
$moder = $_POST['moder'];
if(isset($_POST[seo])) $suma[] = 'seo="' . $seo .'"';
if(isset($_POST[free])) $suma[] = 'free="' . $free .'"';
if(isset($_POST[zwrot])) $suma[] = 'zwrot="' . $zwrot .'"';
if(isset($_POST[moder])) $suma[] = 'moder="' . $moder .'"';
$suma = implode(" AND ", $suma);

.. więc z kodem jadę dalej, najwazniejsze, że działa. Jak skąńcze całość, będę myśła nad optymalizacją.

Pozdrawiam,

Mar.

Polecam katalog SeoPark.pl, katalog AK47 (5 lata w sieci) ...oraz Wirtualne-miasta.eu
"Dopóki nie skorzystałem z Internetu, nie wiedziałem, że na świecie jest tylu idiotów" - Stanisław Lem

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności