Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyswietlanie rekordow z bazy mysql
Forum PHP.pl > Forum > PHP
filipsiu
Witam ja dalej z tym Q&A Systemem zrobiłem juz dodawanie pytania i teraz problem który mnie męczy.
Jak zrobić by wyniki z bazy danych wyświetlane były każdy w osobnym "okienku" dla ułatwienia dam SS:


i sprawa wysylam dane do bazy w formie
$message oraz $nick to jak zrobic by wyswietlalo tak jak dalem na obrazku ?
filipsiu
Witam ja dalej z tym Q&A Systemem zrobiłem juz dodawanie pytania i teraz problem który mnie męczy.
Jak zrobić by wyniki z bazy danych wyświetlane były każdy w osobnym "okienku" dla ułatwienia dam SS:

zdjecie

i sprawa wysylam dane do bazy w formie
$message oraz $nick to jak zrobic by wyswietlalo tak jak dalem na obrazku ?
b4rt3kk
A wiesz w jaki sposób pobiera się dane z bazy? Jeśli tak to nie widzę problemu w takim ich ułożeniu jak to pokazałeś na screenie.
filipsiu
nie za bardzo wiem ponieważ jeszczy mysql'a nie tykałem
wiem tyle że:
  1. $zapytanie = mysql_query('select * from rekordy');
  2. while($rekord = mysql_fetch_assoc($zapytanie))
  3. {
  4. echo $rekord['tytul'];
  5. echo "<br>";
  6. }

i tu wyświetla $message$nick (tak mi sie wydaje) jako 1 a nie wiem jak to rozdzielić
Szymciosek
Pobierasz dane z bazy, później możesz sobie w pętli stworzyć zmienne name, message a później na tej podstawie generujesz w php kod html czyli <div>tutaj ramka + tekst</div>

odstępy itd

Czyli otrzymujesz w jednym ciągu: Cześć, jestem JaśJasiu ?

  1. while($row=mysql_fetch_array($wynik))
  2. {
  3. echo $row['wartosc'];
  4. }


ogólnie tak to działa
możesz dać name = $row['name'];
zależy jak masz bazę skonstruowaną.
filipsiu
@Szymciosek a może jakaś podstawa ? Bo jak już mówiłem nie za bardzo jeszcze znam mysql


@edit:
coś takiego?:
  1. while($row=mysql_fetch_array($wynik))
  2. {
  3. echo $row['message];
  4. echo $row['nick'];
  5. }


?
Ulysess
stwórz sobie kod html/css tego co chcesz zrobić , wstaw sobie ten kod w pętle while i tam gdzie jest miejsce dla autora wstaw zmienna z autorem , a gdzie z wiadomości wiadomośc , pamiętaj żeby walidować wyświetlane wiadomości.

pomijając że kod który dałeś jest błędny to jego wynikiem będzie wyświetlenie wiadomości oraz autora w postaci "wiadomośćautor"

przykład:
  1. <div>
  2. <div>'.$query['wiadomosc'].'</div>
  3. <div>$query['autor']</div>
  4. </div>
  5.  
  6. ';
  7.  


oczywiście to musi być ostylowane żeby przybrało taka forme jaką chcesz
Yorki
Cytat(filipsiu @ 18.09.2012, 17:41:09 ) *
Witam ja dalej z tym Q&A Systemem zrobiłem juz dodawanie pytania i teraz problem który mnie męczy.
Jak zrobić by wyniki z bazy danych wyświetlane były każdy w osobnym "okienku" dla ułatwienia dam SS:

zdjecie

i sprawa wysylam dane do bazy w formie
$message oraz $nick to jak zrobic by wyswietlalo tak jak dalem na obrazku ?


Nie bardzo rozumiem o co Ci chodzi smile.gif Dane z post wyświetlasz przez:
  1. $_POST['moja_zmienna'];
  2. #wyswietlenie
  3. echo htmlspecialchars($_POST['moja_zmienna']);
muflon
Witam smile.gif

Na początku tworzysz sobie szablon tak jak ma to wyglądać.

Następnie za pomocą pętli while wypisujesz wszystkie rekordy.

Prtzykład:

  1. <?php
  2. $zapytanie = "SELECT * FROM wiadomosci");
  3.  
  4. while($rekord == mysql_fetch_assoc($zapytanie){
  5.  
  6. echo "Treść wiadomości ". $rekord['tresc'];// Słowo treść jeżeli Twoje wyciągane pole z bazy tak się nazywa
  7. echo "Autor wiadomości ".$rekord['autor'];// Słowo autor jeżeli Twoje wyciągane pole z bazy tak się nazywa
  8.  
  9. }
  10. ?>


Jeżeli pomogłem to się ciesze smile.gif
filipsiu
dobra, mam już wygląd tabelki teraz jak dalej?

kawałek kodu:

  1. <div id="tabelka">
  2. $wynik = mysql_query("SELECT * FROM questions")
  3. or die('Błąd zapytania');
  4.  
  5. while($row=mysql_fetch_array($wynik))
  6. {
  7. echo $row['question'];
  8. echo $row['nick'];
  9. }
  10. </div>

i mam problem gdyż nie wiem jak zrobić by to wyglądało tak jak na screenie - treść normalnie a nick jak podpis (lewy dolny róg)
Szymciosek
Wyświetla Ci już dobrze dane ?
Jeśli tak to musisz zrobić coś takiego np:
w pętli oczywiście tam gdzie pobierasz dane

  1. echo "<div id='content'><div id='message'>$row['question']</div><div id='nick'>$row['nick']</div></div>


masz tutaj już podstawę jakichś tam ramek, które mają w sobie te wszystkie dane, teraz jakoś musisz to wystylizować w CSS oraz jakoś je ustawiać pod sobą czy jak tam chcesz.
filipsiu
no właśnie nie mam takie coś:

  1. <div id="pytanie">
  2. <div id="tabelka">
  3. <?php
  4. $wynik = mysql_query("SELECT * FROM questions") or die(mysql_error());
  5. while($row = mysql_fetch_array($wynik))
  6. {
  7. echo $row['question'];
  8.  
  9. ?>
  10. <div id="tabelka-podpis">
  11. <?php
  12. echo $row['nick'];
  13. }
  14. ?>
  15. </div>
  16. </div>


i wszystkie rekordy wyświetla mi w 1 tabelce ;/
Dominator
Przepraszam, że się wtrącę, ale mysql_ "śmierdzi", polecam PDO.
filipsiu
@up to niech śmierdzi jest najpopularniejszym systemem zapisu smile.gif

@edit:
to ma ktoś pomysł jak "oddzielić" te tabelki ?
viking
Ciekawe czy będzie równie popularny jak rzesze pseudo koderów php zostaną z ręką w nocniku jak to w końcu wyleci ze źródeł. Inna sprawa to cierpisz na divitis. Są jeszcze takie elementy jak p, span. A tu można zrobić np.

.wiadomosc {position: relative}
.podpis {position: absolute; bottom: 0}

Chociaż trochę przekombnowane. Wystarczą marginesy. Do tego elementu wrzucasz $row['x']. Ale to trzeba kombnować i trochę się pobawić zamiast ze wszystkim pisać od razu na forum.
filipsiu
@viking nie rób tu off-topu robię stronę jak mi najwygodniej, a na mój problem nie odpowiedziałeś chcę się dowiedzieć czemu przy każdym rekordzie nie tworzy mi owej tabelki tylko wszystko wali w 1
Szymciosek
Jak ma Ci tworzyć, skoro nie dałeś tabelek w pętli ? daj do tej pętli taki kod jaki CI wysłałem wcześniej. z tym echo...
filipsiu
sry ze taki zmul ale cos mi nie pasuje,
moj obecny kod:
  1. $wynik = mysql_query("SELECT * FROM questions") or die(mysql_error());
  2. while($row = mysql_fetch_array($wynik))
  3. {
  4. echo $row['question'];
  5.  
  6. ?>
  7. <div id="tabelka-podpis">
  8. <?php
  9. echo $row['nick'];
  10. }

a twoj kod:
  1. echo "<div id='content'><div id='message'>$row['question']</div><div id='nick'>$row['nick']</div></div>";

cos mi tu nie pasuje ale nie wiem co, jestem juz zmeczony
Szymciosek
  1. $wynik = mysql_query("SELECT * FROM questions")
  2. or die('Błąd zapytania');
  3.  
  4. while($row=mysql_fetch_array($wynik))
  5. {
  6. echo "<div id='content'><div id='message'>$row['question']</div><div id='nick'>$row['nick']</div></div>";
  7. }


czegoś takiego spróbuj i zajrzyj do kodu źródłowego wygenerowanej strony, a będziesz widział co się stanie.
Po odpowiedniej stylizacji tych znaczników otrzymasz kod html, za każdym razem z osobą ramką.
filipsiu
@szymciosek twoje divy mi sie nie zgadzaja zrobilem cos takiego:
  1. echo "<div id='pytanie'><div id='tabelka'>$row['question']<div id='tabelka-podpis'>$row['nick']</div></div></div>";
dobrze ?
@edit:

taki kod:
  1. <?php
  2. $wynik = mysql_query("SELECT * FROM questions") or die(mysql_error());
  3. while($row = mysql_fetch_array($wynik))
  4. {
  5. echo "<div id='pytanie'><div id='tabelka'>$row['question']<div id='tabelka-podpis'>$row['nick']</div></div></div>";
  6. }
  7. ?>

i error:
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in D:\wamp\www\Q&A\questions.php on line 30
a wydaje mi sie ze jest dobrze
Szymciosek
  1. echo "<div id='pytanie'><div id='tabelka'>$row['question']</div><div id='tabelka-podpis'>$row['nick']</div></div>";


tak byłoby prawidłowo już prędzej.

Jeśli chcesz, to już w ostateczności mogę pomyśleć nad prostym przykładem.
filipsiu
nadal to samo
Dominator
Cytat(filipsiu @ 18.09.2012, 19:45:08 ) *
@up to niech śmierdzi jest najpopularniejszym systemem zapisu smile.gif

@edit:
to ma ktoś pomysł jak "oddzielić" te tabelki ?


A co to ma do rzeczy, że jest najpopularniejszy ?
Tutaj chodzi o bezpieczeństwo ...
Szymciosek
wklep sobie chociażby takie coś i zobaczysz jak to działa, a wtedy może pojmiesz jak masz zrobić swoje.

  1. <?php
  2.  
  3. $names = array(
  4. 'Jan', 'Maciej', 'Kamil',
  5. );
  6.  
  7. $entries = array(
  8. 'Czesc jestem Jan', 'Czesc tu Maciek', 'Siemanko, Kamil',
  9. );
  10.  
  11. //names length == entries length
  12. //nie zwracaj uwagi na array'e, ze względu na pobrane dane w Twoim przypadku z bazy danych
  13.  
  14. $namesLen = count($names);
  15. //$entriesLen = count($entries);
  16.  
  17. for ($i = 0; $i < $namesLen; $i++)
  18. {
  19. $name = $names[$i];
  20. $entry = $entries[$i];
  21.  
  22. echo "<style type='text/css'>
  23. #content {
  24. background: #00ff00;
  25. margin: 20px;
  26. }
  27. </style>";
  28. echo "<div id='content'><div id='message'>$entry</div><div id='name'>$name</div></div>";
  29. }


PDO staje się coraz bardziej popularne, więc chyba warto przysiąść i się tego nauczyć, skoro coraz częściej jest wykorzystywane.
abort
Cytat(filipsiu @ 18.09.2012, 20:35:42 ) *
sry ze taki zmul ale cos mi nie pasuje,
moj obecny kod:
  1. $wynik = mysql_query("SELECT * FROM questions") or die(mysql_error());
  2. while($row = mysql_fetch_array($wynik))
  3. {
  4. echo $row['question'];
  5.  
  6. ?>
  7. <div id="tabelka-podpis">
  8. <?php
  9. echo $row['nick'];
  10. }


Nie wiem czy Cię dobrze rozumiem, ale z tego kodu co widzę, to nie wiesz, co chcesz zrobić.
Przyjmij do wiadomości, że zmienna $row istnieje TYLKO WEWNĄTRZ PĘTLI while().
Przejrzyj forum, już jednej osobie tłumaczyłem to obszernie.
filipsiu
to zgodnie z twoja wypowiedzia ten ponizszy kod powinien dzialac
echo "<div id='pytanie'><div id='tabelka'>$row['question']<div id='tabelka-podpis'>$row['nick']</div></div></div>";
filipsiu
@muflon
mam taki kod ale nie wiem czemu on nie działa:
  1. $wynik = mysql_query("SELECT * FROM questions") or die(mysql_error());
  2. while($row = mysql_fetch_array($wynik))
  3. {
  4.  
  5.  
  6. echo "<div id='pytanie'><div id='tabelka'>$row['question']<div id='tabelka-podpis'>$row['nick']</div></div></div>";
  7. }
Yorki
Cytat(filipsiu @ 18.09.2012, 20:44:11 ) *
@muflon
mam taki kod ale nie wiem czemu on nie działa:
  1. $wynik = mysql_query("SELECT * FROM questions") or die(mysql_error());
  2. while($row = mysql_fetch_array($wynik))
  3. {
  4.  
  5.  
  6. echo "<div id='pytanie'><div id='tabelka'>$row['question']<div id='tabelka-podpis'>$row['nick']</div></div></div>";
  7. }


A dlaczego miałby działać? Obiekty i tablice nie możesz w taki sposób używać.. Jak już to:
  1. echo "<div id='pytanie'><div id='tabelka'>{$row['question']}<div id='tabelka-podpis'>{$row['nick']}</div></div></div>";
abort
Temat: Wyswietlanie rekordow z bazy mysql
Temat: CSSMySQLPHPWyswietlanie danych w tabelce z css

Zdecydujcie się kontynuować dyskusję w jednym miejscu, bo mam deja vu...

A do moderatorów prośba o połączenie wątków..
muflon
Ja się przy was nowego php naucze tongue.gif . Od kiedy mysql_fetch_array to np 'nick' ;D array to integer same liczby assoc to po nazwach pól smile.gif

  1. $wynik = mysql_query("SELECT * FROM questions") or die(mysql_error());
  2. while($row = mysql_fetch_assoc($wynik))
  3. {
  4.  
  5. $nick = $row['nick'];
  6. echo "<div id='pytanie'><div id='tabelka'>$row['question']<div id='tabelka-podpis'>".$nick."</div></div></div>";
  7. }
scanner
Połączyłem dwa tematy zgłoszone przez @abort
nospor
Cytat
Ja się przy was nowego php naucze . Od kiedy mysql_fetch_array to np 'nick' ;D array to integer same liczby assoc to po nazwach pól
Dziecko drogie.... zanim zaczniesz głosić herezje w tak prostych i oczywistych sprawach, zaglądaj wpierw do manuala....
http://php.net/manual/en/function.mysql-fetch-array.php
filipsiu
Po tylu wypowiedziach stwierdzam że temat do zamknięcia rozwiązaniem był post Yorki'ego
i jego:
  1. echo "<div id='pytanie'><div id='tabelka'>{$row['question']}<div id='tabelka-podpis'>{$row['nick']}</div></div></div>";

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.