jak wyciągnąć temat z bazy
jak wyciągnąć temat z bazy
chciałbym wyciągnąć temat z bazy i przenieść do innej (inne forum). jak to zrobić? jakie zapytanie do bazy żeby wybrał odpowiedni temat wraz z postami?
Ponieważ w takim zapytaniu musi być podane polecenie WHERE podaj co wiesz o tym temacie. jego id czy może jakiś czas. daj jakiś punkt zaczepienia 
No i oczywiście w tej bazie docelowej nie może być już tematów i postów o tym samym id które będziesz kopiował bo wyjdą problemy
No i oczywiście w tej bazie docelowej nie może być już tematów i postów o tym samym id które będziesz kopiował bo wyjdą problemy
Zapraszam również na moje forum: www.indianie.info
www.sklepbezglutek.pl - zapraszam do sklepu z żywnością bezglutenową i niskobiałkową. Makarony, chleby, zdrowa żywność. Wysyłane od ręki bez ryzyka utraty świeżości w trakcie dostarczania.
www.sklepbezglutek.pl - zapraszam do sklepu z żywnością bezglutenową i niskobiałkową. Makarony, chleby, zdrowa żywność. Wysyłane od ręki bez ryzyka utraty świeżości w trakcie dostarczania.
więc jest tak:
z tabeli phpbb2_topics wyciągam nazwe tematu (jego topic_id) - prosta sprawa
ale co dalej
z tabeli phpbb2_posts wyciągnąć muszę topic_id a z tabeli phpbb2_posts_text muszę wyciągnąć post_id ale tylko te ktore są w tabeli phpbb2_posts przypisane do konkretnego tematu.
Więc jakie zadać zapytanie aby z tabeli phpbb2_posts_text wyciągnąć tylko posty tematu x?
z tabeli phpbb2_topics wyciągam nazwe tematu (jego topic_id) - prosta sprawa
ale co dalej
z tabeli phpbb2_posts wyciągnąć muszę topic_id a z tabeli phpbb2_posts_text muszę wyciągnąć post_id ale tylko te ktore są w tabeli phpbb2_posts przypisane do konkretnego tematu.
Więc jakie zadać zapytanie aby z tabeli phpbb2_posts_text wyciągnąć tylko posty tematu x?
zakładam w przykładach że id tematu to 10
najpierw jak masz już konkretne id z phpbb2_topics
z tabeli phpbb2_posts sprawdzasz wpisy gdzie topic_id jest takie samo jak znalezione z 1 zapytania
mając id_post z tabeli phpbb2_posts_text wyciągasz zapytania gdzie id_post jest takie samo jak to z 2 zapytania
chyba to zagmatwane
to powinno ci wyjaśnić:
najpierw jak masz już konkretne id z phpbb2_topics
z tabeli phpbb2_posts sprawdzasz wpisy gdzie topic_id jest takie samo jak znalezione z 1 zapytania
mając id_post z tabeli phpbb2_posts_text wyciągasz zapytania gdzie id_post jest takie samo jak to z 2 zapytania
chyba to zagmatwane
Kod: Zaznacz cały
SELECT * FROM `phpbb_topics` WHERE `topic_id` = 10 Kod: Zaznacz cały
SELECT * FROM `phpbb_posts` WHERE `post_id` = 10 Kod: Zaznacz cały
SELECT * FROM `phpbb_posts_text` WHERE `post_id` = 10Zapraszam również na moje forum: www.indianie.info
www.sklepbezglutek.pl - zapraszam do sklepu z żywnością bezglutenową i niskobiałkową. Makarony, chleby, zdrowa żywność. Wysyłane od ręki bez ryzyka utraty świeżości w trakcie dostarczania.
www.sklepbezglutek.pl - zapraszam do sklepu z żywnością bezglutenową i niskobiałkową. Makarony, chleby, zdrowa żywność. Wysyłane od ręki bez ryzyka utraty świeżości w trakcie dostarczania.
troche musiałem pomyśleć ale wszystko się zgadza tylko czy z tego mam rozumieć że jeżeli temat ma 100 postów to muszę zadać 100 zapytaź czyli np:
SELECT * FROM `phpbb_posts_text` WHERE `post_id` = 13
SELECT * FROM `phpbb_posts_text` WHERE `post_id` = 16
SELECT * FROM `phpbb_posts_text` WHERE `post_id` = 44
itd aż do 100.
Dobrze zrozumiałem? Jeżeli tak to jest to oczywiście rozwiązanie ale trochę czasochłonne.
W związku z tym czy jest jakieś zapytanie do bazy które pozwoli jednym zapytaniem wydobyć z tabeli phpbb_posts_text wszystkie posty należące do tematu x ?
SELECT * FROM `phpbb_posts_text` WHERE `post_id` = 13
SELECT * FROM `phpbb_posts_text` WHERE `post_id` = 16
SELECT * FROM `phpbb_posts_text` WHERE `post_id` = 44
itd aż do 100.
Dobrze zrozumiałem? Jeżeli tak to jest to oczywiście rozwiązanie ale trochę czasochłonne.
W związku z tym czy jest jakieś zapytanie do bazy które pozwoli jednym zapytaniem wydobyć z tabeli phpbb_posts_text wszystkie posty należące do tematu x ?
zrób sobie plik posty.php i w jego zawartość wpisz:
[php]<?php
$sql_conn = mysql_connect('localhost', 'login', 'haslo') or die('Brak połączenia');
$wybr = mysql_select_db('nazwa_bazy') or die('Błąd podczas wybierania bazy sql');
$id = 1167; //id tematu z którego szukamy postów
$sql = "SELECT * FROM `phpbb_topics` WHERE `topic_id` = $id";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
$sql2 = "SELECT * FROM `phpbb_posts` WHERE `topic_id` = $id";
$result2 = mysql_query($sql2);
while($row2 = mysql_fetch_array($result2))
{
$sql3 = "SELECT * FROM `phpbb_posts_text` WHERE `post_id` = ".$row2['post_id'];
$result3 = mysql_query($sql3);
$row3 = mysql_fetch_array($result3);
echo $row3['post_text']."<br><br><br>";
}
?>[/php]
uzupełnij swoimi danych (host, dane dostępowe i nazwę bazy) potem wpisz id tematu z którego chcesz posty i uruchom to w przeglądarce dostaniesz piękny spis postów.
oczywiście co i jak ma się wyświetlać możesz sobie zmieniać. ja wybrałem najprościejsze rozwiązanie
ewentualnie można dodawać do polecenia echo taki tekst aby wyświetlał juz gotowe zapytania sql. które tylko sobie skopiujesz i uruchomisz w nowym phpmyadminie
Rozwiązanie nie jest najlepsze bo polecenie sql wsadziłem w pętlę ale tak najszybciej mi się pisało.
EDIT
przykład: http://www.indianie.info/posty.php
[php]<?php
$sql_conn = mysql_connect('localhost', 'login', 'haslo') or die('Brak połączenia');
$wybr = mysql_select_db('nazwa_bazy') or die('Błąd podczas wybierania bazy sql');
$id = 1167; //id tematu z którego szukamy postów
$sql = "SELECT * FROM `phpbb_topics` WHERE `topic_id` = $id";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
$sql2 = "SELECT * FROM `phpbb_posts` WHERE `topic_id` = $id";
$result2 = mysql_query($sql2);
while($row2 = mysql_fetch_array($result2))
{
$sql3 = "SELECT * FROM `phpbb_posts_text` WHERE `post_id` = ".$row2['post_id'];
$result3 = mysql_query($sql3);
$row3 = mysql_fetch_array($result3);
echo $row3['post_text']."<br><br><br>";
}
?>[/php]
uzupełnij swoimi danych (host, dane dostępowe i nazwę bazy) potem wpisz id tematu z którego chcesz posty i uruchom to w przeglądarce dostaniesz piękny spis postów.
oczywiście co i jak ma się wyświetlać możesz sobie zmieniać. ja wybrałem najprościejsze rozwiązanie
ewentualnie można dodawać do polecenia echo taki tekst aby wyświetlał juz gotowe zapytania sql. które tylko sobie skopiujesz i uruchomisz w nowym phpmyadminie
Rozwiązanie nie jest najlepsze bo polecenie sql wsadziłem w pętlę ale tak najszybciej mi się pisało.
EDIT
przykład: http://www.indianie.info/posty.php
Zapraszam również na moje forum: www.indianie.info
www.sklepbezglutek.pl - zapraszam do sklepu z żywnością bezglutenową i niskobiałkową. Makarony, chleby, zdrowa żywność. Wysyłane od ręki bez ryzyka utraty świeżości w trakcie dostarczania.
www.sklepbezglutek.pl - zapraszam do sklepu z żywnością bezglutenową i niskobiałkową. Makarony, chleby, zdrowa żywność. Wysyłane od ręki bez ryzyka utraty świeżości w trakcie dostarczania.
w tabeli phpbb_post masz tylko id autora: poster_id musisz dodać sobie jeszcze aby po tym id wybierał z tabeli users login. chyba że starcza ci samo id. próbuj sam ewentualnie daj znać to coś skrobnę.
EDIT
mój 2000 post. okrągłą liczba
EDIT
mój 2000 post. okrągłą liczba
Zapraszam również na moje forum: www.indianie.info
www.sklepbezglutek.pl - zapraszam do sklepu z żywnością bezglutenową i niskobiałkową. Makarony, chleby, zdrowa żywność. Wysyłane od ręki bez ryzyka utraty świeżości w trakcie dostarczania.
www.sklepbezglutek.pl - zapraszam do sklepu z żywnością bezglutenową i niskobiałkową. Makarony, chleby, zdrowa żywność. Wysyłane od ręki bez ryzyka utraty świeżości w trakcie dostarczania.
sorki zapomniałem sobie o tobie 
plik przygotowałem ale wyszło mi z głowy go podać:
[php]<?php
$sql_conn = mysql_connect('localhost', 'login', 'haslo') or die('Brak połączenia');
$wybr = mysql_select_db('nazwa_bazy') or die('Błąd podczas wybierania bazy sql');
$id = 1167; //id tematu z którego szukamy postów
$sql = "SELECT * FROM `phpbb_topics` WHERE `topic_id` = $id";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
$sql2 = "SELECT * FROM `phpbb_posts` WHERE `topic_id` = $id";
$result2 = mysql_query($sql2);
while($row2 = mysql_fetch_array($result2))
{
$sql3 = "SELECT * FROM `phpbb_posts_text` WHERE `post_id` = ".$row2['post_id'];
$result3 = mysql_query($sql3);
$row3 = mysql_fetch_array($result3);
$sql4 = "SELECT username FROM `phpbb_users` WHERE `user_id` = ".$row2['poster_id'];
$result4 = mysql_query($sql4);
$row4 = mysql_fetch_array($result4);
echo "<b>User:</b> ".$row4['username']." <b>czas</b> ".date('d-m-Y', $row2['post_time'])."<br /><b>Treść:</b> ".$row3['post_text']."<br><br><br>";
}
?>[/php]
format daty zmieniasz w funkcji data obecnie to: 'd-m-Y' wpisuje z przyzwyczajenia. możesz wybrać dowolne zgodnie z zasadami funkcji php 'date'.
przykład stary: http://www.indianie.info/posty.php
plik przygotowałem ale wyszło mi z głowy go podać:
[php]<?php
$sql_conn = mysql_connect('localhost', 'login', 'haslo') or die('Brak połączenia');
$wybr = mysql_select_db('nazwa_bazy') or die('Błąd podczas wybierania bazy sql');
$id = 1167; //id tematu z którego szukamy postów
$sql = "SELECT * FROM `phpbb_topics` WHERE `topic_id` = $id";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
$sql2 = "SELECT * FROM `phpbb_posts` WHERE `topic_id` = $id";
$result2 = mysql_query($sql2);
while($row2 = mysql_fetch_array($result2))
{
$sql3 = "SELECT * FROM `phpbb_posts_text` WHERE `post_id` = ".$row2['post_id'];
$result3 = mysql_query($sql3);
$row3 = mysql_fetch_array($result3);
$sql4 = "SELECT username FROM `phpbb_users` WHERE `user_id` = ".$row2['poster_id'];
$result4 = mysql_query($sql4);
$row4 = mysql_fetch_array($result4);
echo "<b>User:</b> ".$row4['username']." <b>czas</b> ".date('d-m-Y', $row2['post_time'])."<br /><b>Treść:</b> ".$row3['post_text']."<br><br><br>";
}
?>[/php]
format daty zmieniasz w funkcji data obecnie to: 'd-m-Y' wpisuje z przyzwyczajenia. możesz wybrać dowolne zgodnie z zasadami funkcji php 'date'.
przykład stary: http://www.indianie.info/posty.php
Zapraszam również na moje forum: www.indianie.info
www.sklepbezglutek.pl - zapraszam do sklepu z żywnością bezglutenową i niskobiałkową. Makarony, chleby, zdrowa żywność. Wysyłane od ręki bez ryzyka utraty świeżości w trakcie dostarczania.
www.sklepbezglutek.pl - zapraszam do sklepu z żywnością bezglutenową i niskobiałkową. Makarony, chleby, zdrowa żywność. Wysyłane od ręki bez ryzyka utraty świeżości w trakcie dostarczania.