Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MYSQL]mysql_fetch_array() błąd
Forum PHP.pl > Forum > Przedszkole
Kaarpiik
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'>
nospor
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
Kaarpiik
chodzi o to że powinno być
mysql_fetch_assoc
?
styx
zapytanie $sql jest błedne, albo nic nie zwraca
nospor
@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
Kaarpiik
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 ;*
nospor
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?
baszkir
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 :-)
Kaarpiik
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 ;(
webdice
  1. <meta http-equiv="Content-type" content="text/html; charset=UTF-8">
Kaarpiik
@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ą: ą ż ć ś ę ...
webdice
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. ?>
Kaarpiik
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 =/
webdice
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.
Kaarpiik
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 ś =/
webdice
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.
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.