pagination
Ik kom niet uit.
Ik heb een script voor resultaten uit een database. Ik wil de resultaten echter over meerdere pagina's verdelen (x aantal per pagina).
Ik heb diverse uitleg en scripts op deze forum geprobeerd (te implementeren) maar ik kom niet uit.
Bij deze vraag ik jullie om hulp bij aanpassing van mijn script.
alvast bedankt.
Code (php)
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
<?php
$server = 'localhost';
$user = '';
$pass = '';
$dbname = '';
$regio = $_POST['regio'];
$plaats = $_POST['plaats'];
if($regio == "" && $plaats == "")
{
$query = "SELECT * FROM WHERE type='' AND positie='A' ORDER BY 'plaats' ";
}
elseif($regio == "" && $plaats == "en/of plaats")
{
$query = "SELECT * FROM WHERE type='' AND positie='A' ORDER BY 'plaats' ";
}
elseif($regio != "" && $plaats == "")
{
$query = "SELECT * FROM WHERE type='' AND regio='$regio' AND positie='A' ORDER BY 'naam'";
}
elseif($regio != "" && $plaats == "en/of plaats")
{
$query = "SELECT * FROM WHERE type='u' AND regio='$regio' AND positie='A' ORDER BY 'naam'";
}
elseif($regio == "" && $plaats != "")
{
$query = "SELECT * FROM WHERE type='' AND plaats='$plaats' AND positie='A' ORDER BY 'naam'";
}
elseif($regio != "" && $plaats != "")
{
$query = "SELECT * FROM v WHERE type='' AND regio='$regio' AND plaats='$plaats' AND positie='A' ORDER BY 'naam'";
}
else
{
$query = "SELECT * FROM 1 WHERE type='' ORDER BY 'plaats'";
}
if($db = mysql_connect($server, $user, $pass))
{
$message = "";
if(mysql_select_db($dbname, $db))
{
$message .= "";
if($result = mysql_query($query, $db))
{
$message .= "";
}
else
{
$message .= "tabel kan niet geselecteerd worden.<\br>\n";
}
}
else
{
$message .= " Database $dbname niet gevonden.<\br>\n";
}
}
else
{
$message = "Verbinden met database is mislukt.<\br>\n";
}
while(list($id, $type, $naam, $positie, $website, $websitenaam, $regio, $postcode, $plaats, $adres, $telefoonnummer) = mysql_fetch_row($result))
{ echo "<div id='tabeldiv'>
<a href='$website' target='_blank'>
<div id='naam'>$naam </div>
<div id='adres'>$adres </div>
<div id='postcode'>$postcode </div>
<div id='plaats'>$plaats </div>
<div id='telefoonnummer'>$telefoonnummer</div>
</a>
</div>";
}
mysql_close($db);
?>
$server = 'localhost';
$user = '';
$pass = '';
$dbname = '';
$regio = $_POST['regio'];
$plaats = $_POST['plaats'];
if($regio == "" && $plaats == "")
{
$query = "SELECT * FROM WHERE type='' AND positie='A' ORDER BY 'plaats' ";
}
elseif($regio == "" && $plaats == "en/of plaats")
{
$query = "SELECT * FROM WHERE type='' AND positie='A' ORDER BY 'plaats' ";
}
elseif($regio != "" && $plaats == "")
{
$query = "SELECT * FROM WHERE type='' AND regio='$regio' AND positie='A' ORDER BY 'naam'";
}
elseif($regio != "" && $plaats == "en/of plaats")
{
$query = "SELECT * FROM WHERE type='u' AND regio='$regio' AND positie='A' ORDER BY 'naam'";
}
elseif($regio == "" && $plaats != "")
{
$query = "SELECT * FROM WHERE type='' AND plaats='$plaats' AND positie='A' ORDER BY 'naam'";
}
elseif($regio != "" && $plaats != "")
{
$query = "SELECT * FROM v WHERE type='' AND regio='$regio' AND plaats='$plaats' AND positie='A' ORDER BY 'naam'";
}
else
{
$query = "SELECT * FROM 1 WHERE type='' ORDER BY 'plaats'";
}
if($db = mysql_connect($server, $user, $pass))
{
$message = "";
if(mysql_select_db($dbname, $db))
{
$message .= "";
if($result = mysql_query($query, $db))
{
$message .= "";
}
else
{
$message .= "tabel kan niet geselecteerd worden.<\br>\n";
}
}
else
{
$message .= " Database $dbname niet gevonden.<\br>\n";
}
}
else
{
$message = "Verbinden met database is mislukt.<\br>\n";
}
while(list($id, $type, $naam, $positie, $website, $websitenaam, $regio, $postcode, $plaats, $adres, $telefoonnummer) = mysql_fetch_row($result))
{ echo "<div id='tabeldiv'>
<a href='$website' target='_blank'>
<div id='naam'>$naam </div>
<div id='adres'>$adres </div>
<div id='postcode'>$postcode </div>
<div id='plaats'>$plaats </div>
<div id='telefoonnummer'>$telefoonnummer</div>
</a>
</div>";
}
mysql_close($db);
?>
</body>
</html>
ik ga het uitproberen.
Alvast bedankt.
Je kopieert twee variabelen, zonder te controleren of ze bestaan.
Selecteren doe je niet met * maar met de veldnaam/veldnamen die je wilt.
Geef ook uit welke tabel je gegevens wilt halen.
Ik hoop niet dat v en 1 tabelnamen zijn.
Variabelen buiten quotes.
Bouw beveiliging in je script in.
Verder zie ik in deze code nergens een poging terug om pagination toe te voegen.
Laat eens zien wat je hebt geprobeerd en geef aan waar je op vast loopt. Met alleen 'ik kom er niet uit' is het lastig helpen.
Ik heb nimmer een opleiding in programmeren etc. gehad. Door zelfstudie via www.webgarden.be en PHP forums, snap ik hoe e.a. werkt en ben ik zo ver gekomen. Hoe ik de pagination moet invoegen etc. is mij nog een raadsel. Dus ga ik ergens tutorials over sql en php verder lezen en uitproberen. Daarnaast wil ik ook een filter functie op mijn website die de resultaten kan filteren, maar dat zal me nog meer tijd kosten.
Ik ben tot nu toe trost op wat ik bereikt heb, maar ook dankzij helpers van forums zoals deze.
Ik denk echter dat ik nog lang bezig ben, om veel te snappen en zo ver te zijn.
Ik heb dan ook 50 euro voorover als iemand mijn script kan aanpassen, waardoor het:
- pagination bevat
- een filter functie is
- beveiliging in zit en
- de resultaten uitklapbaar zijn. Ik heb nl een database met dezelfde itemnaam, maar verschillende adressen in dezelfde plaats. Ik dus dat het script per plaats een intem met dezelfde naam weergeeft en het mogelijk is om ook de rest zichtbaar te maken door op een knopje of zo te drukken. Het resultaat moet dus uitklapbaar zijn als ze dezelfde naam hebben.
Ik ga verder stoeien, maar hoor als iemand is die het voor 50 euro kan en wil doen, Meer heb ik niet.