Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z poprawnym wyświetlaniem danych z MySQL
Forum PHP.pl > Forum > PHP
szefol7
Postaram się wyjaśnić co mam na myśli jak najlepiej:)
Chcę, żeby wyświetlało mi na stronce poszczególne rekordy tabeli z bazy MySQL, a na dole strony był formularz który by dodawał jeden element do tej tabeli. Po wpisaniu jedengo elementu chciał bym aby po kliknięciu był on dodawany do tabeli i odrazu ładowała się ta sama stronka, odświeżona z wyświetlonym świeżo dodanym elementem i na dole znowu była możliwość dodania nowego elementu.

Można coś takiego zrobić, żeby było to wszystko wykonywane na jednej stronce? Bo przy użyciu POST lub GET chyba nie, ponieważ dane są przysyłane do następnej stronki, prawda? Jeżeli nie mam racji to prosze o uświadomienie mnie smile.gif

Prosze o napisanie czy jest to możliwe i jeżeli tak, to jak można to zrobić.

Z góry dziękuję.
Pozdrawiam.
ActivePlayer
Robisz tak...
  1. <?php
  2. //sprawdzanie danych czy są poprawne... jesli nie $error.=\"Błąd jakistam<br>\";
  3. if(isset($_POST[dodaj]) AND !isset($error))
  4. {
  5. echo &#092;"dodawanie\";
  6. // wpisywanie danych do mysqla
  7. }
  8. //
  9. //Wyswietlanie danych
  10. //pobranych z mysql
  11.  
  12. //----------
  13.  
  14. echo $error;
  15. //Formularz dodawania
  16. //<form action=\"ten_plik.php\" method=\"POST\">
  17. //jakies tam pola
  18. //<input type=\"submit\" name=\"dodaj\" value=\"costam\">
  19. //</form>
  20. ?>



przestudiuj to... jak zrobilem jakis bug to poprawcie mnie smile.gif
redman2
Pewnie, ze mozna cos takiego zrobic smile.gif

1. metode formularza ustaw jako POST, a akcje jako PHP_SELF

  1. <form name="form" method="post" action="<?php echo $PHP_SELF; ?>">


2. umiesc skrypt php nad html'em i zaimplementuj wpisanie do bazy a nastepnie wyciaganie

  1. <?
  2. $firma=$_POST[firma];  // to samo robisz dla imienia i nazwiska
  3.  
  4. include 'connect.php'; // twoj sposob laczenia sie z baza
  5.  
  6. $sql=&#092;"INSERT INTO uzytk VALUES ('','$firma', '$imie', '$nazw')\";
  7. $result=mysql_query($sql,$conn) or die (mysql_error(&#092;"Nie moge wpisac uzytkownika\"));
  8.  
  9.  
  10. ?>


a tu wyciagasz

  1. <?php
  2.  
  3. $sql = &#092;"SELECT * FROM uzytk where id=$id\"; 
  4. $result = mysql_query($sql,$conn) or die (mysql_error(&#092;"Nie moge wypisac uzytkownika\")); 
  5. while($row = mysql_fetch_array($result)) 
  6. { 
  7. $db_firma = stripslashes($row[&#092;"firma\"]); echo \"$db_firma<br>\";
  8. $db_imie = $row[&#092;"imie\"]; echo \"$db_imie<br>\";
  9. $db_nazw = $row[&#092;"nazw\"]; echo \"$db_nazw<br>\";
  10.  
  11. ?>



i za kazdym razem po wpisaniu czegos do formularza, u gory na stronie automatycznie wyswietli Ci sie to, co wyciagniesz z bazy.
szefol7
Teraz juz prawie wszystko jest dobrze, ale napotkalem na jeden problem. Dane pobrane z MySQL-a są jakby niewidoczne, poprostu tam gdzie powinna być nazwa grupy jest wstawiona pusta linia. Dla upewnienia się czy wstawia pustą linię dodałem w skrypcie, aby po każdej lini z danymi z bazy wypisywał napis "Nowa linia" i ten napis pojawia się co drugą linię, a im więcej dodaje danych do bazy tym tych lini przybywa, skąd wniosek, ze coś jest do niej dodawane i coś jest pobierane, ale nie moge tego wyświetlić.

Poniżej załączam mój skrypt.
Prosze o pomoc w zlokalizowaniu błędu, gdyż ja niestety nie mam pojęcia co to może być.

Kod
<?php
include ('./inc/adminnaglowek.txt');


$nowa_grupa=$_POST[nowa_grupa];

include ('connect.php');

if (!($nowa_grupa==""))
{
$query="INSERT INTO grupy VALUES ('$nowa_grupa')";
$wynik=mysql_query($query,$id_polaczenia) or die (mysql_error("Nie moge wpisac nowej grupy"));
}

$sql = "SELECT * FROM grupy";
  $result = mysql_query($sql,$id_polaczenia) or die (mysql_error("Nie moge wypisac listy grup"));
  while($row = mysql_fetch_array($result))
      {
      $db_grupa = $row["firma"];
      echo "$db_grupa<br>";
      echo "Nowa linia<br>";
      }

      


?>

<form name="form" method="post" action="<?php echo $PHP_SELF; ?>">
<input type="text" name="nowa_grupa">
<input type="submit" volume="Dodaj">

</form>

</body>
</html>
Vertical
  1. <?php
  2. $db_grupa = $row[&#092;"firma\"]; 
  3.  echo &#092;"$db_grupa<br>\";
  4. ?>

Zamiast tego spróbuj tam wstawić
  1. <?php
  2. printf(&#092;"%n\",
  3.  $row['firma']);
  4. ?>
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.