Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Sortowanie?
Stef@n
post 14.08.2003, 18:54:09
Post #1





Grupa: Zarejestrowani
Postów: 191
Pomógł: 3
Dołączył: 14.08.2003

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


Czesc!
Dopiero sie ucze wiec prosze o pomoc!
Mam taki skrypt:
[php:1:43603d99bf]<?php
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>";

?>[/php:1:43603d99bf]

I nie wiem jak zrobic zeby po kliknieciu np na nazwisko sortowało np. alfabetycznie lub liczbami.
Prosze was o pomoc!
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
adwol
post 14.08.2003, 19:07:56
Post #2





Grupa: Zarejestrowani
Postów: 691
Pomógł: 0
Dołączył: 6.08.2003

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


Cytat
I nie wiem jak zrobic zeby po kliknieciu np na nazwisko sortowało np. alfabetycznie lub liczbami.
Prosze was o pomoc!

Zrób sobie tytuł kolumny jako link w którym będziesz miał jako parametr pole po którym należy sortować. A potem w sqlu:
[sql:1:d172692f0e]SELECT * FROM lista ORDER by nazwisko[/sql:1:d172692f0e]
Tylko sprawdzaj co dostałeś w tym parametrze (czy napewno jest to nazwa pola z bazy), żebyś sobie nie zrobił dziury w skrypcie. winksmiley.jpg
Go to the top of the page
+Quote Post
Stef@n
post 14.08.2003, 19:14:34
Post #3





Grupa: Zarejestrowani
Postów: 191
Pomógł: 3
Dołączył: 14.08.2003

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


Mozesz sie bardziej rozpisacbo nie wiem do konca?


[php:1:65e8cb14a6]<?php
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 $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>";



?>[/php:1:65e8cb14a6]
Wyskakuje: "Bład".
Cos jest chyba nie tak z tym, ale co?questionmark.gif
Kod
$wynik = mysql_query ("SELECT * FROM lista ORDER BY $cowybrane;") or

die ("Bład");
Go to the top of the page
+Quote Post
adwol
post 14.08.2003, 19:28:01
Post #4





Grupa: Zarejestrowani
Postów: 691
Pomógł: 0
Dołączył: 6.08.2003

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


Cytat
Wyskakuje: "Bład".
Cos jest chyba nie tak z tym, ale co?questionmark.gif
Kod
$wynik = mysql_query ("SELECT * FROM lista ORDER BY $cowybrane;") or

die ("Bład");

Jaki błąd? Wymień od razu sobie wszystkie wystąpienia
[php:1:b559acceae]$cowybrane[/php:1:b559acceae]
na
[php:1:b559acceae]$_GET['cowybrane'][/php:1:b559acceae]
bo to chyba jest problemem.

A samo sprawdzanie, zamiast
[php:1:b559acceae]<?php
if(!$cowybrane){$cowybrane="id";}
?>[/php:1:b559acceae]
zrób
[php:1:b559acceae]<?php
if (!in_array($_GET['cowybrane'], array('id', 'imie', 'nazwisko', 'wiek')))
$_GET['cowybrane'] = 'id';
?>[/php:1:b559acceae]
Go to the top of the page
+Quote Post
Stef@n
post 15.08.2003, 08:25:37
Post #5





Grupa: Zarejestrowani
Postów: 191
Pomógł: 3
Dołączył: 14.08.2003

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


Czyli cały skrypt jak ma wygldac cały?
Bo cos mi nadal nie działa.
Go to the top of the page
+Quote Post
Seth
post 15.08.2003, 10:02:45
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 335
Pomógł: 6
Dołączył: 7.03.2002

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


Dostales wskazowki, wiec jezeli nadal Ci zle dziala to podaj gdzie i co.
Go to the top of the page
+Quote Post
Stef@n
post 15.08.2003, 10:28:31
Post #7





Grupa: Zarejestrowani
Postów: 191
Pomógł: 3
Dołączył: 14.08.2003

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


Ja zrobiłem tak:
[php:1:43e1edd3e2]<?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>";
?>[/php:1:43e1edd3e2]

Wyskakuje taki bład:
Cytat
Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in C:apachehtdocskarty2.php on line 8

I jak myslicie co zas zle zrobiłem ? sad.gif
Go to the top of the page
+Quote Post
Seth
post 15.08.2003, 10:36:24
Post #8





Grupa: Przyjaciele php.pl
Postów: 2 335
Pomógł: 6
Dołączył: 7.03.2002

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


Zamiast:
[php:1:cb7fd28a1d]$wynik = mysql_query ("SELECT * FROM lista ORDER BY $_GET['cowybrane'];")...[/php:1:cb7fd28a1d]
daj:
[php:1:cb7fd28a1d]$wynik = mysql_query ("SELECT * FROM lista ORDER BY $_GET[cowybrane]")...[/php:1:cb7fd28a1d]
Go to the top of the page
+Quote Post
Stef@n
post 15.08.2003, 10:53:09
Post #9





Grupa: Zarejestrowani
Postów: 191
Pomógł: 3
Dołączył: 14.08.2003

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


To co wyzej sad.gif questionmark.gif?
Cytat
[php:1:0e6fad2c11]<?php
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 $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>";



?>[/php:1:0e6fad2c11]
Wyskakuje: "Bład".
Cos jest chyba nie tak z tym, ale co?questionmark.gif
Kod
$wynik = mysql_query ("SELECT * FROM lista ORDER BY $cowybrane;") or

die ("Bład");
Go to the top of the page
+Quote Post
Seth
post 15.08.2003, 10:53:18
Post #10





Grupa: Przyjaciele php.pl
Postów: 2 335
Pomógł: 6
Dołączył: 7.03.2002

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


http://forum.webinside.pl/viewtopic.php?p=1413#1413
dziala ? winksmiley.jpg
Go to the top of the page
+Quote Post
uboottd
post 15.08.2003, 11:00:27
Post #11





Grupa: Zarejestrowani
Postów: 384
Pomógł: 0
Dołączył: 3.04.2003
Skąd: Chorzow

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


Tajemniczy blad... grrr...

[php:1:4b53ac4254]
$wynik = mysql_query ("SELECT * FROM lista ORDER BY $cowybrane;") or die ("Bład");
[/php:1:4b53ac4254]

zamien na

[php:1:4b53ac4254]
$wynik = mysql_query ("SELECT * FROM lista ORDER BY $cowybrane;") or die (mysql_error());
[/php:1:4b53ac4254]

A skrypt Ci prawde powie...

A pewnie sie okaze ze wlasciwym rozwiazaniem jest:

[php:1:4b53ac4254]
$wynik = mysql_query ("SELECT * FROM lista ORDER BY ".$_REQUEST['$cowybrane']) or die (mysql_error());
[/php:1:4b53ac4254]
Go to the top of the page
+Quote Post
KaMeLeOn
post 15.08.2003, 11:03:10
Post #12





Grupa: Zarejestrowani
Postów: 680
Pomógł: 0
Dołączył: 1.10.2002
Skąd: Wrocław

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


Tu jest problem z zapisem wiersza...
Nie:
[php:1:08572a8339]<?php
mysql_connect ("localhost", "root", "") or
die ("Nie mozna sie połaczyc");
?>[/php:1:08572a8339]
Tylko:
[php:1:08572a8339]<?php
mysql_connect ("localhost", "root", "") or die ("Nie mozna sie połaczyc");
?>[/php:1:08572a8339]


--------------------
"Czerp z innych, ale nie kopiuj ich. Bądź sobą." Michel Quoist
Go to the top of the page
+Quote Post
Stef@n
post 15.08.2003, 12:42:07
Post #13





Grupa: Zarejestrowani
Postów: 191
Pomógł: 3
Dołączył: 14.08.2003

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


Dałem tak!
[php:1:f941a05b90]<?php
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 ".$_REQUEST['$cowybrane']) or die (mysql_error());


print "<TABLE CELLPADDING=0 BORDER=1>";
print "<TR>
<TD><B><a href="4.php?cowybrane=id">Nr.</a></B></TD>
<TD><B><a href="4.php?cowybrane=imie">Imię</a></B></TD>
<TD><B><a href="4.php?cowybrane=nazwisko">Nazwisko</a></B></TD>
<TD><B><a href="4.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>";

?>[/php:1:f941a05b90]

I wychodz:
Kod
You have an error in your SQL syntax near '' at line 1
[/quote]
Go to the top of the page
+Quote Post
Seth
post 15.08.2003, 13:43:57
Post #14





Grupa: Przyjaciele php.pl
Postów: 2 335
Pomógł: 6
Dołączył: 7.03.2002

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


Cytat

sprawdzales to ?
Go to the top of the page
+Quote Post
Stef@n
post 15.08.2003, 14:23:56
Post #15





Grupa: Zarejestrowani
Postów: 191
Pomógł: 3
Dołączył: 14.08.2003

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


Niedziała!!!
wychodzi:
Kod
Unknown column 'id' in 'order clause'
Go to the top of the page
+Quote Post
Seth
post 15.08.2003, 14:30:52
Post #16





Grupa: Przyjaciele php.pl
Postów: 2 335
Pomógł: 6
Dołączył: 7.03.2002

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


wiec po co podajesz w swoim kodzie: $cowybrane="id" skoro takiej kolumny wogole nie ma ?
Go to the top of the page
+Quote Post
Stef@n
post 15.08.2003, 14:46:04
Post #17





Grupa: Zarejestrowani
Postów: 191
Pomógł: 3
Dołączył: 14.08.2003

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


Dzieki za poswiecenie o Sorki za ten bład miało byc zamiast id to nr.
SETH ten kod nie działa przyciska sie, ale nie sortuje tylko odswieza.
Go to the top of the page
+Quote Post
Seth
post 15.08.2003, 14:51:06
Post #18





Grupa: Przyjaciele php.pl
Postów: 2 335
Pomógł: 6
Dołączył: 7.03.2002

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


hmm... podaj jakie kolumny masz w bazie
Go to the top of the page
+Quote Post
Stef@n
post 15.08.2003, 15:00:46
Post #19





Grupa: Zarejestrowani
Postów: 191
Pomógł: 3
Dołączył: 14.08.2003

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


nr | imie | nazwisko | wiek |

chyba o to chodzi?
Go to the top of the page
+Quote Post
Seth
post 15.08.2003, 15:09:29
Post #20





Grupa: Przyjaciele php.pl
Postów: 2 335
Pomógł: 6
Dołączył: 7.03.2002

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


Sprubuj tego. Wszystko powinno byc dobrze.
[php:1:aad72f406f]<?php
// Plik 1.php

mysql_connect( 'localhost', 'root', '' ) or die( 'Nie mozna sie połaczyc' );
mysql_select_db( 'baza' ) or die( 'Nie mozna sie połaczyc' );

if( empty( $_GET['order_by'] ) )
{
$order_by = 'nr';
}
else
{
$order_by = $_GET['cowybrane'];
}

$wynik = mysql_query( "SELECT * FROM lista ORDER BY ".$order_by ) or die (mysql_error());
?>

<TABLE CELLPADDING=0 BORDER=1>
<TR><TD><B><a href="1.php?order_by=nr">Nr.</a></B></TD>
<TD><B><a href="1.php?order_by=imie">Imię</a></B></TD>
<TD><B><a href="1.php?order_by=nazwisko">Nazwisko</a></B></TD>
<TD><B><a href="1.php?order_by=wiek">Wiek</a></B></TD></TR>

<?php
while ( $rekord = mysql_fetch_array( $wynik ) )
{
print "<TR><TD>$rekord[nr]</TD><TD>$rekord[imie]</TD><TD>$rekord[nazwisko]</TD><TD>$rekord[wiek]</TD></TR>n";
}
?>

</TABLE>[/php:1:aad72f406f]
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.07.2025 - 17:15