Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Warunek if
Forum PHP.pl > Forum > Przedszkole
pawel06281990
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
Kshyhoo
Proszę się zapoznać i zastosować: Jak poprawnie zadać pytanie - w moje stopce.
Xart
Ź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
pawel06281990
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
tomxx
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"];
nospor
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
tomxx
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...
nospor
O widzisz, nie wiedzialem. Dobrze wiedziec smile.gif
pawel06281990
No i ja korzystam z PHP 5.4 ale jeszcze spróbuję jeden pomysł
nospor
Ale tu nie ma co probowac.... poprostu sprawdz co ci zwraca mysql_fetch_row...
pawel06281990
mysql_fetch_row ono w zraca tablicę
nospor

var_dump($wartosc_do_sprawdzenia);
pawel06281990
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);
Turson
Więc może jednak nie masz PHP 5.4+ i nie możesz tak pisać warunku, a tak jak napisał nospor
pawel06281990
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


Turson
Wyskakuje null w var_dump, bo nie masz zmiennej $mysql_fetch_row
var_dump(mysql_fetch_row($result))
pawel06281990
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. }


nospor
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);
pawel06281990
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. }
nospor
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
pawel06281990
Ja zmierzam do efektu gdzie admin w panelu weźmie wybierze tak i po zapisaniu ustawień napis na wybranej części strony wyskoczy napis np.Strona tym czasowo niedostępna trwa aktualizacja danych i zmiana wyglądu, a jak wszystko zrobi i wybierze opcje nie i zapisze to strona zostanie otwarta

I jak wiem to się takie cos robi warunkiem

  1. if (warunek){
  2.  
  3. echo'jakiś tekst';
  4. }else{
  5. echo'witam ponownie';
  6. }


To tak się robi ale trzeba napisac warunek który z skryptu
  1. echo'<select name="wartosc" id="wartosc" class="textbox">';
  2. echo' <option value="1".($ustawienia == "1" ? " selected="selected"" : ")."">Tak</option>';
  3. echo'<option value="0".($ustawienia == "0" ? " selected="selected"" : ")."">Nie</option>';
  4. echo'</select>';


wyda zgodę na zamknięcie i otwarcie strony.

Coś takiego chce sięgnąć.

Pomożecie mi bo już nie wiem co źle robię

To nie działa cały czas mam napis który wpisałem kontynuuje post z tego tematu Temat: PHPProblem z warunkiem if

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


Bo ja to robię z pol wyboru o tak
  1. echo'<form method="post" action="">';
  2. echo'<select name="wartosc" id="wartosc" class="textbox">';
  3. echo' <option value="1".($ustawienia == "1" ? " selected="selected"" : ")."">Tak</option>';
  4. echo'<option value="0".($ustawienia == "0" ? " selected="selected"" : ")."">Nie</option>';
  5. echo'</select>';


Coś muszę wybrać chyba i wpisac żeby to działało bo to co wpiszę w tym skrypcie

  1. if(isset($_POST['wyrazenie'])){
  2. /* odbieramy dane z formularza */
  3. $tekst = mysql_real_escape_string(trim($_POST['tekst']));
  4. $czas = mysql_real_escape_string(trim($_POST['czas']));
  5. $wartosc = mysql_real_escape_string(trim($_POST['wartosc']));
  6. /* zapisujemy dane do bazy */
  7. if($tekst and $czas and $wartosc ) {
  8. mysql_query("INSERT INTO ustawienia (tekst, czas, wartosc) VALUES ( '$tekst', '$czas','$wartosc');") or die(mysql_error());
  9. echo 'Dane zostały zapisane<br/>';
  10. }
  11. else echo 'Wypełnij wszystkie pola formularza!<br/>';
  12.  
  13. }
  14. if (user::isLogged()) {
  15. // Widok dla użytkownika zalogowanego
  16.  
  17. // Pobierz dane o użytkowniku i zapisz je do zmiennej $user
  18. $user = user::getData('', '');
  19.  
  20.  
  21. echo'<br/>';
  22. echo'Aby ustawić odpowiednią wartośc dla podanej czyności wybierz z poniszych pul';
  23. echo'<br/><br/>';
  24. echo'<center><b>Ustawienia główne</center></b>';
  25. echo'<div id="ustawienia">';
  26. echo' <label for="wartosc">Tryb Pracy:</label>';
  27. echo'<form method="post" action="">';
  28. echo'<select name="wartosc" id="wartosc" class="textbox">';
  29. echo' <option value="1".($ustawienia == "1" ? " selected="selected"" : ")."">Tak</option>';
  30. echo'<option value="0".($ustawienia == "0" ? " selected="selected"" : ")."">Nie</option>';
  31. echo'</select>';
  32.  
  33.  
  34. echo' <label for="tekst">Opis trybu pracy:</label>';
  35. echo'<textarea onkeyup="counter(this.value);" id="editor1" name="tekst" maxlength="100" cols="95" rows="10" class="textbox" style="width:98%"></textarea>';
  36. echo '<script>
  37. // Replace the <textarea id="editor1"> with a CKEditor
  38. // instance, using default configuration.
  39. CKEDITOR.replace( "editor1" );
  40. </script>';
  41.  
  42. echo'<label for="czas">Ustaw Czas Wyłączenia wyszukiwarki:</label>';
  43. echo'<select name="czas" id="czas" >';
  44. echo'<option>Wybierz</option>';
  45. echo'<option>01:00:00</option>';
  46. echo' <option>02:00:00</option>';
  47. echo' <option>03:00:00</option>';
  48. echo' <option>04:00:00</option>';
  49. echo' <option>05:00:00</option>';
  50. echo' <option>06:00:00</option>';
  51. echo' <option>07:00:00</option>';
  52. echo' <option>08:00:00</option>';
  53. echo'<option>09:00:00</option>';
  54. echo'<option>10:00:00</option>';
  55. echo'<option>11:00:00</option>';
  56. echo' <option>12:00:00</option>';
  57. echo'</select> Godzina/ny';
  58. echo'<BR/><br/>';
  59. echo'<div id="stopka">';
  60. echo'<input type="submit" name="wyrazenie" value="Zapisz ustawienia" size="10" />';
  61. echo' </div>';
  62. echo'</form>';
  63. echo'</div>';
  64. }
  65. else {
  66. // Widok dla użytkownika niezalogowanego
  67. echo '<center>';
  68. echo '<p>Przepraszamy ale ta strona dostępna jest dla Administracji,nie jesteś adminem lub występił problem skontaktuj sie z twórcą panelu .</p>';
  69. echo '</center>';
  70. echo '<p><a href=""><img src="/images/error.png" style="margin:5px" alt="" align="right"/>';
  71. }

Zapisuje mi się w bazie napis np. Prace na serwerze. Proszę was o pomoc
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.