primo
6.01.2004, 08:49:44
Witam,
jakie byłoby zapytanie do bazy danych, aby zwróciło taki wynik:
dane wprowadzane do bazy mają id, na jednej z podstron chciałbym aby wyśietlane było tylko powiedzmy 6 wyników o najwyższym id, to nie ma być stronnicowanie, ma tylko zwrócić 6 najwyższych id
pozdrawiam
jol.us_
6.01.2004, 09:01:26
[php:1:c1dd350af6]<?php
mysql_connect ("host", "baza", "haslo") or
die ("Nie mozna polaczyć sie z MySQL");
mysql_select_db ("baza") or
die ("Nie mozna polaczyć sie z baza");
$wynik = mysql_query ("SELECT * FROM tabela ORDER BY id DESC LIMIT 0,6;"); //6 o najwyzszym id
while ($rekord = mysql_fetch_array ($wynik)) { //wypis rekordow
print "".$rekord[0].""; //itd.
}
?>[/php:1:c1dd350af6]
primo
6.01.2004, 09:23:45
[php:1:5295175739]<?php
while ($rekord = mysql_fetch_array ($result)) {
$id = $rekord[0];
$tytul_pl = $rekord[1];
$tytul_ang = $rekord[2];
$dlugosc = $rekord[3];
$aktorzy = $rekord[5];
$recenzja = $rekord[7];
$gatunek = $rekord[10];
?>[/php:1:5295175739]
jak jest to mysql_fetch_row
to wyświetla wyniki, a przy array nie chce co z tym nie tak
BzikOS
6.01.2004, 09:33:30
Dziwne bo powinno.. daj w pętli print_r( $rekord ); i zobacz co tam siedzi.
primo
6.01.2004, 09:39:07
taki błąd zwraca:
Something is wrong in your syntax obok 'Resource id #2' w linii 1
BzikOS
6.01.2004, 09:43:42
A co jest w tej linii? Pokaż kawałek kodu (zapytanie i pętlę).
primo
6.01.2004, 09:56:23
[php:1:3d399847ce]<?php
mysql_connect ("db.st.interia.pl", "cosik", "cosik") or die("Nie można połączyć się z
bazą danych");
mysql_select_db ("cosik") or die("Nie można połączyć się z bazą danych");
$sql = mysql_query ("SELECT * FROM filmy ORDER BY id DESC LIMIT 0,6;");
$result = mysql_query($sql) or die(mysql_error());
print "<TABLE CALLPADDING=5 BORDER=1>";
print "<TR><TD><B>Tytuł polski</B></TD><TD><B>Tytuł angielski</B></TD>";
print "<TD><B>Czas
trwania</B></TD><TD><B>Aktorzy</B></TD><TD><B>Gatunek</B></TD><TD><B>Recenzja</
B></TD></TR>n";
while ($rekord = mysql_fetch_array ($result)) {
$id = $rekord[0];
$tytul_pl = $rekord[1];
$tytul_ang = $rekord[2];
$dlugosc = $rekord[3];
$aktorzy = $rekord[5];
$recenzja = $rekord[7];
$gatunek = $rekord[10];
print "<TR><TD><a href="cos.php">".$tytul_pl."</a></TD><TD>
$tytul_ang</TD><TD>$dlugosc</TD><TD>
$aktorzy</TD><TD>$gatunek</TD><TD>$recenzja</TD></TR>n";
}
print "</TABLE>";
?>[/php:1:3d399847ce]
BzikOS
6.01.2004, 10:02:24
Wyrzuć średnik z końca zapytania SQL, poza tym wygląda w porzadku, więc mysql_fetch_array() powinno działać :/ Ale jezeli odwołujesz się poprzez indeks numeryczny to możesz użyć mysql_fetch_row, jeżeli zalezy Ci na tablicy asocjacyjnej sprawdź mysql_fetch_assoc, mimo to mysql_fetch_array powinno działać :/
jol.us_
6.01.2004, 10:08:12
Zamien linie
[php:1:392431cc4e]<?php
$sql = mysql_query ("SELECT * FROM filmy ORDER BY id DESC LIMIT 0,6;");
$result = mysql_query($sql) or die(mysql_error());
?>[/php:1:392431cc4e]
na
[php:1:392431cc4e]<?php
$result = mysql_query ("SELECT * FROM filmy ORDER BY id DESC LIMIT 0,6;");
?>[/php:1:392431cc4e]
primo
6.01.2004, 10:10:34
no przed sekundą to zrobiłem i zadziałało

thx
primo
6.01.2004, 10:13:04
cały kod wygląda tak:
[php:1:af48e77876]<?php
mysql_connect ("db.st.interia.pl", "cosik", "cosik") or die("Nie można połączyć się z
bazą danych");
mysql_select_db ("cosik") or die("Nie można połączyć się z bazą danych");
$wynik = mysql_query ("SELECT * FROM filmy ORDER BY id DESC LIMIT 0,6;");
while ($rekord = mysql_fetch_array ($wynik)) {
print "".$rekord[0]."";
print "".$rekord[1]."";
print "".$rekord[2]."";
print "".$rekord[3]."";
}
?>[/php:1:af48e77876]
jednakże zobacz jak to się beznadziejnie wyświetla:
http://www.divideo.com.pl/pajaczek/index.php?op=2
jol.us_
6.01.2004, 10:16:12
Bo wypisujesz jedno obok drugiego bez zadnych odstepow.
Zrob: print "".$rekord[0]." "; lub print "".$rekord[0]."<BR>";
primo
6.01.2004, 10:18:54
no to wiem, ale to nie załatwie sprawy, jak to przypisać do tabeli, któa miałaby nagłówki tytuł, czas trwania itp.
jol.us_
6.01.2004, 10:25:38
Tak jak to zrobiles wczesniej (6 postow wyzej). Tylko, w obecnym przypadku, zamiast tamtejszych zmiennych pisz ".$rekord[0]." itd.
Czyli jakos tak:
[php:1:3c54a28dda]<?php
mysql_connect ("db.st.interia.pl", "cosik", "cosik") or
die("Nie można połączyć się z bazą danych");
mysql_select_db ("cosik") or
die("Nie można połączyć się z bazą danych");
$wynik = mysql_query ("SELECT * FROM filmy ORDER BY id DESC LIMIT 0,6;");
print "
<TABLE CALLPADDING=5 BORDER=1>
<TR>
<TD><B>Tytuł polski</B></TD>
<TD><B>Tytuł angielski</B></TD>
<TD><B>Czas trwania</B></TD>
<TD><B>Aktorzy</B></TD>
<TD><B>Gatunek</B></TD>
<TD><B>Recenzja</B></TD>
</TR>
";
while ($rekord = mysql_fetch_array ($wynik)) {
print "
<TR>
<TD><a href="cos.php">".$rekord[1]."</a></TD>
<TD>".$rekord[2]."</TD>
<TD>".$rekord[3]."</TD>
<TD>".$rekord[5]."</TD>
<TD>".$rekord[10]."</TD>
<TD>".$rekord[7]."</TD>
</TR>
";
}
print "</TABLE>";
?>[/php:1:3c54a28dda]
primo
6.01.2004, 10:26:27
mam
[php:1:cd5854cca1]<?php
mysql_connect ("db.st.interia.pl", "cosik", "cosik") or die("Nie można połączyć się z
bazą danych");
mysql_select_db ("cosik") or die("Nie można połączyć się z bazą danych");
$wynik = mysql_query ("SELECT * FROM filmy ORDER BY id DESC LIMIT 0,6;");
print "<TABLE CALLPADDING=5 BORDER=1>";
print "<TR><TD><B>Tytuł polski</B></TD><TD><B>Tytuł angielski</B></TD>";
print "<TD><B>Czas
trwania</B></TD><TD><B>Aktorzy</B></TD><TD><B>Gatunek</B></TD><TD><B>Recenzja</
B></TD></TR>n";
while ($rekord = mysql_fetch_array ($wynik)) {
$id = $rekord[0];
$tytul_pl = $rekord[1];
$tytul_ang = $rekord[2];
$dlugosc = $rekord[3];
$aktorzy = $rekord[5];
$recenzja = $rekord[7];
$gatunek = $rekord[10];
print "<TR><TD><a href="cos.php">".$tytul_pl."</a></TD><TD>
$tytul_ang</TD><TD>$dlugosc</TD><TD>
$aktorzy</TD><TD>$gatunek</TD><TD>$recenzja</TD></TR>n";
}
print "</TABLE>";
?>[/php:1:cd5854cca1]
primo
6.01.2004, 10:44:04
ok wszystko działa, wielkie dzięki
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.