Języki, których efekty są wykonywane po stronie serwera. PHP, ASP czy CGI w połączeniu z bazami danych SQL dają niezwykłe możliwości budowy i zarządzania stron WWW. Tu zadajemy pytania oraz demonstrujemy kod, z którym mamy problem.
Stef@n
Nowy
Posty: 40 Rejestracja: sob lut 15, 2003 12:33 pm
Lokalizacja: Nowy Targ
Kontakt:
Post
autor: Stef@n » pt sie 15, 2003 9:00 am
Czesc!
Dopiero sie ucze wiec prosze o pomoc!
Mam taki skrypt:
Kod: Zaznacz cały
<?
mysql_connect ("localhost", "root", "") or
die ("Nie mozna sie połaczyc");
mysql_select_db ("baza") or
die ("Nie mozna sie połaczyc");
$wynik = mysql_query ("SELECT * FROM lista;") or
die ("Bład");
print "<TABLE CELLPADDING=0 BORDER=1>";
print "<TR><TD><B>Nr.</B></TD><TD><B>Imię</B></TD><TD><B>Nazwisko</B></TD>";
print "<TD><B>Wiek</B></TD></TR>\n";
while ($rekord = mysql_fetch_array ($wynik)) {
$id = $rekord[0];
$imie = $rekord[1];
$nazwisko = $rekord[2];
$wiek = $rekord[3];
print "<TR><TD>$id</TD><TD>$imie</TD><TD>$nazwisko</TD><TD>$wiek</TD></TR>\n";
}
print "</TABLE>";
?>
I nie wiem jak zrobic zeby po kliknieciu np na nazwisko sortowało np. alfabetycznie lub liczbami.
Prosze was o pomoc!
Seth
Przelotem
Posty: 225 Rejestracja: ndz lis 03, 2002 6:01 pm
Kontakt:
Post
autor: Seth » pt sie 15, 2003 9:31 am
Musisz w zapytaniu dodac polecenie SORT BY i odpowiednia nazwe kolumny po ktorej ma byc sortowany wynik.
Najlepiej do linku ktor ma posortowac wg daneego kryterium dodaj np: sort_by= i podczas ladowania strony sprawdzaj przez empty( $_GET['sort_by'] ) czy przekazano ten parametr jezeli tak to zadaj odpowiednie zapytanie do bazy.
Stef@n
Nowy
Posty: 40 Rejestracja: sob lut 15, 2003 12:33 pm
Lokalizacja: Nowy Targ
Kontakt:
Post
autor: Stef@n » pt sie 15, 2003 10:34 am
Zrobiłem pare i zadne nie działa!
1)
Kod: Zaznacz cały
<?php
mysql_connect ("localhost", "root", "") or
die ("Nie mozna sie połaczyc");
mysql_select_db ("baza") or
die ("Nie mozna sie połaczyc");
if (!in_array($_GET['cowybrane'], array('id', 'imie', 'nazwisko', 'wiek')))
$_GET['cowybrane'] = 'id';
$wynik = mysql_query ("SELECT * FROM lista ORDER BY $_GET['cowybrane'];") or
die ("Bład");
print "<TABLE CELLPADDING=0 BORDER=1>";
print "<TR>
<TD><B><a href=\"1.php?cowybrane=id\">Nr.</a></B></TD>
<TD><B><a href=\"1.php?cowybrane=imie\">Imię</a></B></TD>
<TD><B><a href=\"1.php?cowybrane=nazwisko\">Nazwisko</a></B></TD>
<TD><B><a href=\"1.php?cowybrane=wiek\">Wiek</a></B></TD></TR>\n";
while ($rekord = mysql_fetch_array ($wynik)) {
$id = $rekord[0];
$imie = $rekord[1];
$nazwisko = $rekord[2];
$wiek = $rekord[3];
print "<TR><TD>$id</TD><TD>$imie</TD><TD>$nazwisko</TD><TD>$wiek</TD></TR>\n";
}
print "</TABLE>";
?>
Wyskakuje
Kod: Zaznacz cały
Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in C:\apache\htdocs\\karty\2.php on line 8
2)
Kod: Zaznacz cały
<?
mysql_connect ("localhost", "root", "") or
die ("Nie mozna sie połaczyc");
mysql_select_db ("baza") or
die ("Nie mozna sie połaczyc");
if(!$cowybrane){$cowybrane="id";}
$wynik = mysql_query ("SELECT * FROM lista ORDER BY '".$_GET['cowybrane']."'") or
die (mysql_error());
print "<TABLE CELLPADDING=0 BORDER=1>";
print "<TR>
<TD><B><a href=\"1.php?cowybrane=id\">Nr.</a></B></TD>
<TD><B><a href=\"1.php?cowybrane=imie\">Imię</a></B></TD>
<TD><B><a href=\"1.php?cowybrane=nazwisko\">Nazwisko</a></B></TD>
<TD><B><a href=\"1.php?cowybrane=wiek\">Wiek</a></B></TD></TR>\n";
while ($rekord = mysql_fetch_array ($wynik)) {
$id = $rekord[0];
$imie = $rekord[1];
$nazwisko = $rekord[2];
$wiek = $rekord[3];
print "<TR><TD>$id</TD><TD>$imie</TD><TD>$nazwisko</TD><TD>$wiek</TD></TR>\n";
}
print "</TABLE>";
?>
Tutaj nie sortuje odswieza sie tylko.
Seth
Przelotem
Posty: 225 Rejestracja: ndz lis 03, 2002 6:01 pm
Kontakt:
Post
autor: Seth » pt sie 15, 2003 10:48 am
rany to juz drugi raz ten sam problem
Kod: Zaznacz cały
<?php
mysql_connect ("localhost", "root", "") or die ("Nie mozna sie połaczyc");
mysql_select_db ("baza") or die ("Nie mozna sie połaczyc");
if( !$_GET['cowybrane'] )
{
$cowybrane = 'id';
}
else
{
$cowybrane=$_GET['cowybrane'];
}
$wynik = mysql_query ( "SELECT * FROM lista ORDER BY ".$cowybrane ) or
die (mysql_error());
?>
<TABLE CELLPADDING=0 BORDER=1>
<TR><TD><B><a href="1.php?cowybrane=id">Nr.</a></B></TD>
<TD><B><a href="1.php?cowybrane=imie">Imię</a></B></TD>
<TD><B><a href="1.php?cowybrane=nazwisko">Nazwisko</a></B></TD>
<TD><B><a href="1.php?cowybrane=wiek">Wiek</a></B></TD></TR>
<?php
while ( $rekord = mysql_fetch_array( $wynik ) )
{
print "<TR><TD>$rekord[0]</TD><TD>$rekord[1]</TD><TD>$rekord[2]</TD><TD>$rekord[3]</TD></TR>\n";
}
?>
</TABLE>