/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Lidt hjælp til sortering af data fra MySQL~
Fra : Thomas Jensen


Dato : 29-03-02 12:21

Hej,

Jeg har lavet en tabel i MySQL:
CREATE TABLE vinklub (
id int(6) NOT NULL AUTO_INCREMENT,
PRIMARY KEY(id),
navn VARCHAR(30),
vinnavn VARCHAR(50),
land VARCHAR(15),
aargang INT(4),
farve INT(1),
aroma INT(2),
smag INT(2),
helhed INT(2),
ialt INT(2),
butik VARCHAR(30),
pris INT(4),
kommentar TINYTEXT,
dato timestamp
);

Jeg vil gerne have lavet som jeg kan vælge hvad dataene skal sorteres efter
fx med select eller radiobutton:

Hvad ønsker du at sortere efter?<br>
<select name="sortering">
<option>navn</option>
<option>vinnavn</option>
<option>land</option>
<option>aargang</option>
<option>farve</option>
</select>

<br>
<br>
<?
mysql_connect("localhost","root","pw");
mysql_select_db("db");
$query = mysql_query("SELECT * FROM vinklub ORDER BY navn");
echo "<font color=\"red\"><ol>";
while($r = mysql_fetch_array($query)) {
$navn = $r["navn"];
$vinnavn = $r["vinnavn"];
$dato = $r["dato"];
echo "<li>$navn - $vinnavn blev tilføjet $dato";
}
echo "</ol></font>";
?>

men hvordan for jeg valget jeg laver i select til at hoppe ind som en
variabel efter ORDER BY ??
Kan der ikke også tilføjes noget med om den skal sortere faldende/stigende?
(det skal vel ind i samme linie)

Hvis der er nogen der har et eksempel må de meget gerne poste det

Mvh
Thomas



 
 
Jacob Atzen (29-03-2002)
Kommentar
Fra : Jacob Atzen


Dato : 29-03-02 12:26

"Thomas Jensen" <kingsarl@hotmail.com> writes:

> Jeg vil gerne have lavet som jeg kan vælge hvad dataene skal sorteres efter
> fx med select eller radiobutton:

Du bliver nødt til at tage tingene i 2 omgange. Så vidt jeg kan se prøver
du at gøre det hele på en gang. Forklaring:

Først laver du en formular, hvor man kan vælge sorteringskriterie.
Dernæst submitter du formularen til din php kode og kan derfra sortere
ud fra det valgte kriterie.

Altså "vælg.php":
<form action="vis.php" method="post">
<select name="sorter_efter">
..
..
..
</select>
</form>

Og "vis.php":
global $sorter_efter;
mysql_query("SELECT * FROM table ORDER BY $sorter_efter");

Ovenstående meget frit efter hovedet - skal sikkert rettes til.

Med venlig hilsen
- Jacob Atzen

Ole (29-03-2002)
Kommentar
Fra : Ole


Dato : 29-03-02 13:27

Hvis du vil have det hele på samme side skal du stadig følge Jacobs
eksempel, poste til samme side.

Så kan du sætte dit kald til databasen ind i en
if (isset($sorter)) {
Blabla sortering af udskrift...
}
Eller du kan includerer din form tekst på din "vis.php" side

include ("vælg.php");

Hilsen Ole



Thomas Jensen (29-03-2002)
Kommentar
Fra : Thomas Jensen


Dato : 29-03-02 15:02

Hej Jakob.

Jeg har prøvet flg:
valg.php:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Database udtræk</title>
</head>
<body>
<h3 align="center">database udtræk</h3><br>
<br>
<form action="vis.php" method="post">
<select name="sorter_efter">
<option>navn</option>
<option>vinnavn</option>
<option>land</option>
<option>aargang</option>
<option>farve</option>
</select>
<input type=submit value=sorter>
</form>
</body>
</html>
**********************************
vis.php:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Database udtræk</title>
</head>
<body>
<h3 align="center">database udtræk</h3><br>
<br>
<?
mysql_connect("localhost","root","pw");
mysql_select_db("db");
global $sorter_efter;
mysql_query("SELECT * FROM table ORDER BY $sorter_efter") or die("Query
fejl!");
echo "<font color=\"red\"><ol>";
while($r = mysql_fetch_array($query)) {
$navn = $r["navn"];
$vinnavn = $r["vinnavn"];
$dato = $r["dato"];
echo "<li>$navn - $vinnavn blev tilføjet $dato";
}
echo "</ol></font>";
?>
</body>
</html>
***************************
men jeg får queryfejl.
Kan du evt hjælpe mig lidt ?
Jeg har chmod begge til 777.

Som sagt så er jeg stadigvæk newbie

Thomas



Andreas Kleist Svend~ (29-03-2002)
Kommentar
Fra : Andreas Kleist Svend~


Dato : 29-03-02 17:11

Thomas Jensen wrote:

> mysql_query("SELECT * FROM table ORDER BY $sorter_efter") or die("Query
> fejl!");

Hvis du i stedet for "Query fejl!" skriver mysql_error() får du mere at
vide om hvad der er galt med dit query.

--
mvh Andreas Kleist Svendsen

Søg
Reklame
Statistik
Spørgsmål : 177522
Tips : 31968
Nyheder : 719565
Indlæg : 6408668
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste