Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Nieaktywna zmienna
Forum PHP.pl > Forum > Przedszkole
Lethys
Witam,

Posiadam probelm, zmienna z początku kodu nie jest aktywna pod koniec kodu.

Jak to zrobić?

Kod wygląda tak:

  1. <?php
  2. include "header.php";
  3. include "sesja.php";
  4.  
  5. // TUTAJ POKAZ
  6. $pokaz = mysql_fetch_array(mysql_query("select * from cele where id='$pokaz'"));
  7. ?>
  8. <body>
  9.  
  10. <div id="wrapper">
  11. <div id="header">
  12. <h1>Rozwój osobisty</h1>
  13. <div class="clear"></div>
  14. </div>
  15.  
  16. <div id="middlebar-small">
  17. <h2><?php print "$pokaz[nazwa]"; ?></h2>
  18. </div>
  19.  
  20. <div id="body">
  21. <div id="body-inner">
  22. <div id="sidebar">
  23. <h3 class="user"><?php print "$stat[imie] $stat[nazwisko]";?></h3>
  24. <ul class="links">
  25. <li><a href="#"><img border="0" src="images/sb3.png" width="10" height="10"> Cele</a></li>
  26. <li><a href="#"><img border="0" src="images/stats.png" width="10" height="10"> Statystyki</a></li>
  27. <li><a href="#"><img border="0" src="images/poradniki.png" width="10" height="10"> Poradniki</a></li>
  28. </ul>
  29.  
  30. </div>
  31.  
  32. <div id="main-content">
  33. <div class="box">
  34. <div class="box_inner">
  35. <h3><?php print "$pokaz[nazwa]"; ?></h3>
  36. <p><?php print "$pokaz[opis]"; ?></p>
  37. </div>
  38. </div>
  39. <form method=post action=pokaz.php?action=zrobione>
  40. <ul class="form">
  41. <li><label for="name">Czas</label><input name="czas" type="text" maxlength="10"/></li>
  42. <li><label for="opis">Wnioski</label><textarea name="opis" cols="30" rows="3" maxlength="255"></textarea></li>
  43. <li><label></label> <input class="btn" alt="Zrobione" type="image" name="zrobione" src="images/button.png" />
  44. </li>
  45. </ul>
  46. </form>
  47. <?php
  48. if ($action == "zrobione"){
  49.  
  50.  
  51.  
  52. //if(!preg_match('/^([a-ż0-9_]+)$/i', $_POST['nazwa'])){
  53. //$problem = TRUE;
  54. //echo("<p id='uwaga'><h2>Użyto niedozwolonych znaków w nazwie celu.</h2></p>");
  55. //}
  56. //if(!preg_match('/^([a-ż0-9_]+)$/i', $_POST['opis'])){
  57. //$problem = TRUE;
  58. //echo("<p id='uwaga'><h2>Użyto niedozwolonych znaków w opisie.</h2></p>");
  59. //}
  60.  
  61.  
  62.  
  63. $data = date("d.m.y");
  64.  
  65.  
  66.  
  67. // POKAZ[ID] TUTAJ NIE DZIAŁA, JEST PUSTE
  68.  
  69. mysql_query("insert into akcje (id_cel, opis, czas) values('$pokaz[id]','$opis','$czas')") or die(mysql_error());
  70.  
  71.  
  72.  
  73. echo("<br><p><h2> Nowy cel został utworzony.</h2></p><p>Przejdź do swoich <a href=cele.php>celi</a>");
  74. }
  75.  
  76. ?>
  77.  
  78. </div>
  79. </div>
  80. </div>
  81. <?php
  82. include "footer.php";
  83. ?>
  84. </div>
  85.  
  86. </body>
  87. </html>
PanGuzol
jak masz tablice asocjacyjną to indeksy dajesz w apostrofy tj. $pokaz['id']
Zrób tak
  1. mysql_query("insert into akcje (id_cel, opis, czas) values('".$pokaz['id']."','$opis','$czas')") or die(mysql_error());

Lethys
Zrobiłem w te sposób, mimo wszystko dalej nie działa.

Myślę, że problem może leżeć w zmiennych globalnych,lokalnych itp. Ale ja nie mam o tym pojęcia.

Może mi ktoś powiedzieć jak to zrobić?
nospor
To wszystko jest w jednym pliku? Pokazałeś nam cały kod? No to nie ma prawa nie działać. Poczym wnioskujesz że $pokaż na koncu nie jest widoczne?
pustka
Wydaje mi się że problem może leżeć w tym że pobierasz dane nie tą funkcją. Spróbuj:


  1. $pokaz = mysql_fetch_assoc(mysql_query("select * from cele where id='$pokaz'"));


Wtedy odwołanie po indeksie 'id' powinno zadziałać.

Domyślam się wartość zmiennej $pokaz użyta w klauzuli where pochodzi z załączonego pliku.
Lethys
Tak, to jest cały kod.


Po czym wnioskuje:

w linijce stworzenia rekordu w bazie podmieniłem $pokaz[id] na wartosć: 4

mysql_query("insert into akcje (id_cel, opis, czas) values('4','$opis','$czas')") or die(mysql_error());

i wszystko zostało dodane OK.


Kiedy wchodze na skrypt z adresu ..pokaz.php?pokaz=4

Do bazy powinno dodawać wartość 4 jako id_cel


aha i zmienna $pokaz wcześniej działa bez błędnie tzn. <?php print "$pokaz[nazwa]"; ?> Wyświetla to co ma wyświetlać

Tylko nie działa w dalszej części skryptu (warunku)
CuteOne
  1.  
  2. $pokaz = $_GET['pokaz'];
  3. echo $pokaz;
nospor
Po:
$pokaz = mysql_fetch_array(mysql_query("select * from cele where id='$pokaz'"));
daj:
echo 'PO:';
var_dump($pokaz);

oraz przed:
// POKAZ[ID] TUTAJ NIE DZIAŁA, JEST PUSTE
mysql_query("insert into akcje (id_cel, opis, czas) values('$pokaz[id]','$opis','$czas')") or die(mysql_error());

daj:
echo 'PRZED:';
var_dump($pokaz);

I pokaż dokładnie co te dodatkowe 4 linijki kodu ci zwróciły.

ps: tobie chyba nie działa po wysłaniu forma....no ale przecież wówczas i to $pokaz na początku też by ci nie działało. Coś kręcisz panie kolego.
A nie działa ci po wysłaniu forma, bo ty nigdzie tego pokaz w formie nie przekazujesz
pustka
czy w tabeli cele pole na pewno ma nazwę id ?
Lethys
@pustka

tak

@nospor

po odpaleniu strony pokaz.php

PO:array(18) { [0]=> string(1) "4" ["id"]=> string(1) "4" [1]=> string(1) "3" ["ownerid"]=> string(1) "3" [2]=> string(8) "Bieganie" ["nazwa"]=> string(8) "Bieganie" [3]=> string(31) "Chcę biegać od czasu do czasu" ["opis"]=> string(31) "Chcę biegać od czasu do czasu" [4]=> string(1) "0" ["postęp"]=> string(1) "0" [5]=> string(8) "04.07.11" ["data_utworzenia"]=> string(8) "04.07.11" [6]=> string(1) "0" ["dni"]=> string(1) "0" [7]=> string(1) "0" ["dni_zostalo"]=> string(1) "0" [8]=> string(21) "Kilka razy w tygodniu" ["czestotliwosc"]=> string(21) "Kilka razy w tygodniu" }
Rozwój osobisty

Po wysłaniu formularza na stronie pokaz.php

PO:bool(false)

PRZED:bool(false)




To jest cały kod, który to zwrócił:

  1. <?php
  2. include "header.php";
  3. include "sesja.php";
  4.  
  5. $pokaz = mysql_fetch_array(mysql_query("select * from cele where id='$pokaz'"));
  6. echo 'PO:';
  7. var_dump($pokaz);
  8. ?>
  9. <body>
  10.  
  11. <div id="wrapper">
  12. <div id="header">
  13. <h1>Rozwój osobisty</h1>
  14. <div class="clear"></div>
  15. </div>
  16.  
  17. <div id="middlebar-small">
  18. <h2><?php print "$pokaz[nazwa]"; ?></h2>
  19. </div>
  20.  
  21. <div id="body">
  22. <div id="body-inner">
  23. <div id="sidebar">
  24. <h3 class="user"><?php print "$stat[imie] $stat[nazwisko]";?></h3>
  25. <ul class="links">
  26. <li><a href="#"><img border="0" src="images/sb3.png" width="10" height="10"> Cele</a></li>
  27. <li><a href="#"><img border="0" src="images/stats.png" width="10" height="10"> Statystyki</a></li>
  28. <li><a href="#"><img border="0" src="images/poradniki.png" width="10" height="10"> Poradniki</a></li>
  29. </ul>
  30.  
  31. </div>
  32.  
  33. <div id="main-content">
  34. <div class="box">
  35. <div class="box_inner">
  36. <h3><?php print "$pokaz[nazwa]"; ?></h3>
  37. <p><?php print "$pokaz[opis]"; ?></p>
  38. </div>
  39. </div>
  40. <form method=post action=pokaz.php?action=zrobione>
  41. <ul class="form">
  42. <li><label for="name">Czas</label><input name="czas" type="text" maxlength="10"/></li>
  43. <li><label for="opis">Wnioski</label><textarea name="opis" cols="30" rows="3" maxlength="255"></textarea></li>
  44. <li><label></label> <input class="btn" alt="Zrobione" type="image" name="zrobione" src="images/button.png" />
  45. </li>
  46. </ul>
  47. </form>
  48. <?php
  49. if ($action == "zrobione"){
  50.  
  51.  
  52.  
  53. //if(!preg_match('/^([a-ż0-9_]+)$/i', $_POST['nazwa'])){
  54. //$problem = TRUE;
  55. //echo("<p id='uwaga'><h2>Użyto niedozwolonych znaków w nazwie celu.</h2></p>");
  56. //}
  57. //if(!preg_match('/^([a-ż0-9_]+)$/i', $_POST['opis'])){
  58. //$problem = TRUE;
  59. //echo("<p id='uwaga'><h2>Użyto niedozwolonych znaków w opisie.</h2></p>");
  60. //}
  61.  
  62.  
  63.  
  64. $data = date("d.m.y");
  65.  
  66. echo 'PRZED:';
  67. var_dump($pokaz);
  68. mysql_query("insert into akcje (id_cel, opis, czas) values('".$pokaz['id']."','$opis','$czas')") or die(mysql_error());
  69.  
  70.  
  71.  
  72. echo("<br><p><h2> Nowy cel został utworzony.</h2></p><p>Przejdź do swoich <a href=cele.php>celi</a>");
  73. }
  74.  
  75. ?>
  76.  
  77. </div>
  78. </div>
  79. </div>
  80. <?php
  81. include "footer.php";
  82. ?>
  83. </div>
  84.  
  85. </body>
  86. </html>
nospor
Cytat
Po wysłaniu formularza na stronie pokaz.php

PO:bool(false)

PRZED:bool(false)
Brak słów.... jesteś tyle czasu na forum i ty walisz z tekstem, że na początku skryptu dziala a na koncu nie.... Naprawdę musisz lecieć na forum zamiast zrobić proste debugowanie i zobaczyć, ze nie dziala zarowno na początku jak i na koncu skryptu?

Już ci pisałem w poprzednim poście:
nie działa, bo w formularzu nie przekazujesz id, które bierzesz na początku skryptu do zapytania.
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.