Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> mysql_fetch_row($...) - problem
witko2006
post
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 29.07.2008

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


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 ` ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
MWL
post
Post #2





Grupa: Zarejestrowani
Postów: 493
Pomógł: 32
Dołączył: 14.04.2008
Skąd: Lenkowski.net

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


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

Ten post edytował MWL 26.10.2008, 08:42:04
Go to the top of the page
+Quote Post
_olo_1984
post
Post #3





Grupa: Zarejestrowani
Postów: 289
Pomógł: 77
Dołączył: 5.08.2006

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


  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. ?>
Go to the top of the page
+Quote Post
witko2006
post
Post #4





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 29.07.2008

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


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ł`.

Ten post edytował witko2006 26.10.2008, 09:19:48
Go to the top of the page
+Quote Post
_olo_1984
post
Post #5





Grupa: Zarejestrowani
Postów: 289
Pomógł: 77
Dołączył: 5.08.2006

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


  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
Go to the top of the page
+Quote Post
vokiel
post
Post #6





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


  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. ?>
Go to the top of the page
+Quote Post
witko2006
post
Post #7





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 29.07.2008

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


Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\aktualnosci.php on line 8
array(0) { }
Go to the top of the page
+Quote Post
Lars
post
Post #8





Grupa: Zarejestrowani
Postów: 279
Pomógł: 15
Dołączył: 29.04.2005
Skąd: Gdynia

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


Wstaw or die(mysql_error()) po zapytaniu. W nim jest błąd.
Go to the top of the page
+Quote Post
witko2006
post
Post #9





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 29.07.2008

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


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ę?
Go to the top of the page
+Quote Post
vokiel
post
Post #10





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


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. ?>
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: 23.08.2025 - 09:05