foutmelding in Pagination script

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ervaren senior C# developer in Arnhem gezocht

Organisatie Voor een van mijn businesspartners uit de omgeving van Arnhem ben ik op zoek naar een ervaren senior C# ASP.NET developer. Deze organisatie maakt complexe software producten voor bepaalde bedrijfsprocessen. Denk hierbij aan beslisregelsystemen, klachtenmanagementsystemen, digitale formulieren of een combinatie hiervan in één portaal. De software wordt specifiek op elke klant zijn wens aangepast. Bij de klanten moet je denken aan enerzijds provincies, gemeenten en overheidsinstanties en anderzijds aan banken, hypotheekverstrekkers en verzekeringsmaatschappijen. Binnen het bedrijf, van circa zestig man groot, heerst een informele sfeer. Collegialiteit staat er hoog in het vaandel, wat je terugziet in de wekelijkse vrijdagmiddagborrel

Bekijk vacature »

Mohamed nvt

Mohamed nvt

16/06/2016 23:41:56
Quote Anchor link
@Mods,

Sorry als ik hier teveel vragen stel!

Zoals de titel zegt, heb ik helaas een probleem met pagination.
Via de website: http://www.phpeasystep.com/phptu/29.html heb ik een kant en klare pagination script gevonden. Vervolgens ben ik aan de slag gegaan om deze script te integreren in mijn test crud applicatie.

Alle 7 stappen die op die website worden gevraagd, heb ik uitgevoerd en toch krijg ik volgens mij een niet-logische foutmelding nl;
Notice: Undefined variable: pagination in C:\xampp\htdocs\employees_CRUD\index.php on line 24
Notice: Undefined variable: pagination in C:\xampp\htdocs\employees_CRUD\index.php on line 29

PHP regel van 20 t/m 30 ziet als volgt uit:

/* Setup vars for query. */
$targetpage = "pagination.php"; //your file name (the name of this file)
$limit = 2; //how many items to show per page
$page = $_GET['page'];
if($page)
$start = ($page - 1) * $limit; //first item to display on this page
else
$start = 0; //if no page var is given, set start to 0

Mijn tweede vraag is welk kolom uit de DB moet aangegeven worden in de regel:

/* Get data. */
$sql = "SELECT column_name FROM $tbl_name LIMIT $start, $limit";
$result = mysql_query($sql);

Bij column_name geef ik de eerste kolom uit de DB op, nl die van EmpID.
Omdat verder geen uitleg erbij staat van welke kolom hier opgegeven moet worden, heb ik de eerste kolom opgegeven.

Alvast bedankt voor jullie reacties.
Gewijzigd op 16/06/2016 23:42:51 door Mohamed nvt
 
PHP hulp

PHP hulp

25/04/2019 20:55:24
Honeypot
 
Thomas van den Heuvel

Thomas van den Heuvel

17/06/2016 00:33:17
Quote Anchor link
In dat artikel is $pagination een string waarin de hele navigatie wordt geplakt. Zoek in je eigen code naar "pagination" en kijk waar dit vandaan komt. Het feit dat de melding niets te maken lijkt te hebben met de bovenstaande regels code kan ik niet verklaren, weet je zeker dat dit de laatste versie van die code is? Ververs de pagina nogmaals en controleer bijbehorende code.

Bij het ophalen van de data zou ik gewoon alle relevante data ophalen die je nodig hebt. Zolang je maar zorgt dat de query die berekent hoeveel resultaten er zijn op een vergelijkbare manier wordt opgebouwd. MySQL heeft hier trouwens een speciale voorziening voor zodat je een query met een LIMIT opnieuw kunt uitvoeren alsof deze zonder LIMIT was opgesteld.

Ik zou trouwens het gebruik van mysql_-functies afraden omdat de oorspronkelijke MySQL-driver niet langer bestaat (vanaf PHP versie 7).

Ik zie zo gauw ook niet wanneer dit artikel geschreven is. Ik heb daar altijd een hekel aan, mogelijk zijn artikelen dan compleet ouwe meuk.
 
Martin -

Martin -

17/06/2016 14:30:06
Quote Anchor link
Thomas van den Heuvel op 17/06/2016 00:33:17:
Ik zie zo gauw ook niet wanneer dit artikel geschreven is. Ik heb daar altijd een hekel aan, mogelijk zijn artikelen dan compleet ouwe meuk.


In de footer van de site staat: © 2005 - 2012 PHPeasystep
Ik denk dat je zonder twijfel kunt zeggen dat het meuk is. Kijk alleen maar naar dit:
$total_pages = mysql_fetch_array(mysql_query($query));
 
Mohamed nvt

Mohamed nvt

17/06/2016 23:46:50
Quote Anchor link
Met behulp van enkele video's van Youtube is het me gelukt om pagination vanaf scratch te bouwen en het te integreren in de test crud applicatie.
Morgen zal ik de script hier plaatsen.
 
Ben van Velzen

Ben van Velzen

18/06/2016 01:56:31
Quote Anchor link
Handig, want als ik een telling doe van regels die je geplaatst hebt is er geen enkele reden dat je überhaupt een undefined variable melding zou krijgen, zeker niet op pagination, want $pagination wordt hier nergens genoemd. Je andere script was ongetwijfeld te corrigeren geweest als je de juiste regels had geplaatst.
 
Mohamed nvt

Mohamed nvt

18/06/2016 13:30:07
Quote Anchor link
@Ben,

Voor de volgende keer zal ik het volledige code hier plaatsen :)

Zoals beloofd, zou ik vandaag een kant en klare pagination script hier plaatsen:


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
<?php

require_once"inc/db-config.php"; /* connectie met de database*/
$per_page = 5;
$pages_query = mysql_query("select count('EmpID') from employees");  /* Hier moet een kolom uit de database aangegeven worden*/
$pages = ceil (mysql_result($pages_query, 0) / $per_page);
$page = (isset($_GET['page'])) ? (int)$_GET['page'] : 1;
$start = ($page - 1) * $per_page;
$query = mysql_query("select FirstName from employees limit $start, $per_page"); /* Hier heb ik nog een andere kolom uit de database aangegeven */

while ($query_row = mysql_fetch_assoc($query)) {
    echo $query_row['FirstName'] . "<br />";    
    }

$prev = $page - 1;
$next = $page + 1;
if (!($page <=1)) {
        echo "<a href='pagination.php?page=$prev'>Previous Page</a>"; /* in deze link geef je de naam van dit pagina op */
}

if($pages >= 1) {
    for ($x=1; $x<=$pages; $x++) {
    echo ($x == $page) ? '<b><a href="?page='.$x.'">'.$x.'</a></b> ' : '<a href="?page='.$x.'">'.$x.'</a> ';
        
    }
    
}

if(!($page >=$pages)) {
    echo "<a href='pagination.php?page=$next'>Next Page</a>";
}

?>

Mocht er nog interesse zijn in hoe ik de pagination script heb geïntegreerd in de CRUD applicatie, dan hoor ik dat graag en ik zal die code hier ook plaatsen.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

18/06/2016 14:19:51
Quote Anchor link
Beste Mohamed,

Je gebruikt nog de mysql_ functies welke onder PHP versie 7 niet meer aanwezig zijn. Zodra je webhost overstapt op PHP versie 7 dan zit je dus in de prijzen. Advies is om alle mysql_ functies om te zetten in mysqli_ functies.
 
Mohamed nvt

Mohamed nvt

18/06/2016 22:17:33
Quote Anchor link
Frank Nietbelangrijk op 18/06/2016 14:19:51:
Beste Mohamed,

Je gebruikt nog de mysql_ functies welke onder PHP versie 7 niet meer aanwezig zijn. Zodra je webhost overstapt op PHP versie 7 dan zit je dus in de prijzen. Advies is om alle mysql_ functies om te zetten in mysqli_ functies.


Hoi Frank,
Volgens mij kan ik mysqli het beste gebruiken op het moment dat ik over overstap op OOP of is het nu al beter om mysqli in gebruik te nemen?
Ik heb het nog niet opgezocht, maar is er wezenlijk verschil tussen mysql en mysqli?
Heeft mysqli meer handige functies dan mysql om de overstap te versnellen, vraag ik me af?
 
- Ariën -
Beheerder

- Ariën -

18/06/2016 22:22:08
Quote Anchor link
Voor MySQLi kan je zowel de standaard procedurele functies gebruiken, maar ook is er de mogelijkheid om het als interne MySQLi-class te gebruiken (dus OOP). Ikzelf heb mijn eigen CMS van procedurele MySQL-functies herschreven naar MySQLi-OOP. Op dit punt heb je meer te zeggen over de afhandeling, want je kan bijv. de classe extenden met eigen nieuwe functies en meteen exceptions opwerpen als er iets fout gaat.

Tussen mysql en mysqli zit enig verschil in de functienamen. Er moet een 'i' achter (mysql_query -> mysqli_query) Vaak moet je nu ook een variabele van je connectie gebruiken, en zijn de parameters in enkele gevallen veranderd. Een kwestie van de manuals op php.net lezen.
 



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.