Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: mysql_fetch_row($...) - problem
Forum PHP.pl > Forum > PHP
witko2006
Witajcie.

Mam pewien problem - bawiłem się przed chwilą funkcją mysql_fetch_row. Kod wyglądał mniej więcej tak:

CODE
$zapytanie = "SELECT `tytul`, `autor` FROM `tabela`";
$wyslijzapytanie = mysql_query($zapytanie);

while ($wynik = mysql_fetch_row($wyslijzapytanie)
{
echo $wynik[0];
echo $wynik[1];
};


I niestety w $wynik[0] wyświetla mi wszystkie wiersze `tytul` ,a w $wynik[1] wszystkie wiersze `autor`.
Czy istnieje możliwość aby to oddzielić? ORDER BY by coś dało?


I jeszcze nowatorskie pytanie na koniec - jakie wcisnąć klawisze na klawiaturze żeby wyszedł znak ` ?
MWL
Ten znak masz nad tabulatorem.

Kod nie powinien zawierać pętli while jeśli chcesz to wyświetlić tylko raz.

  1. <?php
  2. zapytanie = "SELECT `tytul`, `autor` FROM `tabela`";
  3. $wyslijzapytanie = mysql_query($zapytanie);
  4.  
  5. $wynik = mysql_fetch_row($wyslijzapytanie);
  6. echo $wynik[0];
  7. echo $wynik[1];
  8. ?>


Możesz także z tyłu wcisnąć LIMIT
_olo_1984
  1. <?php
  2. zapytanie = "SELECT `tytul`, `autor` FROM `tabela`";
  3. $wyslijzapytanie = mysql_query($zapytanie);
  4.  
  5. $wynik = mysql_fetch_array($wyslijzapytanie);
  6. echo $wynik[0];
  7. echo $wynik[1];
  8. ?>
witko2006
Zrobiłem tak jak napisałeś i niestety wyświetlony zostaje pierwszy argument (tytuł,autor).
Zależy mi na tym żeby mieć np. 100 wyciągniętych wartości i żebym każdą z nich mógł wpisać w dowolne miejsce np.

Za pomocą mysql_query wyciągnąłem wszystkie argumenty z bazy danych spełniające dane kryteria.
Pierwszy tytuł chciałbym wstawić w nagłówku, natomiast autora w podpisie. I tak z każdym wierszem tabeli SQL.

Przy użyciu mysql_fetch_row rzeczywiście wyciągam wszystkie dane ale do $wynik[0] przypisuje mi wszystkie tytuły ,a chciałbym je mieć wszystkie oddzielnie przypisane do zmiennej np:

$wynik[0] - Tytuł 1
$wynik[1] - Tytuł 2

A niestety teraz do wynik[0] mam przypisane wszystkie wartosci `tytuł` natomiast do wynik[1] `autor`.

Czy istnieje jakaś inna funkcja ,która by spełniała moje wymogi?

_Olo_1984 - mysql_fetch_array wyciągnęło mi także tylko 1 wiersz, natomiast jak dodałem do tego while to do wynik[1] zostały przypisane także wszystkie wartości `tytuł`.
_olo_1984
  1. <?php
  2. zapytanie = "SELECT `tytul`, `autor` FROM `tabela` LIMIT 100";
  3. $wyslijzapytanie = mysql_query($zapytanie);
  4. $i = 0;
  5. $tab = array();
  6. while($wynik = mysql_fetch_array($wyslijzapytanie)) {
  7. $tab[$i]['tytul'] = $wynik['tytul'];
  8. $tab[$i]['autor'] = $wynik['autor'];
  9. $i++
  10. }
  11. var_dump($tab); // zobacz co masz w tablicy
  12. ?>


może takie coś pomoże
vokiel
  1. <?php
  2. // pobranie 100 wynikow
  3. $zapytanie = "SELECT `tytul`, `autor` FROM `tabela` limit 0,100";
  4. // wykonanie zapytania
  5. $wyslijzapytanie = mysql_query($zapytanie);
  6. // wyswietlenie wynikow dla kazdego wiesza
  7. while ($wynik = mysql_fetch_array($wyslijzapytanie, MYSQL_ASSOC)){
  8.    echo $wynik['tytul'].' | '.$wynik['autor'].'<br />'."\n";
  9. }
  10. ?>
witko2006
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\aktualnosci.php on line 8
array(0) { }
Lars
Wstaw or die(mysql_error()) po zapytaniu. W nim jest błąd.
witko2006
Dobra już znalazłem błąd.
- _olo_1984 dzięki za pomoc - daje Pomógł
- vokiel - wielkie dzięki.
- Lars - Dzięki

Vokiel, wpisałem tak jak podałeś i otrzymałem:

tytul 1| autor1
tytul 2| autor2
tytul 3 | autor3
tytul 4| autor4
tytul 5 | autor5
tytul 6 | autor7
tytul 7| autor7

Czyli wszystko jest okey. Ale jak zrobić ,żeby każda z tych wartości była przypisana do oddzielnej zmiennej? Żebym każdą mógł powsadzać gdzie tylko chcę?
vokiel
Najlepiej wrzuc to do tablicy. Wtedy będziesz mógł po niej ładnie iterować.

  1. <?php
  2. // pobranie 100 wynikow
  3. $zapytanie = "SELECT `tytul`, `autor` FROM `tabela` limit 0,100";
  4. // wykonanie zapytania
  5. $wyslijzapytanie = mysql_query($zapytanie);
  6. // wyswietlenie wynikow dla kazdego wiesza
  7. $i = 0;
  8. while ($wynik = mysql_fetch_array($wyslijzapytanie, MYSQL_ASSOC)){
  9. // opcja 1
  10.   $wyniki_tablica[] = $wynik;
  11. // opcja 2
  12.   $wyniki[$i]['tytul'] = $wynik['tytul'];
  13.   $wyniki[$i]['autor'] = $wynik['autor'];
  14.   ++$i;
  15. }
  16. ?>
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.