Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [PHP]Warunek if
pawel06281990
post
Post #1





Grupa: Zarejestrowani
Postów: 298
Pomógł: 0
Dołączył: 10.01.2014

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


Witam zacząłem pisać warunek if.

A dokładnie żeby wszyscy wiedzieli o co chodzi to piszę panel Admina do html i zrobiłem takie coś ze jak np. Administrator robi aktualizację jakiejś części na stronie to z panelu wybiera tak i popisuje co robi a po wybraniu nie ta część strony się otwiera.

Napisałem takie coś

  1. echo'<form method="post" action="">';
  2. echo'<select name="zgoda" id="zgoda" class="textbox">';
  3. echo' <option value="tak".($ustawienia["zgoda"] == "1" ? " selected="selected"" : ")."">Tak</option>';
  4. echo'<option value="nie".($ustawienia["zgoda"] == "0" ? " selected="selected"" : ")."">Nie</option>';
  5. echo'</select>


A tu pisze warunek że by działało tylko nie wiem czy dobrze robię

  1. if ($ustawienia["zgoda"] == "tak"){
  2.  
  3. $query = "SELECT * FROM ustawienia WHERE Tekst like '$Tekst%' ORDER BY id ASC";
  4. $result = mysql_query($query)
  5.  
  6. while ($row = mysql_fetch_array($result)) {
  7. echo "<TR><TD>" . $row["Tekst"] .
  8. "</TD></TR>\n";
  9. }
  10. }else{
  11. echo'<textarea onkeyup="counter(this.value);" id="editor1" name="tekst" maxlength="100" cols="95" rows="10" class="textbox" style="width:98%"></textarea>';
  12.  
  13. }


I nie wiem czy dobrze zacząłem robićquestionmark.gif Bo aby teraz wyskakuje pi to po else aby to mi pokazuje i nie wiem co źle robię co_jest.gif

Ten post edytował Kshyhoo 5.02.2014, 23:54:12
Powód edycji: [Kshyhoo]: Formatowanie kodu nie polega na dodaniu tysiąca spacji...
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #2





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Proszę się zapoznać i zastosować: Jak poprawnie zadać pytanie - w moje stopce.


--------------------
Go to the top of the page
+Quote Post
Xart
post
Post #3





Grupa: Zarejestrowani
Postów: 267
Pomógł: 6
Dołączył: 8.04.2013

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


Źle to robisz
nadajesz sobie do pola option jakąś nazwę np opcja1 i dla drugiego opcja 2 a wartość przypisujesz inaczej
czyli np
$opcja1=$_POST['opcja1]
........2.......................2....

if($opcja1==tak){
$ustawienia=1
}else{
$ustawienia=0
}
}
ja bym to zrobił w ten deseń smile.gif
Go to the top of the page
+Quote Post
pawel06281990
post
Post #4





Grupa: Zarejestrowani
Postów: 298
Pomógł: 0
Dołączył: 10.01.2014

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


Ja zacząłem coś takiego robić i nadal nie działa pokazuje mi wszystko po słowie else

  1. $query = "SELECT * FROM ustawienia WHERE Tekst like '$Tekst%' ORDER BY id ASC";
  2. $result = mysql_query($query)
  3. if(mysql_fetch_row(mysql_query($query)) ["tak"] == 1 ) {
  4.  
  5. while ($row = mysql_fetch_array($result)) {
  6. echo "<TR><TD>" . $row["Tekst"] .
  7. "</TD></TR>\n";
  8. }
  9.  
  10. }else{
  11. echo'<textarea onkeyup="counter(this.value);" id="editor1" name="tekst" maxlength="100" cols="95" rows="10" class="textbox" style="width:98%"></textarea>';
  12.  
  13. }


W czym robię błąd

Ten post edytował pawel06281990 5.02.2014, 23:59:38
Go to the top of the page
+Quote Post
tomxx
post
Post #5





Grupa: Zarejestrowani
Postów: 172
Pomógł: 27
Dołączył: 5.10.2013

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


Jeżeli wykonuje się wszystko po słowie else, to znaczy, że mysql_fetch_row(mysql_query($query)) ["tak"] nie równa się 1... Czy tak trudno zrobić:
  1. echo mysql_fetch_row($result)["tak"];
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




w php nie mozna odwolywac sie do indeksow zwracanej tablicy z funkcji. Trzeba wpierw zapisac wynik do zmiennej i dopiero potem mozna z tego korzystac. To raz
A dwa, ze wykonujesz bez sensu dwa razy to samo zapytanie


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

"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
tomxx
post
Post #7





Grupa: Zarejestrowani
Postów: 172
Pomógł: 27
Dołączył: 5.10.2013

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


Cytat(nospor @ 6.02.2014, 09:40:28 ) *
w php nie mozna odwolywac sie do indeksow zwracanej tablicy z funkcji. Trzeba wpierw zapisac wynik do zmiennej i dopiero potem mozna z tego korzystac.
Od PHP 5.4 można...

Ten post edytował tomxx 6.02.2014, 09:49:31
Go to the top of the page
+Quote Post
nospor
post
Post #8





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




O widzisz, nie wiedzialem. Dobrze wiedziec smile.gif


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

"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
pawel06281990
post
Post #9





Grupa: Zarejestrowani
Postów: 298
Pomógł: 0
Dołączył: 10.01.2014

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


No i ja korzystam z PHP 5.4 ale jeszcze spróbuję jeden pomysł
Go to the top of the page
+Quote Post
nospor
post
Post #10





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




Ale tu nie ma co probowac.... poprostu sprawdz co ci zwraca mysql_fetch_row...


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

"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
pawel06281990
post
Post #11





Grupa: Zarejestrowani
Postów: 298
Pomógł: 0
Dołączył: 10.01.2014

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


mysql_fetch_row ono w zraca tablicę

Ten post edytował pawel06281990 6.02.2014, 11:54:17
Go to the top of the page
+Quote Post
nospor
post
Post #12





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





var_dump($wartosc_do_sprawdzenia);


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

"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
pawel06281990
post
Post #13





Grupa: Zarejestrowani
Postów: 298
Pomógł: 0
Dołączył: 10.01.2014

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


Gdy wykonuje sprawdzenie to wyskakuje mi taki error

Parse error: syntax error, unexpected ''tak'' (T_CONSTANT_ENCAPSED_STRING) in /home/u290282103/public_html/test.php on line 10

juz naprawiłem i wyskakuje NULL A komenda która zastosowałem wygląda tak
  1. var_dump($mysql_fetch_row);


Ten post edytował pawel06281990 6.02.2014, 12:09:20
Go to the top of the page
+Quote Post
Turson
post
Post #14





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Więc może jednak nie masz PHP 5.4+ i nie możesz tak pisać warunku, a tak jak napisał nospor
Go to the top of the page
+Quote Post
pawel06281990
post
Post #15





Grupa: Zarejestrowani
Postów: 298
Pomógł: 0
Dołączył: 10.01.2014

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


Ale ja wczoraj zmieniłem na PHP 5.4

To bym musiał pisać tak jak podpowiedział Xart żeby mi działało tak jak ja chce

Cytat(Xart @ 5.02.2014, 23:48:41 ) *
$opcja1=$_POST['opcja1]
........2.......................2....

if($opcja1==tak){
$ustawienia=1
}else{
$ustawienia=0
}
}
ja bym to zrobił w ten deseń smile.gif


Go to the top of the page
+Quote Post
Turson
post
Post #16





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Wyskakuje null w var_dump, bo nie masz zmiennej $mysql_fetch_row
var_dump(mysql_fetch_row($result))
Go to the top of the page
+Quote Post
pawel06281990
post
Post #17





Grupa: Zarejestrowani
Postów: 298
Pomógł: 0
Dołączył: 10.01.2014

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


Teraz wyskakuje że pętla while jest w skrypcie zobaczcie jak to wygląda
  1. $query = "SELECT * FROM ustawienia WHERE Tekst like '$Tekst%' ORDER BY id ASC";
  2. $result = mysql_query($query)
  3.  
  4. if(mysql_fetch_row(mysql_query($query)) ['tak'] == 1 ) {
  5. while ($row = mysql_fetch_array($result)) {
  6. echo "<TR><TD>" . $row["Tekst"] .
  7. "</TD></TR>\n";
  8. }
  9.  
  10. }else{
  11. echo'<textarea onkeyup="counter(this.value);" id="editor1" name="tekst" maxlength="100" cols="95" rows="10" class="textbox" style="width:98%"></textarea>';
  12.  
  13. }


Go to the top of the page
+Quote Post
nospor
post
Post #18





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




facepalmxd.gif

1) var_dum ma byc przed IFem... jak chcesz cos sprawdzic czemu nie wchodzi ci w IF, i jednoczesnie dajesz sprawdzanie w IF, do ktorego ci nie wchodz.... no mysl troche.

2)
nie: var_dump(mysql_fetch_row($result)
a: var_dump(mysql_fetch_row($result));
Skladni PHP nie znasz?

A najlepiej:
$row = mysql_fetch_row($result);
var_dump($row);


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

"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
pawel06281990
post
Post #19





Grupa: Zarejestrowani
Postów: 298
Pomógł: 0
Dołączył: 10.01.2014

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


Znam składnie tylko ja błędami próbami robię



I nie wiem dla czego wyskoczyło mi coś takiego to jest zawartość skryptu który ma wyświetlać napis z bazy danych

  1. array(7) { [0]=> string(2) "54" [1]=> string(0) "" [2]=> string(0) "" [3]=> string(3) "tak" [4]=> string(27) "
  2. testujemy nowy panel
  3.  
  4. " [5]=> string(8) "09:00:00" [6]=> string(1) "1" }


Coś jeszcze źle robię

  1. $query = "SELECT * FROM ustawienia WHERE Tekst like '$Tekst%' ORDER BY id ASC";
  2. $result = mysql_query($query)
  3. if (mysql_fetch_row(mysql_query($query))[0]=='tak') {
  4.  
  5. while ($row = mysql_fetch_array($result)) {
  6. echo "<TR><TD>" . $row["Tekst"] .
  7. "</TD></TR>\n";
  8. }
  9.  
  10. }else{
  11. echo'<textarea onkeyup="counter(this.value);" id="editor1" name="tekst" maxlength="100" cols="95" rows="10" class="textbox" style="width:98%"></textarea>';
  12.  
  13. }
Go to the top of the page
+Quote Post
nospor
post
Post #20





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




dales var_dump, to ci wyskoczylo...logiczne.

Sam widzisz, ze TAK jest pod indeksem 3 anie 0, wiec czemu w IF szukasz tego pod 0 ?

poza tym petlaWHILE
while ($row = mysql_fetch_array($result)) {
zwroci ci juz dane bez tego pierwszego rekordu. Wiec jesli zapytanie zwraca ci tylko jeden rekord, to WHILE nie wykona sie ani razu. To tak na marginesie
No chyba ze teraz wywalisz var_dump, to bedzie ok. Tylko porpaw 0 na 3
Powód edycji: [nospor]:


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

"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

2 Stron V   1 2 >
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: 20.08.2025 - 21:16