Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MYSQL][PHP]problem z wyświetlaniem query - zwrot arraya
Listonoszek
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 23.05.2010

Ostrzeżenie: (0%)
-----


Cześć! jestem absolutnie zielony w tematyce PHP, kod jestem w stanie stworzyć bazując na skryptach lub przerabiając dotychczas istniejące(i też nie zawsze;)), jednak napotkałem na swojej drodze swego rodzaju problem.

Zacznę od tego, że chciałem pobrać coś z bazy MYSQL a następnie wyświetlić to - nad newsy chciałem dodać taką stałą rubryczkę, która miałaby pobierać tekst z bazy MYSQL. Kod wygląda tak:

Kod
<?
header('Content-Type: text/xml; charset=utf-8');
echo '<?xml version="1.0" encoding="UTF-8"?>';

$user="XYZ";
$pass="ZYX";
$baza="YXZ";

mysql_connect ("mysql", $user, $pass);
mysql_select_db ($baza);

$zapytanie = "SELECT post_content FROM wp_posts WHERE ID=0";
$pobierz = mysql_query($zapytanie);

while($dane = mysql_fetch_array($pobierz)) {
    print_r($dane);

}

?>


w czym tkwi problem? Otóż. Skrypt w momencie zastosowania print_r zwraca mi wynik
Cytat
Array ( [0] => SPRAWDZAM JĘZYK POLSKI [post_content] => SPRAWDZAM JĘZYK POLSKI )

co mi nie pasuje? Nie pasują mi nagłówki chyba tabel, czy tam kolumn, no i jakiś array, co mi się tu pojawia. No i w dodatku zawartość bazy wyświetliła się dwa razy - Kali nie wiedzieć czemu... (?)
gdy zastosuje samo print zwraca:
Cytat
Array

natomiast samo echo nie działa i strona ładuję się tylko do połowy.
Próbowałem na wszystkie sposoby i zmieniać mysql_fetch_array na mysql_fetch_row, na samo mysql_fetch... jednak bez rezultatu.


dodam, że strona jest w wordpressie(serwer dhost.info, PHP safe ON - jeśli to miałoby pomóc)
Nie wiem gdzie robię błąd. Chylę czoła i proszę o pomoc!

pozdrawiam
Listonoszek
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
tehaha
post
Post #2





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


  1. while($dane = mysql_fetch_array($pobierz)) {
  2. echo $dane['post_content'];
  3.  
  4. }

mysql_fetch_array() zwraca tablicę z wynikami, więc dane wywołujesz jak z tablicy
Go to the top of the page
+Quote Post
Ulysess
post
Post #3





Grupa: Zarejestrowani
Postów: 695
Pomógł: 65
Dołączył: 27.07.2009
Skąd: Y

Ostrzeżenie: (0%)
-----


co do print_r wyświetla zawartość tabelicy.. jeśli chcesz wyświetlić wartość z danego pola daj np echo $dane['post_content'] a pętla może wywołuje się 2x ponieważ może są 2 rekordy z id 0 ? (tutaj nie znam odpowiedzi na to pyt)
Go to the top of the page
+Quote Post
thek
post
Post #4





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Masz dwa razy "Sprawdzam język polski" bo mysql_fetch_array działa tak, iż przechowuje wyniki w postaci indeksów numeryczno-asocjacyjnych. Co to takiego? połączenie indeksów obu rodzajów w wyniku. Od wyników masz 3 funkcje: mysql_fetch_row, mysql_fetch_assoc i mysql_fetch_array. Róznica jest w formie odwołań
mysql_fetch_row -> array( [0] => kolumna1, [1] => kolumna2 )
mysql_fetch_assoc -> array( [nazwa_kolumny1] => kolumna1, [nazwa_kolumny2] => kolumna2 )
mysql_fetch_array -> array( [nazwa_kolumny1] => kolumna1, [0] => kolumna1, [nazwa_kolumny2] => kolumna2, [1] => kolumna2 )
Widzisz różnicę? Ostatnia z funkcji działa jak obie wcześniejsze razem wzięte i stąd za cenę "zdublowania" danych możesz się odnosić albo do kolumny jej indeksem, albo nazwą.
Co do podwójnego wyświetlania to sprawdź ile Ty masz tych rekordów o id = 0 najpierw. Może zresztą ten kawałek gdzieś Ci się dubluje przy include jakimś i stąd ta sytuacja.
Go to the top of the page
+Quote Post
tehaha
post
Post #5





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


@Thek, czyli jeśli posługuję się tylko nazwami kolumn to efektywniej będzie używać mysql_fetch_assoc()?
Go to the top of the page
+Quote Post
thek
post
Post #6





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




W ogromnym uproszczeniu - tak.
Go to the top of the page
+Quote Post
Listonoszek
post
Post #7





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 23.05.2010

Ostrzeżenie: (0%)
-----


jestem w 100% pewny co do niepowtarzalności rekordu o ID=0. Dzięki za rozjaśnienie i rozwiązanie problemu.
Zrobiłem tak jak napisał tehaha i zwraca tak jak zwracać powinno. Jeszcze raz dzięki : )

PS. Nie chciałem zakładać kolejnego wątku dlatego dopiszę tutaj.
Tak jak wyżej chyba wspomniałem, używam wordpressa. Chciałem sobie zrobić blog dwujęzyczny. Zainstalowałem xLanguage plugin, instalacja była bardzo zautomatyzowana jak we wszystkiego rodzaju 'gotowców'. xLanguage działa na takiej zasadzie, że w jednym wpisie na blogu piszemy zarówno wersję polską i angielską, które odpowiednio potem tagujemy <span lang='en'> lub <span lang='pl'> a następnie on, wyciąga 'po tagach' odpowiednio wersję angielską lub polską. Jednak działa to (CHYBA) tylko w sekcji w której wyświetlane są posty.

Celem napisania mojego skryptu(?), z którym miałem wyżej problem, było stworzenie takiej stałej sekcji nad wpisami, takiego hmm... wstępu, który też chciałem zrobić w dwóch językach bazując na xLanguage. Jednak tagując odpowiednio tekst angielski i polski. Jednak po kliknięciu odpowiednio w link XYZ/?lang=pl czy XYZ/?lang=en wyświetlają się oba, stąd też mój osąd, że xLanguage działą tylko w sekcji wyświetlania postów.

Próbowałem dodać do indeksu linijkę o wczytywaniu tego pluginu - nad linijką gdzie dodałem include tego pliku który ma być wstępem. Jednak zwraca mi blank page.

I nie wiem jak prościej byłoby. Czy męczyć się z tym xLangiem, czy stworzyć 2 indeksy, w których odpowiednio jeden pobiera posty z bazy 'pl' a drugi z 'en'. Jak myślicie?

pozdrawiam
Listonoszek
Go to the top of the page
+Quote Post
thek
post
Post #8





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Na Wordpressie mało siedzę, ale czy nie lepiej będzie sprawdzić zasięg owej zmiennej i w zależności od niej uzależniać wyświetlenie określonego fragmentu w określonym pliku szablonu?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 14:39