Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MYSQL]mysql_fetch_array() błąd
Kaarpiik
post
Post #1





Grupa: Zarejestrowani
Postów: 59
Pomógł: 1
Dołączył: 20.01.2008
Skąd: Bełchatów

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


Witam.. to znów ja biggrin.gif
Wyskakuje mi taki błąd:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Program Files\WebServ\httpd\funkcje_wyswietl.php on line 94

Próbuje zrobić żeby wyświetlało newsy na stronie:

  1. <?php
  2.  
  3. include_once('funkcje_bazy.php');
  4. $lacz = lacz_bd();
  5. $strony_sql = mysql_query("select * from artykuly order by id desc");
  6.  
  7. while ($strony=mysql_fetch_array($strony_sql))
  8. {
  9. echo '<table>';
  10. echo "<tr>
  11. <td>
  12. <h2>{$strony['opis']}</h2>
  13. <p>{$artykul['naglowek']}</p>
  14. <p align='right'>
  15. <a href='strona.php?strona={$strony['kod']}'>
  16. Więcej {$strony['kod']} ...
  17. </a>
  18. </p>
  19. </td> ";
  20. echo '</tr>';
  21. }
  22. echo '</table>';
  23. ?>
  24.  
  25. <a href="strona.php?strona={$strony["kod']}'>


nie wklejam całego kodu ponieważ dalej i wcześniej są inne funkcje potrzebne na strone np wygląd menu itd. błąd mi wyskakuje w tej linijce:
  1. <?php
  2. while ($strony=mysql_fetch_array($strony_sql))
  3. ?>


i nie wiem co dalej biggrin.gif chyba że macie inne jakieś proste pomysły żeby wyświetlić newsy

narazie ta tabela to tak tylko dla picu żeby była. Później jak mi będzie działać to ją dopasuje sobie do moich div'ów smile.gif

i narazie stoje w miejsciu =/ proszę o szybką pomoc... </a href='strona.php?strona={$strony['kod']}'></p align='right'>

Ten post edytował Kaarpiik 26.08.2008, 20:19:44
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




kurcze...
zobacz jaki parametr przyjmuje mysql_fetch_array() (zajrzyj do manuala) a potem zobaczy co ty mu dajesz.... przedszkole przedszkolem ale wlasny rozum chyba masz winksmiley.jpg


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Kaarpiik
post
Post #3





Grupa: Zarejestrowani
Postów: 59
Pomógł: 1
Dołączył: 20.01.2008
Skąd: Bełchatów

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


chodzi o to że powinno być
mysql_fetch_assoc
?
Go to the top of the page
+Quote Post
styx
post
Post #4





Grupa: Zarejestrowani
Postów: 138
Pomógł: 3
Dołączył: 21.11.2005

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


zapytanie $sql jest błedne, albo nic nie zwraca


--------------------
"Istotne problemy naszego życia nie mogą być rozwiązane na tym samym poziomie myślenia, na jakim byliśmy kiedy je tworzyliśmy". A.Einstein
Go to the top of the page
+Quote Post
nospor
post
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




@styx patrz na kod i na to co piszą poprzednicy


@Kaarpiik pomoge ci troche bys glupio nie strzelal. zamykam bys mial chwile na zastanowienie sie nad tym co napisalem:
Cytat
zobacz jaki parametr przyjmuje mysql_fetch_array() (zajrzyj do manuala) a potem zobaczy co ty mu dajesz....
To naprawde oznacza tylko jedno, a ty i tak co innego.

Jak juz sie zastanowisz to wal na PW a otworze ci temat smile.gif

edit: widze ze zmieniles swoj pierwszy post. W znaczacy sposob rozwala to moje wczesniejsze posty winksmiley.jpg W takim razie tekst do styx juz nie aktualny. temat otwieram i dostajesz link na zalatwianie takich problemow:
http://nospor.pl/php-faq-n29.html#faq-6
smile.gif

dla potomnych:
wczesniej byl taki kod:
  1. <?php
  2. $strony_sql = "select * from artykuly order by id desc";
  3. $jakaszmienna = mysql_query($strony_sql);
  4.  
  5. while ($strony=mysql_fetch_array($strony_sql))
  6. ?>

to nie mialo prawo dzialac winksmiley.jpg


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Kaarpiik
post
Post #6





Grupa: Zarejestrowani
Postów: 59
Pomógł: 1
Dołączył: 20.01.2008
Skąd: Bełchatów

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


nooo biggrin.gif
  1. <?php
  2. $db = mysql_connect('localhost', 'root', 'xq1w2e3', 'baza') or die('niepołączono'); 
  3. $sql = 'select * from artykuly order by id desc';
  4. $result = mysql_query($sql) or die('Zapytanie: '.$sql.' --- błąd: '.mysql_error());
  5. echo '<table>';
  6. while ($row=mysql_fetch_array($result)) 
  7. {
  8. echo '<tr><td>';
  9. echo $strony['naglowek'];
  10. echo '<p>';
  11. echo $strony['tekst_artykulu'];
  12. echo '</p>';
  13. echo '</td></tr>';
  14. }
  15. echo '</table>';
  16. ?>


i wyskakuje błąd: "Zapytanie: select * from artykuly order by id desc --- błąd: Nie wybrano żadnej bazy danych"

Jak to nie wybrano bazy? =/ przecież się połączyłem elegancko z bazą...

@edit: tak wogóle to dziękuje nospor za pomoc ;*

Ten post edytował Kaarpiik 26.08.2008, 21:28:11
Go to the top of the page
+Quote Post
nospor
post
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




a gdzie
http://pl.php.net/manual/pl/function.mysql-select-db.php

winksmiley.jpg

ps: skad ty wytrzasnales taka konstrukcje mysql_connect, ze 4 parametrem jest baza?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
baszkir
post
Post #8





Grupa: Zarejestrowani
Postów: 22
Pomógł: 8
Dołączył: 2.08.2008

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


To że się elegancko połączyłeś to nie znaczy że baze wybrałeś. Zobacz sobie opis w manualu do mysql_connect, mysql_select_db oraz mysqli_connect. Może coś się pomyliło ?

Edit:
oj za wolno pisze :-)

Ten post edytował baszkir 26.08.2008, 21:31:55
Go to the top of the page
+Quote Post
Kaarpiik
post
Post #9





Grupa: Zarejestrowani
Postów: 59
Pomógł: 1
Dołączył: 20.01.2008
Skąd: Bełchatów

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


finalny wygląd skryptu
  1. <?php
  2. $db = mysql_connect('localhost', 'root', 'xq1w2e3');
  3. $baza = mysql_select_db('baza');
  4. $sql = 'select * from artykuly order by id desc';
  5. $result = mysql_query($sql) or die('Zapytanie: '.$sql.' --- błąd: '.mysql_error());
  6.  
  7. echo '<table>';
  8. while ($row=mysql_fetch_array($result)) 
  9. {
  10. echo '<tr><td>';
  11. echo $row['naglowek'];
  12. echo '<p>';
  13. echo $row['tekst_artykulu'];
  14. echo '</p>';
  15. echo '</td></tr>';
  16. }
  17. echo '</table>';
  18. ?>


działa =) dzięki serdeczne pozdrawiam ;*

no to jeszcze jeden problem... żeby nie zakładać nowego tematu to napisze tutaj bo może troche się z tym wiąże.

gdy newsy na stronie mi się już wyświetlają jest fajnie... ale czemu nie ma polskich literek? w phpmyadmin mam ustawione język Polish - Polski, System porównań dla połączenia MySQL: utf8_general_ci, w <head>: <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2"> oraz w tabelach utf8_general_ci ...

i nadal nie ma polskich literek ;(
Go to the top of the page
+Quote Post
webdice
post
Post #10


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




  1. <meta http-equiv="Content-type" content="text/html; charset=UTF-8">
Go to the top of the page
+Quote Post
Kaarpiik
post
Post #11





Grupa: Zarejestrowani
Postów: 59
Pomógł: 1
Dołączył: 20.01.2008
Skąd: Bełchatów

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


@up:
jest jeszcze gorzej bo teraz jeszcze się "ł" i "ś" zamieniło na kwadraciki =/

zamieniły mi się na iso2 to takie literki nie działają: ą ż ć ś ę ...

Ten post edytował Kaarpiik 26.08.2008, 22:06:33
Go to the top of the page
+Quote Post
webdice
post
Post #12


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Jeśli masz w bazie UTF to zostaw tak jak napisałem, z tym że dodaj jeszcze zaraz po połączeniu z bazą takie zapytania:
  1. <?php
  2. mysql_query ('SET NAMES utf8');
  3. mysql_query ('SET CHARACTER_SET utf8_general_ci');
  4. ?>
Go to the top of the page
+Quote Post
Kaarpiik
post
Post #13





Grupa: Zarejestrowani
Postów: 59
Pomógł: 1
Dołączył: 20.01.2008
Skąd: Bełchatów

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


no tam gdzie ma doczynienia z mysql to się pozmieniało ale tam jak zmieniłem na
  1. <meta http-equiv="Content-type" content="text/html; charset=UTF-8">

to literki w menu się pozmieniały =/

próbowałem różnych kombinacji z utf8 i iso2 ale nie działa biggrin.gif albo newsy źle wyświetla albo menu =/
Go to the top of the page
+Quote Post
webdice
post
Post #14


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Bo bazę masz kodowaną jako UTF, a plik jako ISO. Masz do wyboru albo użyć edytora który będzie zapisywał plik jako UTF, bądź zmienić kodowanie w bazie na latin2.
Go to the top of the page
+Quote Post
Kaarpiik
post
Post #15





Grupa: Zarejestrowani
Postów: 59
Pomógł: 1
Dołączył: 20.01.2008
Skąd: Bełchatów

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


dobra zmieniłem ten plik, ustawiłem
  1. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2">

  1. <?php
  2. mysql_query ('SET NAMES latin2');
  3. mysql_query ('SET CHARACTER_SET latin2_general_ci');
  4. ?>

pozmieniałem w tabelach na latin2_general_ci

ale jeszcze w menu nie wyświetla mi literki ś =/
Go to the top of the page
+Quote Post
webdice
post
Post #16


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Jeśli znaki z bazy wyświetlają się dobrze, to coś masz z edytorem. Poszukaj opcji kodowania pliku lub skorzystaj z takiego który Ci to umożliwia.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 19:21