[php] pagina counter werkt niet

Pagina: 1
Acties:

Onderwerpen


  • pindamaster
  • Registratie: April 2010
  • Laatst online: 19:10
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 ]


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

  • BasPH
  • Registratie: November 2009
  • Laatst online: 13-10 18:02
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: 15:42
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: 19:10
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 ]


  • Manuel
  • Registratie: Maart 2008
  • Laatst online: 03-11 14:28
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: 15:42
nvm...

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


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

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: 19:10
oke, hij werkt nu die p was casesenitive, thanx voor de hulp.
ik zal voortaan wel zelf beter kijken.
Pagina: 1