Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ PHP _ Wyswietlanie rekordow z bazy mysql

Napisany przez: filipsiu 18.09.2012, 17:27:53

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:
http://imageshack.us/photo/my-images/685/ssphp.jpg/

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

Napisany przez: 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:

http://imageshack.us/photo/my-images/685/ssphp.jpg/

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

Napisany przez: b4rt3kk 18.09.2012, 17:48:48

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.

Napisany przez: filipsiu 18.09.2012, 17:51:11

nie za bardzo wiem ponieważ jeszczy mysql'a nie tykałem
wiem tyle że:

  1. $zapytanie = http://www.php.net/mysql_query('select * from rekordy');
  2. while($rekord = http://www.php.net/mysql_fetch_assoc($zapytanie))
  3. {
  4. http://www.php.net/echo $rekord['tytul'];
  5. http://www.php.net/echo "<br>";
  6. }

i tu wyświetla $message$nick (tak mi sie wydaje) jako 1 a nie wiem jak to rozdzielić

Napisany przez: Szymciosek 18.09.2012, 17:55:45

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=http://www.php.net/mysql_fetch_array($wynik))
  2. {
  3. http://www.php.net/echo $row['wartosc'];
  4. }


ogólnie tak to działa
możesz dać name = $row['name'];
zależy jak masz bazę skonstruowaną.

Napisany przez: filipsiu 18.09.2012, 17:55:54

@Szymciosek a może jakaś podstawa ? Bo jak już mówiłem nie za bardzo jeszcze znam mysql


@edit:
coś takiego?:

  1. while($row=http://www.php.net/mysql_fetch_array($wynik))
  2. {
  3. http://www.php.net/echo $row['message];
  4. echo $row['nick'];
  5. }


?

Napisany przez: Ulysess 18.09.2012, 18:07:21

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. http://www.php.net/echo '
  2. <div>
  3. <div>'.$query['wiadomosc'].'</div>
  4. <div>$query['autor']</div>
  5. </div>
  6.  
  7. ';
  8.  


oczywiście to musi być ostylowane żeby przybrało taka forme jaką chcesz

Napisany przez: Yorki 18.09.2012, 18:01:59

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:

http://imageshack.us/photo/my-images/685/ssphp.jpg/

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. http://www.php.net/echo http://www.php.net/htmlspecialchars($_POST['moja_zmienna']);

Napisany przez: muflon 18.09.2012, 18:07:11

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 == http://www.php.net/mysql_fetch_assoc($zapytanie){
  5.  
  6. http://www.php.net/echo "Treść wiadomości ". $rekord['tresc'];// Słowo treść jeżeli Twoje wyciągane pole z bazy tak się nazywa
  7. http://www.php.net/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

Napisany przez: filipsiu 18.09.2012, 18:07:47

dobra, mam już wygląd tabelki teraz jak dalej?

kawałek kodu:

  1. <div id="tabelka">
  2. $wynik = http://www.php.net/mysql_query("SELECT * FROM questions")
  3. or http://www.php.net/die('Błąd zapytania');
  4.  
  5. while($row=http://www.php.net/mysql_fetch_array($wynik))
  6. {
  7. http://www.php.net/echo $row['question'];
  8. http://www.php.net/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)

Napisany przez: Szymciosek 18.09.2012, 18:15:05

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. http://www.php.net/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.

Napisany przez: filipsiu 18.09.2012, 18:15:59

no właśnie nie mam takie coś:

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


i wszystkie rekordy wyświetla mi w 1 tabelce ;/

Napisany przez: Dominator 18.09.2012, 18:42:47

Przepraszam, że się wtrącę, ale mysql_ "śmierdzi", polecam PDO.

Napisany przez: filipsiu 18.09.2012, 18:45:08

@up to niech śmierdzi jest najpopularniejszym systemem zapisu smile.gif

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

Napisany przez: viking 18.09.2012, 18:50:40

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.

Napisany przez: filipsiu 18.09.2012, 19:11:37

@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

Napisany przez: Szymciosek 18.09.2012, 19:16:10

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

Napisany przez: filipsiu 18.09.2012, 19: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. http://www.php.net/echo $row['nick'];
  10. }

a twoj kod:
  1. http://www.php.net/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

Napisany przez: Szymciosek 18.09.2012, 19:44:36

  1. $wynik = http://www.php.net/mysql_query("SELECT * FROM questions")
  2. or http://www.php.net/die('Błąd zapytania');
  3.  
  4. while($row=http://www.php.net/mysql_fetch_array($wynik))
  5. {
  6. http://www.php.net/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ą.

Napisany przez: filipsiu 18.09.2012, 19:45:56

@szymciosek twoje divy mi sie nie zgadzaja zrobilem cos takiego:

  1. http://www.php.net/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 = http://www.php.net/mysql_query("SELECT * FROM questions") or http://www.php.net/die(http://www.php.net/mysql_error());
  3. while($row = http://www.php.net/mysql_fetch_array($wynik))
  4. {
  5. http://www.php.net/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

Napisany przez: Szymciosek 18.09.2012, 19:47:20

  1. http://www.php.net/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.

Napisany przez: filipsiu 18.09.2012, 19:48:08

nadal to samo

Napisany przez: Dominator 18.09.2012, 19:55:28

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

Napisany przez: Szymciosek 18.09.2012, 19:57:12

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 = http://www.php.net/array(
  4. 'Jan', 'Maciej', 'Kamil',
  5. );
  6.  
  7. $entries = http://www.php.net/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 = http://www.php.net/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. http://www.php.net/echo "<style type='text/css'>
  23. #content {
  24. background: #00ff00;
  25. margin: 20px;
  26. }
  27. </style>";
  28. http://www.php.net/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.

Napisany przez: abort 18.09.2012, 20:05:02

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. http://www.php.net/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.

Napisany przez: filipsiu 18.09.2012, 20:09:45

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>";

Napisany przez: filipsiu 18.09.2012, 20:44:11

@muflon
mam taki kod ale nie wiem czemu on nie działa:

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

Napisany przez: Yorki 18.09.2012, 21:24:12

Cytat(filipsiu @ 18.09.2012, 20:44:11 ) *
@muflon
mam taki kod ale nie wiem czemu on nie działa:
  1. $wynik = http://www.php.net/mysql_query("SELECT * FROM questions") or http://www.php.net/die(http://www.php.net/mysql_error());
  2. while($row = http://www.php.net/mysql_fetch_array($wynik))
  3. {
  4.  
  5.  
  6. http://www.php.net/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. http://www.php.net/echo "<div id='pytanie'><div id='tabelka'>{$row['question']}<div id='tabelka-podpis'>{$row['nick']}</div></div></div>";

Napisany przez: abort 18.09.2012, 21:40:58

http://forum.php.pl/Wyswietlanie_rekordow_z_bazy_mysql_t205351.html
http://forum.php.pl/CSSMySQLPHPWyswietlanie_danych_w_tabelce_z_css_t205349.html

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

A do moderatorów prośba o połączenie wątków..

Napisany przez: muflon 18.09.2012, 22:52:26

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 = http://www.php.net/mysql_query("SELECT * FROM questions") or http://www.php.net/die(http://www.php.net/mysql_error());
  2. while($row = http://www.php.net/mysql_fetch_assoc($wynik))
  3. {
  4.  
  5. $nick = $row['nick'];
  6. http://www.php.net/echo "<div id='pytanie'><div id='tabelka'>$row['question']<div id='tabelka-podpis'>".$nick."</div></div></div>";
  7. }

Napisany przez: scanner 19.09.2012, 09:57:11

Połączyłem dwa tematy zgłoszone przez @abort

Napisany przez: nospor 19.09.2012, 10:17:37

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

Napisany przez: filipsiu 19.09.2012, 13:11:50

Po tylu wypowiedziach stwierdzam że temat do zamknięcia rozwiązaniem był post Yorki'ego
i jego:

  1. http://www.php.net/echo "<div id='pytanie'><div id='tabelka'>{$row['question']}<div id='tabelka-podpis'>{$row['nick']}</div></div></div>";


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)