Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][SQL]pobieranie danych z tabel
Forum PHP.pl > Forum > Przedszkole
jaca121212
Witam mam 2 tabele takiej samej konstrukcji tylko innej nazwy pierwsza to poszukuje a druga to zatrudnie i chciałbym pobrać wszystkie dane z tych tabeli i wyświetlić je na stronie jeden pod drugim
  1. CREATE TABLE IF NOT EXISTS `zatrudnie` (
  2. `id_zatrudnie` int(255) NOT NULL AUTO_INCREMENT,
  3. `id_usera` text NOT NULL,
  4. `temat` text NOT NULL,
  5. `tresc` text NOT NULL,
  6. `data_dodania` datetime NOT NULL,
  7. `zdjecie` text NOT NULL,
  8. `video` text NOT NULL,
  9. `email` text NOT NULL,
  10. `kod_usuniecia` text NOT NULL,
  11. `ip` varchar(30) NOT NULL,
  12. PRIMARY KEY (`id_zatrudnie`)
  13. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;


jeśli zrobiłem to tak:
  1. SELECT * FROM poszukuje, zatrudnie

to pokazują się z tabeli zatrudnie dane a z poszukuje nic i nie mam pomyslu jak zrobić takie zapytanie

a jak dałem zapytanie do bazy to pokazało się to w jednej lini (są pobrane dane z dwóch tabel )
Pyton_000
Źle, powinna być 1 tabela z kolumną która mówi czy zatrudnienie czy poszukuję.

  1. SELECT * FROM zatrudnie
  2. UNION
  3. SELECT * FROM poszukuje
jaca121212
Cytat(Pyton_000 @ 25.01.2016, 09:38:41 ) *
Źle, powinna być 1 tabela z kolumną która mówi czy zatrudnienie czy poszukuję.

  1. SELECT * FROM zatrudnie
  2. UNION
  3. SELECT * FROM poszukuje

dzięki pomogłeś z tym zapytaniem ale mam błąd w kolejnym otóż gdy dałem do bazy te zapytanie pokazało mi w osobnych liniach te rekordy ale gdy dałem na stronę to nadal jest to samo wyświetla mi z tabeli zatrudnienia
  1. $resultat=$polaczenie->query("SELECT * FROM zatrudnie UNION SELECT * FROM poszukuje ");
  2. $wynik=mysqli_fetch_array($resultat);
  3. echo'<article id="wyswietlanie_tematu">';
  4. echo"<h6>Cena: ".$wynik['cena']." Zł</h6>";
  5. echo'<div id="temat">'.$wynik['temat'].'<a href="strona.php?strona='.$wynik['temat'].'"></div>';
  6. echo"<p>".$wynik['tresc']."</p>";
  7. echo"<span>Dodano: ".$wynik['data_dodania']."</span>";
  8.  
  9. echo'<div>Telefon: <a href="'.$wynik['telefn'].'">'.$wynik['telefon'].'</a></div>';
  10. echo'<div id="wyswietlanie_zdjec">Zdjęcia:';
  11. if(!empty($wynik['zdjecie'])){
  12. echo "<img src='{$wynik['zdjecie']}'/>";
  13. }
  14. if(!empty($wynik['video'])){
  15. echo '<iframe src="https://www.youtube.com/embed/'.$wynik['youtube'].'" frameborder="0" allowfullscreen></iframe>';
  16. }
  17. echo"</div>";
  18. echo"</article>";
nospor
No wlasnie, sam napisales, ze jak dales to do bazy to wyswietlilo ci to w osobnych liniach. Na stronie zas pobierasz tylko pierwsza linie (pierwszy rekord) i dziwis sie, ze wyswetla sie tylko jedna linia...

mysqli_fetch_array($resultat); - to pobiera tylko jedna linie (jeden rekord). Jak chcesz by pobralo wszystkie, masz to uzyc w petli WHILE. w manualu masz to podane jak to zrobic
jaca121212
Cytat(nospor @ 25.01.2016, 12:43:45 ) *
No wlasnie, sam napisales, ze jak dales to do bazy to wyswietlilo ci to w osobnych liniach. Na stronie zas pobierasz tylko pierwsza linie (pierwszy rekord) i dziwis sie, ze wyswetla sie tylko jedna linia...

mysqli_fetch_array($resultat); - to pobiera tylko jedna linie (jeden rekord). Jak chcesz by pobralo wszystkie, masz to uzyc w petli WHILE. w manualu masz to podane jak to zrobic

ok dzięki przeanalizowałem kod jeszcze raz i znalazłem problem właśnie z ta pętlą while while(mysqli_fetch_array($resultat)){
}

Już nie będę zakładał nowego tematu bo temat byłby bardzo podobny ale przejdźmy do sedna.
ma teraz problem z paginacją strony a dokładniej zliczaniu z dwóch baz wszystkich rekordów. W sumie obie bazy maja 5 wpisów a na stronie pokazuję się 3 wpisy tak jakby jeden z 1 tabeli a dwa z drugiej tabeli nie do końca wiem jak ten problem rozwiązać. Podaje niżej kod
  1. $result = $polaczenie->query("SELECT COUNT(*) as all_posts from poszukuje union SELECT COUNT(*) as all_posts from zatrudnie");
  2.  
  3. $row = mysqli_fetch_array($result);
  4. extract($row);
  5.  
  6. $onpage = 1; //ilość newsów na stronę
  7. $navnum = 7; //ilość wyświetlanych numerów stron, ze względów estetycznych niech będzie to liczba nieparzysta
  8. $allpages = ceil($all_posts/$onpage); //wszysttkie strony to zaokrąglony w górę iloraz wszystkich postów i ilości postów na stronę
  9.  
  10. //sprawdzamy poprawnośc przekazanej zmiennej $_GET['page'] zwróć uwage na $_GET['page'] > $allpages
  11. if(!isset($_GET['page']) or $_GET['page'] > $allpages or !is_numeric($_GET['page']) or $_GET['page'] <= 0){
  12. $page = 1;
  13. }else{
  14. $page = $_GET['page'];
  15. }
  16. $limit = ($page - 1) * $onpage; //określamy od jakiego newsa będziemy pobierać informacje z bazy danych
  17.  
  18.  
  19.  
  20. $resultat=$polaczenie->query("SELECT * FROM poszukuje limit $limit, $onpage UNION SELECT * FROM zatrudnie limit $limit, $onpage ");
  21.  
  22. while($wynik=mysqli_fetch_array($resultat)){
  23. echo'<article id="wyswietlanie_tematu">';
  24. echo"<h6>Cena: ".$wynik['cena']." Zł</h6>";
  25. echo'<div id="temat">'.$wynik['temat'].'<a href="strona.php?strona='.$wynik['temat'].'"></div>';
  26. echo"<p>".substr($wynik['tresc'],0,250)."</p>";
  27. echo"<span>Dodano: ".$wynik['data_dodania']."</span>";
  28. echo'<div>Telefon: <a href="'.$wynik['telefn'].'">'.$wynik['telefon'].'</a></div>';
  29. echo'<div id="wyswietlanie_zdjec">Zdjęcia:';
  30. if(!empty($wynik['zdjecie'])){
  31. echo "<img src='{$wynik['zdjecie']}'/>";
  32. }
  33. if(!empty($wynik['video'])){
  34. echo '<iframe src="https://www.youtube.com/embed/'.$wynik['video'].'" frameborder="0" allowfullscreen></iframe>';
  35. }
  36. echo"</div>";
  37.  
  38. echo"</article>";
  39. }
  40.  
  41. //zabezpieczenie na wypadek gdyby ilość stron okazała sie większa niż ilośc wyświetlanych numerów stron
  42. if($navnum > $allpages){
  43. $navnum = $allpages;
  44. }
  45.  
  46. //ten fragment może być trudny do zrozumienia
  47. //wyliczane są tu niezbędne dane do prawidłowego zbudowania pętli
  48. //zmienne są bardzo opisowę więc nie będę ich tłumaczyć
  49. $forstart = $page - floor($navnum/2);
  50. $forend = $forstart + $navnum;
  51.  
  52. if($forstart <= 0){ $forstart = 1; }
  53.  
  54. $overend = $allpages - $forend;
  55.  
  56. if($overend < 0){ $forstart = $forstart + $overend + 1; }
  57.  
  58. //ta linijka jest ponawiana ze względu na to, że $forstart mogła ulec zmianie
  59. $forend = $forstart + $navnum;
  60. //w tych zmiennych przechowujemy numery poprzedniej i następnej strony
  61. $prev = $page - 1;
  62. $next = $page + 1;
  63. //nie wpisujemy "sztywno" nazwy skryptu, pobieramy ja od serwera
  64. $script_name = $_SERVER['SCRIPT_NAME'];
  65.  
  66. //ten fragment z kolei odpowiada za wyślwietenie naszej nawigacji
  67. echo "<div id=\"menu_stron\"><ul>";
  68. //if($page > 1) echo "<li><a href=\"".$script_name."?page=".$prev."\"></a></li>";//poprzednia
  69. if ($forstart > 1) echo "<li><a href=\"".$script_name."?page=1\">1</a></li>";
  70. if ($forstart > 2) echo "<li>...</li>";
  71. for($forstart; $forstart < $forend; $forstart++){
  72. if($forstart == $page){
  73. echo "<li class=\"current\">";
  74. }else{
  75. echo "<li>";
  76. }
  77. echo "<a href=\"".$script_name."?page=".$forstart."\">".$forstart."</a></li>";
  78. }
  79. if($forstart < $allpages) echo "<li>...</li>";
  80. if($forstart - 1 < $allpages) echo "<li><a href=\"".$script_name."?page=".$allpages."\">".$allpages."</a></li>";
  81. //if($page < $allpages) echo "<li><a href=\"".$script_name."?page=".$next."\"></a></li>";//nastepna
  82. echo "</ul></div><div class=\"clear\">";
  83. echo "<h4>Strona $page z $allpages</h4>";
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.