Toon posts:

[php] pagina counter werkt niet

Pagina: 1
Acties:

Onderwerpen


  • pindamaster
  • Registratie: April 2010
  • Laatst online: 08-06 16:53
hoi,
ik heb mijn eige pagina counter gemaakt maar die doet het niet, ik heb geen vergelijkbaare scripts kunnen vinden. het gaat erom dat in de sql db het id van de pagina wordt vermeld, zodat ik alle stats in een db heb staan.
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
<?php
include 'sql_server.php';
include 'standaard.php';
$p=secure_mysqlstring($_GET['P']);
$query = "SELECT * FROM pv  WHERE paginanumer='$p';";
$sqluit = mysql_query($query);
$record = mysql_fetch_object($sqluit);
$pageview=$record->totaal;
if(mysql_affected_rows ($sqluit)==0){
    $sql="insert into pv (paginanumer,totaal) values ($p,1)";
     mysql_query($sql);
    
}else{
    $pageview++;

    $sqlin = "UPDATE pv SET totaal = '$nieuw_aantal' WHERE paginanumer = '$p';";

    if(!$res = mysql_query($sqlin))
    {
        mysql_error();
        
    } 
    
}
?>

toelichting van de code, de tabel is pv (pagevieuws) en in sql_server.php staat de sql inlog gegevens en de db select.
de server is een LAMP config en de storage engine is innoDB

de foutmeldingen, geen, maar hij slaat niks op 8)7 dus wat doe ik hier fout???

[Voor 2% gewijzigd door pindamaster op 23-06-2011 16:06. Reden: wat toegevoegd]

Meer is beter toch?


  • henkiskaal
  • Registratie: September 2008
  • Laatst online: 23:40
zet $nieuw_aantal = $pageview; onder je $pageview++ in het else gedeelte

  • BasPH
  • Registratie: November 2009
  • Laatst online: 08-06 10:04
In de update-query gebruik je $nieuw_aantal, en deze bestaat niet. Je moet $pageview gebruiken.

henkiskaal was me al voor.

[Voor 16% gewijzigd door BasPH op 23-06-2011 16:09]


  • MuddyMagical
  • Registratie: Januari 2001
  • Laatst online: 08:57
Doe in ieder geval achter elke mysql_query(); even "or die(mysql_error());"

Om te debuggen gewoon stapje voor stapje gaan. Gewoon alle query's echo'en voordat je ze draait zodat je kan zien of ze goed gaan.

  • TJHeuvel
  • Registratie: Mei 2008
  • Niet online
Waarom track je niet gewoon elke visit en laat je het resultaat zien van
SQL:
1
SELECT COUNT(visit) FROM pages WHERE paginanummer = 1
. Dan kan je ook statistieken zoals datum erbij vermelden.

Freelance Unity3D developer


  • HuHu
  • Registratie: Maart 2005
  • Niet online
Gebruik geen mysql_affected_rows, maar mysql_num_rows. Verder heb je in MySQL ook de INSERT INTO ... ON DUPLICATE UPDATE query, die alles vanzelf voor je regelt.

  • pindamaster
  • Registratie: April 2010
  • Laatst online: 08-06 16:53
henkiskaal schreef op donderdag 23 juni 2011 @ 16:08:
zet $nieuw_aantal = $pageview; onder je $pageview++ in het else gedeelte
foutje, die had ik niet gezien.
Ik heb mysql_num_rows erin gezet ipv die andere. op regel 10 was ik 2 van die ' vergeten(naam vergeten |:( ).
dit is nu mijn 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
<?php
include 'sql_server.php';
include 'standaard.php';

$p=secure_mysqlstring($_GET['P']);

$query = "SELECT * FROM pv  WHERE paginanumer='$p';";
$sqluit = mysql_query($query);
$record = mysql_fetch_object($sqluit);
$pageview=$record->totaal;
if(mysql_num_rows ($sqluit)==0){
    $sql="insert into pv (paginanumer,totaal) values ('$p',1)";
     mysql_query($sql)or die(mysql_error());
    
}else{
    $pageview++;
    $sqlin = "UPDATE pv SET totaal = '$pageview' WHERE paginanumer = '$p';";
    $res = mysql_query($sqlin)or die(mysql_error());    
}
echo $query.'<br>';
echo $sql.'<br>';
echo $sqlin.'<br>';
?>

dit komt er uit
SELECT * FROM pv WHERE paginanumer='';
insert into pv (paginanumer,totaal) values ('',1)
oftewel het pagina id komt er niet in :S

ga ik effe op de F5 toets drukken komt er dit uit
SELECT * FROM pv WHERE paginanumer='';

UPDATE pv SET totaal = '9' WHERE paginanumer = '';
waar is mijn pagina id heen???

[Voor 7% gewijzigd door pindamaster op 23-06-2011 16:47]

Meer is beter toch?


  • Manuel
  • Registratie: Maart 2008
  • Laatst online: 09-06 21:15
Zeker weten dat het http://www.mijneigensupercoolewebsite.nl/?P=paginanummer is en niet ?p=paginanummer ?

Lees ook even:
Programming FAQ - PHP
Programming FAQ - Algemeen #Tips bij debuggen

  • MuddyMagical
  • Registratie: Januari 2001
  • Laatst online: 08:57
nvm...

[Voor 93% gewijzigd door MuddyMagical op 23-06-2011 16:52]


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 08-06 15:30

NMe

Quia Ego Sic Dico.

Kom op zeg, even debuggen kun je zelf ook. Naast wat Manuel zegt geef je ook nog eens niet de functie erbij die schrijft naar $p, dus wij kunnen niet eens voor je debuggen nog naast het feit dat het helemaal niet wenselijk is dat wij dat doen voor je.

Ga eerst even zelf debuggen voordat je hier je code dumpt. En kijk vooral ook even naar de post van HuHu hierboven.

MuddyMagical: dat hoeft niet en is 100% equivalent aan wat hij al heeft.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • pindamaster
  • Registratie: April 2010
  • Laatst online: 08-06 16:53
oke, hij werkt nu die p was casesenitive, thanx voor de hulp.
ik zal voortaan wel zelf beter kijken.

Meer is beter toch?

Pagina: 1


Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee