database gegevens sorteren??

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Samet ozel

samet ozel

08/01/2011 16:00:39
Quote Anchor link
Ik heb nu een script waarmee ik dus gegevens uit mijn database haal en ook kan zoeken, dit gebeurd probleemloos. het lukt mij niet om een knop boven studentennummer en een knop boven achternaam te plaatsen waarmee ik mijn resultaten uit mijn database kan sorteren.ik heb nu dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<html>
    <head>
        <title></title>
        <link href="opmaak.css" rel="stylesheet" type="text/css">    
    </head>    
<body>
<?php

// Koppelen met de server//
mysql_connect("localhost", "root", "") or die ("error server");

// Koppelen met de database wat nodig is //
mysql_select_db("datbaseHogeschool.db") or die ("error database");



/* print het invoerveld, dropdownlist en de knop */
echo '
<form action="" method="get">
    Zoek: <input type="text" name="snaam"/>
    <select name="dropdown">
      <option value="NULL">Zoek op..</option>
      <option value="studentnummer">Studentnummer</option>
      <option value="achternaam">Achternaam</option>
      <option value="voornaam">Voornaam</option>
      <option value="geboortedatum">Geboortedatum</option>
      <option value="slb">Slb</option>
    </select>

    <input type="submit" value="Zoeken" name="submit"/>
</form>
'
;

/* print tabel header */
echo '
<table class="header">
    <tr>
        <th>Studentnummer</th>
        <th>Achternaam</th>
        <th>Voornaam</th>
        <th>Geboortedatum</th>
        <th>Slb</th>
    <tr>    
'
;

//zodra op de knop zoeken gedrukt wordt
//en anders print alle studenten op

if (isset($_GET['submit']) && ($_GET['dropdown'] != "NULL")  ){
    // haal de ingevoerde waarde op
    $snaam = $_GET['snaam'];
    $dropdown = $_GET['dropdown'];
     //--> zoeken moet nog
    
    //zoek in de database op de opgegeven informatie in het invoerveld, dropdownlist

    $resultaten = mysql_query("SELECT * FROM student WHERE $dropdown = '$snaam'") or die("error query opdracht 1");
}
else {
    $resultaten = mysql_query("SELECT * FROM student;") or die("error query opdracht 1");
}


/* print per rij de inhoud uit de database */    
while ($resultaatOp2 = mysql_fetch_array($resultaten)){
echo '
    <tr>
        <td>'
. $resultaatOp2['studentnummer'] .'</td>
        <td>'
. $resultaatOp2['achternaam'] .'</td>
        <td>'
. $resultaatOp2['voornaam'] .'</td>
        <td>'
. $resultaatOp2['geboortedatum'] .'</td>
        <td>'
. $resultaatOp2['slb'] .'</td>
    <tr>
'
;
}


/* einde tabel */
echo '</table>';

    


?>

</body>
</html>


Toevoeging op 08/01/2011 16:03:01:

sorry perongeluk 2 keer geplaatst

Mod edit The Dutch Guy:
Graag in het vervolg bij code, [code] [/code] tags gebruiken.
Gewijzigd op 08/01/2011 19:37:55 door Bas IJzelendoorn
 
PHP hulp

PHP hulp

08/08/2020 23:08:25
 
Jordi Kroon
Redacteur

Jordi Kroon

08/01/2011 16:04:47
Quote Anchor link
Gebruik geen or die, bouw correcte fouthandeling in.
Gebruik geen * dit is een wildcard selecteer wat je wilt.
Gebruik mysql_fetch_assoc ipv array.
Mysql injectie mogelijk . ( mysql_real_escape_string
controleren of er gepost is doe je met. $_SERVER['REQUEST_METHOD'] == 'POST' )
Gewijzigd op 08/01/2011 16:07:29 door Jordi Kroon
 
- SanThe -

- SanThe -

08/01/2011 16:05:46
Quote Anchor link
Ik zie geen knoppen volgens mij.
Script is lek => SQL-Injection.
 
Samet ozel

samet ozel

08/01/2011 16:11:12
Quote Anchor link
ik moet or die gebruiken dat is een eis :(
Ik heb die knoppen nog niet omdat ik niet weet hoe het script werkt
 
Write Down

Write Down

08/01/2011 16:12:53
Quote Anchor link
Hmmz,

Ik zie ook nergens in je query enige vorm van sorteren staan. ORDER BY iets DESC (of ASC)
 
Samet ozel

samet ozel

08/01/2011 16:19:59
Quote Anchor link
ik snap het niet meer:(
kan dit?:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<input type="submit" value="sorteer" name="sorteerop"/>
$sorteerop = $_GET['sorteerop'];
$resultaten = mysql_query("SELECT * FROM student  ORDER BY $sorteerop")


Mod edit The Dutch Guy:
Graag in het vervolg bij code, [code] [/code] tags gebruiken.
Gewijzigd op 08/01/2011 19:38:17 door Bas IJzelendoorn
 
- SanThe -

- SanThe -

08/01/2011 16:23:00
Quote Anchor link
Nee. In $_GET['sorteerop'] zit de waarde 'sorteer', en ik neem niet aan dat jij een veld in de database hebt met die naam.
 
Jordi Kroon
Redacteur

Jordi Kroon

08/01/2011 16:24:28
Quote Anchor link
En zoals ik net al zei ,
Gebruik geen * dit is een wildcard selecteer wat je wilt.
 
Samet ozel

samet ozel

08/01/2011 16:24:42
Quote Anchor link
nee
Ik heb nu wel 2 knoppen geplaatst:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<table class="header">
    <tr>
        <th>Studentnummer
        <input type="submit" value="sort" name="std_num_sorteerop"/>
        </th>
        <th>Achternaam<input type="submit" value="sort" name="achtern_sorteerop"/></th>
        <th>Voornaam</th>
        <th>Geboortedatum</th>
        <th>Slb</th>
    <tr>    


Mod edit The Dutch Guy:
Graag in het vervolg bij code, [code] [/code] tags gebruiken.
Gewijzigd op 08/01/2011 19:38:39 door Bas IJzelendoorn
 
Write Down

Write Down

08/01/2011 16:25:48
Quote Anchor link
Wat ik persoonlijk zou doen is werken met een GET.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<a href="pagina.php?waargave=oplopend&volgens=user_id">Sorteer oplopens volgens user ID</a>

<?php
$weergave
= $_GET['weergave'];
$volgens = $_GET['volgens'];

if($weergave = 'oplopend')  {
//*** de rest kan je zelf wel uitvinden

/*
Dit verwerk je dan in je query
*/

[/code]
 
Jordi Kroon
Redacteur

Jordi Kroon

08/01/2011 16:29:23
Quote Anchor link
Je bedoeld pagina.php?weergave ipv waargave.
 
- SanThe -

- SanThe -

08/01/2011 16:29:27
Quote Anchor link
Write Down op 08/01/2011 16:25:48:
Wat ik persoonlijk zou doen is werken met een GET.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<a href="pagina.php?waargave=oplopend&volgens=user_id">Sorteer oplopens volgens user ID</a>

<?php
$weergave
= $_GET['weergave'];
$volgens = $_GET['volgens'];

if($weergave = 'oplopend')  {
//*** de rest kan je zelf wel uitvinden

/*
Dit verwerk je dan in je query
*/

?>



Foutje in jouw code:
if($weergave = 'oplopend') {
Moet natuurlijk == zijn.
Gewijzigd op 08/01/2011 16:31:34 door - SanThe -
 
Samet ozel

samet ozel

08/01/2011 16:31:11
Quote Anchor link
Ik wil op die twee knoppen een zodanig stukje script schrijven waarmee ik met bijv. <input type="submit" value="sort" name="achtern_sorteerop"/> de resultaten kan ordenen op achternaam.

Ik kom er nu echt niet meer uit??:(

Toevoeging op 08/01/2011 16:48:34:

ik had dit gevonden maar hoe kan ik dit hangen aan mijn knop:

$resultaat = mysql_query("SELECT * FROM student ORDER BY achternaam")
or die(mysql_error());

kan dit?

Toevoeging op 08/01/2011 18:00:06:

Ik ben overal aan het zoeken maar ik kom er niet meer uit kan iemand mij alstublieft helpen?
Ik weet nu dat ik order by moet gebruiken maar snap niet precies hoe ik dit kan hangen aan een knop

Ik hoop dat iemand mij kan helpen

Toevoeging op 08/01/2011 18:58:55:

?
 
Milo S

Milo S

08/01/2011 19:30:57
Quote Anchor link
Nou je maakt een formulier:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<form action="" method="post">
    <select name="order">
        <option value="Asc">Asc</option>
        <option value="Desc">Desc</option>
    </select>

    <input type="submit" value="Orden">
</form>


Dan kijk je of er op de knop is gedrukt en de waarde van order bestaat.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
if( $_SERVER['REQUEST_METHOD'] == 'POST' )
{

    # Order niet leeg
    if( !empty( $_POST['order'] ) )
    {

    }

    else
    {
        echo 'Ja pannekoek! Waar wil je op sorteren dan?!';    
    }
}

else
{
     # Formulier
}
?>


Als alles goed is voer je de query uit
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$sql
= "
SELECT
    regel1,
    regel2,
    regel3
FROM
    tabel
ORDER BY
    regel1 "
.mysql_real_escape_string( $_POST['order'] )."    
"
;
?>
Gewijzigd op 09/01/2011 09:25:04 door Milo S
 
- SanThe -

- SanThe -

08/01/2011 21:19:48
Quote Anchor link
Milo S op 08/01/2011 19:30:57:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$sql
= "
SELECT
    regel1,
    regel2,
    regel3
FROM
    tabel
ORDER BY
    regel1 = '"
.mysql_real_escape_string( $_POST['order'] )."'        
"
;
?>


ORDER BY veldnaam ASC (of DESC)

Dus géén = en géén quotes.
 
Bas Cost Budde

Bas Cost Budde

08/01/2011 21:27:25
Quote Anchor link
Tuurlijk wel; {veldnaam = 'dinges'} is een boolean, daar kun je op sorteren. Maar een beetje maf is het in dit geval wel; in POST[order] zit 'ASC' of 'DESC'.
 
Samet ozel

samet ozel

08/01/2011 21:41:25
Quote Anchor link
Ik begrijp gewoon niet meer waarom het niet lukt:S
Wil je misschien kijken wat ik fout doe en mij proberen te verbeteren want ik kom er niet meer uit.

negeer de comments :

<html>
<head>
<title></title>
<link href="opmaak.css" rel="stylesheet" type="text/css">
</head>
<body>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<?php

// Koppelen met de server//
mysql_connect("localhost", "root", "") or die ("error server");

// Koppelen met de database wat nodig is //
mysql_select_db("datbaseHogeschool.db") or die ("error database");



/* print het invoerveld, dropdownlist en de knop */
echo '
<form action="" method="get">
    Zoek: <input type="text" name="snaam"/>
    <select name="dropdown">
      <option value="NULL">Zoek op..</option>
      <option value="studentnummer">Studentnummer</option>
      <option value="achternaam">Achternaam</option>
      <option value="voornaam">Voornaam</option>
      <option value="geboortedatum">Geboortedatum</option>
      <option value="slb">Slb</option>
    </select>

    <input type="submit" value="Zoeken" name="submit"/>
</form>


'
;

/* print tabel header */
echo '
<table class="header">
    <tr>
        <th>Studentnummer
        <form action="" method="post">
        <input type="submit" value="sort" name="std_num_sorteerop"/>
        </form>
        </th>
        <th>Achternaam<input type="submit" value="sort" name="achtern_sorteerop"/></th>
        <th>Voornaam</th>
        <th>Geboortedatum</th>
        <th>Slb</th>
    <tr>    
'
;

//zodra op de knop zoeken gedrukt wordt
//en anders print alle studenten op

$sql = "SELECT * FROM `student` ORDER BY `student`.`studentnummer` DESC LIMIT 0, 30 ";

if (isset($_GET['submit']) && ($_GET['dropdown'] != "NULL")  ){
    // haal de ingevoerde waarde op
    $snaam = $_GET['snaam'];
    $dropdown = $_GET['dropdown'];
     //--> zoeken moet nog
    
    //zoek in de database op de opgegeven informatie in het invoerveld, dropdownlist

    $resultaten = mysql_query("SELECT * FROM student WHERE $dropdown = '$snaam'") or die("error query opdracht 1");
}
else {
    $resultaten = mysql_query("SELECT * FROM student;") or die("error query opdracht 1");
}


/* print per rij de inhoud uit de database */    
while ($resultaatOp2 = mysql_fetch_array($resultaten)){
echo '
    <tr>
        <td>'
. $resultaatOp2['studentnummer'] .'</td>
        <td>'
. $resultaatOp2['achternaam'] .'</td>
        <td>'
. $resultaatOp2['voornaam'] .'</td>
        <td>'
. $resultaatOp2['geboortedatum'] .'</td>
        <td>'
. $resultaatOp2['slb'] .'</td>
    <tr>
'
;
}


/* einde tabel */
echo '</table>';

    


?>

</body>
</html>
 
- SanThe -

- SanThe -

08/01/2011 21:42:20
Quote Anchor link
Bas Cost Budde op 08/01/2011 21:27:25:
Tuurlijk wel; {veldnaam = 'dinges'} is een boolean, daar kun je op sorteren.


ORDER BY true
of
ORDER BY false

En wat mag dat dan worden? En op welke kolom?

Edit: Een boolean maak je met dubbel == (veldnaam == 'dinges')
Gewijzigd op 08/01/2011 21:43:32 door - SanThe -
 
Samet ozel

samet ozel

08/01/2011 21:44:05
Quote Anchor link
in line 48 heb ik de order functie maar het lukt me niet om deze te hangen aan de knop "std_num_sorteerop "
 
- SanThe -

- SanThe -

08/01/2011 21:49:11
Quote Anchor link
Met regel 48 wordt verder helemaal niks gedaan.
 
Samet ozel

samet ozel

08/01/2011 21:56:34
Quote Anchor link
Hoe kan ik ervoor zorgen dat het werkt want als ik het goed heb is dat stukje van regel 48 wat ik moet hebben maar hoe zorg ik ervoor dat het reageert op wanneer ik op knop std_num_sorteerop klik?

Ik heb het gevoel alsof ik er bijna ben, ik ben er echt zoooo lang mee bezig en ik ben maar een beginner.
Ik hoop dat jullie me kunnen helpen
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.