Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Połącznie z SQL i pobieranie z tabeli do tabeli
Forum PHP.pl > Forum > Gotowe rozwiązania
Neyo
Witam, ostatnio zacząłem naukę z PHP i bazą danych SQL, ale wciąż nie mogę połączyć się po przez PHP z bazą danych MySQL i wybrać dane wpisując je do tabeli w rodzaju
echo "<td>" . $row['name'] . "</td>";
echo "<td>" . $row['surname'] . "</td>";
echo "<td>" . $row['weight'] . "</td>";
echo "<td>" . $row['height'] . "</td>";

nie wiem jak tych danych wprowadzić do tabeli w HTML jakby ktoś by mógł mi to wyjaśnić byłbym bardzo wdzięczny.
viking
A z czym konkretnie masz problem? Jaka jest struktura bazy? Sugeruję użyć PDO skoro i tak zaczynasz naukę.
http://tworzenie-stron-www.org/article/10/...luge_baz_danych
Neyo
chcę z bazy danych pobrać cztery kolumny imię, nazwisko, wiek i waga i umieścić je w tabeli w <tbody>(dane z bazy danych)</tbody> używając php Ajaxa lub jQuery.
viking
W takim razie kod który wkleiłeś wygląda dobrze. Chcesz więcej informacji napisz porządnie temat smile.gif
Neyo
  1. <?php
  2. $connect = mysql_connect("host", "myuser", "mypass")
  3. mysql_select_db("mydb");
  4. $quey1="SELECT imie, nazwisko, waga, wzrost FROM mydb";
  5. $result=mysql_query($quey1) or die(mysql_error());
  6. while($row=mysql_fetch_array($result)){
  7. echo "<tr><td>";
  8. echo $row['imie'];
  9. echo "</td><td>";
  10. echo $row['nazwisko'];
  11. echo "</td><td>";
  12. echo $row['waga'];
  13. echo "</td><td>";
  14. echo $row['wzrost'];
  15. echo "</td></tr>";
  16. }
  17. ?>


  1. <!doctype html>
  2. <head>
  3. table{border: 1px solid black;}
  4. th{background-color:maroon; color:white;}
  5. input{background-color:firebrick; border:none;}
  6. </style>
  7. <script type="text/javascript" src="jquery.min.js"></script>
  8. $(function(){
  9.  
  10. });
  11. </script>
  12. </head>
  13. <body>
  14. <div class="container">
  15. <table border="1" cellspacing="0" cellpadding="5px">
  16. <tr>
  17. <th><label for="name">Imię</label><input type="text" name="name" id="name"/></th>
  18. <th><label for="surname">Nazwisko</label><input type="text" name="surname" id="surname"/></th>
  19. <th><label for="weight">Waga</label><input type="text" name="weight" id="weight"/></th>
  20. <th><label for="height">Wzrost</label><input type="text" name="height" id="height"/></th>
  21. </tr>
  22.  
  23. </tbody>
  24. </table>
  25. </div>
  26. </body>
  27. </html>


w php wszystko mam napisane na tip-top, ale niech ktoś mi powie jak mam napisać skrypt GET, aby w tbody wyświetliły się echo'a
neosatan
skrypt GET? za nic na świecie nie wiem co to skrypt GET?

Podejrzewam, że chcesz by to co echujesz było w tbody, wiec po prostu zamiast to echować to wrzuć do zmiennej i wyrzuć zmienną za pomocą <?php echo $tbody ?> (to wklejasz po między znaczniki <table></table>, a kod php musi być wykonany wcześniej) możesz też od razu dorzucić obsługę zdarzenia, gdy nie ma nic z bazy, oraz powielanie nagłówków co 100 stron, lub paginacje (btw. niech mi ktoś wyjaśni genezę tego słowa...)

a tak swoją drogą, to po co Ci w tbody input, skoro nie masz form? jak chcesz za pomocą tabelek robić layout, to zaraz narobisz sobie wrogów tutaj, użyj div do layoutu, lepiej się sprawdzają.

co do Twojego cellspacing w HTML5

StackOverflow


PDO, a nie funkcje mysql_*. Jest łatwiejsze i funkcje mysql_* idą w zapomnienie powoli. Jak mnie pamięć nie myli to już społeczność je deprecjonuje (a przynajmniej przygotowuje się), co i tak może potrwać jeszcze kilka lat...


Jak chcesz to zrobić za pomocą AJAXa z jQuery, to np.

$.post('ajax.php', {}, function(data){
$('#id_tabeli').htm(data);
});

viking
Jeśli chcesz to za pomocą jQuery to możesz wykorzystać http://api.jquery.com/load/ . Plik do którego wysyłasz request zwyczajnie zwraca właściwą treść. Możesz też spróbować JSON ale nie wiem czy przy tym poziomie wiedzy dasz sobie radę z zapisem i później wybraniem danym w jQuery. Najlepszym oczywiście rozwiązaniem jest zrobić całość w PHP i to co napisałeś w pierwszym poście wstawić do kodu generującego tabelę.

@neosatan:
W HTML5 input poza form jest konstrukcją 100% poprawną i w pewnych sytuacjach bardzo pożądaną.
neosatan
@viking:
Hmmm... A do czego? Rozumiem, że można to wykorzystać do wprowadzania danych za pomocą AJAXa, FileAp itp, z tym, że autor trochę niezrozumiale napisał temat dlatego pytam się do czego ten input tam jest. To czy to konstrukcja pożądana czy nie jest kwestią wykorzystania kodu niżeli specyfikacji HTML5, jednak jestem ciekaw po co to tam jest, ponieważ nie widzę w kodzie motywów wykorzystania tego inputu. Nie rozumiem dokładnie po co ten input tam jest i czy autor chce za pomocą AJAXa wrzucić kod z tych inputów i go ponownie wyświetlić, czy może tylko tak o to tam wykorzystuje, czy może gdzieś tam zapomniał jeszcze wrzucić formularza, czy bóg wie co jeszcze. Sposobów wykorzystania jest pewnie multum takiego kodu, lecz dokładnie nie wiem jakie jest zamierzenie, dlatego też napisałem dwa rozwiązania + kilka uwag odnośnie HTML5, mysql. Nie ma sensu, by nabierał złych nawyków podczas nauki, więc zawsze lepiej się zapytać co chce osiągnąć.

Jak chcesz wykorzystać ten input tam do przesłania na serwer, to możesz wykorzystać to tak

$.post('ajax.php', {name: $('#id_tabeli input[name=name']').val(), surname: $('#id_tabeli input[name=surname']').val(), weight: $('#id_tabeli input[name=weight']').val(), height: $('#id_tabeli input[name=height']').val()}, function(data){
$('#id_tabeli').htm(data);
});


Tym sumptem, masz te dane w pliku php dostępne pod tabelą $_POST, jak zmienisz $.post() na $.get() to będą w $_GET. Natomiast jak chcesz i przez POST i GET przesłać, to możesz zrobić tak

$.post('ajax.php?name='+ $('#id_tabeli input[name=name']').val(), { surname: $('#id_tabeli input[name=surname']').val(), weight: $('#id_tabeli input[name=weight']').val(), height: $('#id_tabeli input[name=height']').val()}, function(data){
$('#id_tabeli').htm(data);
});

tym sposobem masz $_GET['name'] oraz $_POST['surname'], $_POST['weight'], $_POST['height']. Oczywiście kombinajce dowolne.

Choć dalej nie wiem dokładnie po co te inputy tam są.
viking
Tutaj oczywiście można wybierać bezpośrednio z wartości tak jak rozpisałeś, chociaż akurat chyba lepiej opakować całość w form ze względu na obsługę submita w jquery i ogromnej ilości pluginów na tym bazujących. Miałem raczej na myśli coś z nowych rzeczy (a w końcu HTML5 też jest dopiero w fazie zgłaszania uwag) np w połączeniu z animacjami CSS3, jako sprytne oszukiwanie klika. Mimo wprowadzenia :target powoduje on jednak przeskok czego przy tych luźnych inputach nie ma. Od strony formalnej taki zapis jest poprawny dlatego nie wnikałem głębiej. A czy w takim razie, jeśli technologia zezwala mówimy o złych nawykach? smile.gif
neosatan
hmm... ciężkie pytanie. Złym nawykiem jest korzystanie z deprecjonowanych funkcji mysql_* (no wiem, że jest dopiero zapowiadane deprecjonowanie), ale lepiej gdyby uczył się PDO. Stosowanie cellpadding w <table> przy HTML5 też. Tutaj co prawda jest kwestia pozwolenia technologii, bo przez parser przejdzie, natomiast walidator wyświetli komunikat. Z tymi inputami, to też raczej bym zalecał by używać z form ich (powody sam podałeś). Jakoś super wielkich uchybień tutaj nie ma. Gorzej by było jakby prezentował sortowanie bąbelkowe dla całości tabeli mysql.
Neyo
neosatan jedno pytanie jak mam wrzucić dane imie, nazwisko itp. to co chcę echować do zmiennej questionmark.gif, bo już sam nie wiem.

Już wszystko mi działa teraz jak zrobić, aby filtrować za pomocą .val() to co jest w inputach??
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-2024 Invision Power Services, Inc.