Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] zmienna typu string jako wartosc warunku if
exodus.mc
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 23.11.2007

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


mamy takie cos
$a="$cos==1"

if ($a) ...


i mi zalezy aby if NIE sprawdzal wartosci $a ale aby wpisac w miejsce $a jej tekst... (generuje mi sie tresc if'a automatycznie, ale nie wiem jak go [sorka za takie wyrazenie] "zaincludowac" jako tresc warunku - aby warunek wyszedl
if ($cos==1)...    )

Dziekuje za kazda odp.

ps.
morduje sie z tym od wczoraj od 22.. i nie wiem (jestem poczatkujacym w php)

Ten post edytował exodus.mc 23.11.2007, 09:13:05
Go to the top of the page
+Quote Post
Cezar708
post
Post #2





Grupa: Zarejestrowani
Postów: 1 116
Pomógł: 119
Dołączył: 10.05.2005
Skąd: Poznań

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


Szczerze mówiąc dość ciekawe, generalnie możesz pokombinować z funkcją eval(), ale za wyniki nie odpowiadam, innym rozwiązaniem może być po prostu stworzenie za pomocą php krótkiego skryptu php i go zaincludowanie... (też może być do dość spora dziura w systemie)

Może wrzucisz nam kod, w którym chcesz tego użyć, być może jest inne... bezpieczniejsze i łatwiejsze wyjście z sytuacji?
Go to the top of the page
+Quote Post
exodus.mc
post
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 23.11.2007

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


ogolnie to wyglada tak, ze to ma byc w funkcji edytujacej dany wpis w tabeli.. Na poczatku sprawdza czy pola w formularzu edycyjnym sa puste. Jezeli sa to wype
nia je danymi z bazy 

Kod
<BR>if ($poz[0]=='' and $poz[1]=='' and $poz[2]=='' and $poz[3]=='' and $poz[4]=='' and $poz[5]=='') <BR>  {<BR>        for ($i = 1; $i < $_SESSION['cols']; $i++)<BR>                  {<BR>                      $poz[$i]=$row[$i];<BR>                    }<BR>  }<BR>

no i ja sobie zrobilem petelke ktora tworzy mi tresc if'a (tworze tablice z poszczegolnych elementow i ja join'uje... dzieki czemu otrzymuje dlugi string do if'a automatycznie...
Kod
<BR>for ($i=0;$i<$_SESSION['cols'];$i++)<BR>  {<BR>    $skladowa[$i]=" \$poz[$i]=='' ";<BR>  }<BR>  $polecenie=join("and",$skladowa);<BR>


i na koncu chce uzyc tego tak jak wyzej napisalem i nie wiem jak
Kod
if ($polecenie)...


Wiem ze moge zrobic walidacje w js... ale nie znam js i troche nie chce mi sie teraz w niego zaglebiac (jak tego nie rozwale to niestety bede musial napiasc cos co bedzie mi tworzylo dynamicznie kod js sprawdzajacy walidacje - ale to tak na marginesie)

Czekam na Wasze pomysly... bo mi sie skonczyly

ps
dziala mi to przy generacji zapytan do bazy.. myslalem ze w warunku tez pojdzie... a tu lipa.. jak by tu to zrobic... hmm smile.gif
Go to the top of the page
+Quote Post
Cezar708
post
Post #4





Grupa: Zarejestrowani
Postów: 1 116
Pomógł: 119
Dołączył: 10.05.2005
Skąd: Poznań

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


Używaj lepszego bbCode do pisania postów, będą bardziej czytelne i ludzie chętniej będą Ci odpowiadać

1. Być może, źle zrozumiałem, ale ten kod ma być wykonywany po stronie przeglądarki? Czyli jeśli pola są puste to pobieranie z bazy? Niestety tak się nie da.
2. Jeśli jednak jest to wykonywane po stronie PHP nie trzeba joinować i sprawdzać warunek, lepiej jest zrobić tak:

  1. <?php
  2. $ok = true;
  3. for ($i=0;$i<$_SESSION['cols'];$i++){
  4. if ( $poz[$i]=='' ){
  5. $ok = true;
  6. } else {
  7. $ok = false;
  8. break;
  9. }
  10. }
  11.  
  12. if ( $ok )... // ponieważ w $ok trzymasz warunek twojego sprawdzania
  13. ?>
Go to the top of the page
+Quote Post
exodus.mc
post
Post #5





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 23.11.2007

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


myslalem nad takim rozwiazaniem.. ale to jest tak ze przy pierwszym wczytaniu to w sumie dziala.. jak caly formularz pusty to pobierz dane.. user cos zmienia i klika "zmien"... nastepuje przeladowanie i niektore ktorej pole moze byc puste. Dlatego mam zapytanie ... and.. and..and - aby tylko prszy wszystkich wolnych wczytalo z bazy...

Ten post edytował exodus.mc 23.11.2007, 13:55:09
Go to the top of the page
+Quote Post
nospor
post
Post #6





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




Cytat
aby tylko prszy wszystkich wolnych wczytalo z bazy...
O rety... no to zmodyfikuj kod, tak jak chcesz.

  1. <?php
  2. $allEmpty = true;
  3. for ($i=0;$i<$_SESSION['cols'];$i++){
  4. if ( $poz[$i]!='' ){
  5. $allEmpty = false;
  6. break;
  7. }
  8. }
  9. if ($allEmpty) echo 'wszystkkie puste';
  10. else echo 'Nie ktore sa pelne';
  11. ?>


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

"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 Aktualny czas: 22.08.2025 - 02:12