Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql] podawanie zmiennymch w funkcji
Forum PHP.pl > Forum > Przedszkole
Jerem!asz
witam,
mam oto problem tego typu, chce umiescic nowy wiersz w kolumnie w tabeli mysql, uzywam takiego mnmiej wiecej kodu

  1. <?php
  2.  if (isset($_POST['tresc']))
  3. {
  4.  $sql_tabela = "komentarze";
  5.  $tresc = $_POST['tresc'];
  6.  $autor = $_POST['autor'];
  7.  mysql_query("INSERT INTO komentarze 
  8. VALUES
  9.  (NULL,'$idDb','$tresc', '$autor');");
  10.  
  11. ?>

wszystko bylo by super, niestety nie zapisuje zmniennej $idDb, którą to zmienną uzyskuje za pomocą
  1. <?php
  2. $idDb = $_GET['idDb'];
  3. ?>

zmienna ta, jezeli uzyje funkcji echo do jej wyswietlenie - istnieje i wszystko dobrze sie wyswietla, natomiast jezeli podaje ją w poleceniu INSERT INTO . . . . tojuz nie odczytuje, a w bazie danych umieszcza 0 zamiast jakiesc innej liczby na ktora wskazuje $idDb
probowalem juz wielu rozwiazan, zna ktos moze rozwiazanie tego problemu??
dziekuje za pomoc,
pozdrawiam
nospor
wyswietl sobie to zapytanie (tuz przed wykonaniem) i sprawdz czy w zapytaniu masz te wartosc. Byc moze ty echowales $idDb w innym miejscu, a przy zapytaniu jest juz nie dostępna. Pozatym jesli ta kolumna jest liczbą, to powinna byc bez ciapkow:
  1. <?php
  2. echo "INSERT INTO komentarze VALUES (NULL,$idDb,'$tresc', '$autor')";
  3. ?>
Jerem!asz
ok, wiec wyswietlam zapytanie przed wywolaniem funkcji (ale przed funkcja if, w ktorej znajduje sie zapytanie) i pokazuje mi wszystko dobrze, tzn. INSERT INTO komentarze VALUES (NULL,5,'', '') koncowe wartosci sa puste, poniewaz formularz jest jeszcze nie wypalniony. Natomiast jak juz wypelnie formularz zdarzenie if powinno byc juz prawdziwe i nastepuje wywolanie funkcji, problem w tym, ze teraz ta zmienna nie ma zadnej wartosci, tzn. komunikat jest nastepujacy: INSERT INTO komentarze VALUES (NULL,,'tresc', 'autor')
jak sobie z tym poradzic?


oto kod jaki mam
  1. <?php
  2.  
  3. if (isset ($_GET ["idDb"])) $idDb=(int)$_GET ["idDb"];
  4.  
  5.  $tresc = $_POST['tresc'];
  6.  $autor = $_POST['autor'];
  7.  echo "INSERT INTO komentarze VALUES (NULL,$idDb,'$tresc', '$autor')";
  8.  
  9.  if (isset($_POST['tresc']))
  10. {
  11.  
  12.  $sql_tabela = "komentarze";
  13.  $tresc = $_POST['tresc'];
  14.  $autor = $_POST['autor'];
  15.  echo "INSERT INTO komentarze VALUES (NULL,$idDb,'$tresc', '$autor')";
  16.  mysql_query("INSERT INTO komentarze VALUES (NULL,$idDb,'$tresc', '$autor');");
  17.  }
  18.  ?>
  19. <form action="warsztaty2.php" method="POST">
  20.  <input type="hidden" name="pokaz" value="dodaj_news" />
  21. <table border="0">
  22.  <tr><td>Autor:</td><td><input size="30" type="text" name="autor" value="<?php echo $_POST['autor']; ?>" /></td></tr>
  23.  <tr><td>Tresć:</td><td><textarea cols="40" rows="5" name="tresc"><?php echo $_POST['tresc']; ?></textarea></td></tr>
  24.  <tr><td></td><td><input type="submit" value="Dodaj nowy news" /></td></tr>
  25. </table>
  26. </form>


nie wiem jak dojsc do prawidlowego rozwiazania, zabraklo mi juz pomyslow, dziekuje za wszelka pomoc
pozdrawiam.
DawidF
Moim skromnym zdaniem...

Wywołujesz form'a za pomocą

  1. <form action="warsztaty2.php" method="POST">


A potem odwołujesz się do jakiejś zmiennej $_GET['idDB']...

Jeśli koniecznie chcesz się do niej odwołać, to chyba przydałoby się ją wcześnie zainicjować, np.

  1. <form action="warsztaty2.php?idDB=5" method="POST">
Jerem!asz
dziala biggrin.gif

dzieki sliczne...

dozuslyszenia ( na pewno sie wkrotce odezwe z czyms :] hehe )

pozdrowionka :]

papapa
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.