Registreer FAQ Berichten van vandaag


Ga terug   Scholieren.com forum / Technologie / Software & Hardware
Reageren
 
Topictools Zoek in deze topic
Oud 20-12-2003, 19:00
Martin
Avatar van Martin
Martin is offline
Ik heb op een website een statistiekenscript draaien dat bijhoud hoeveel unieke bezoekers er per dag komen en hoeveel pageviews ze genereren.

Plotseling werkt het script niet meer, er komen een aantal foutmeldingen tevoorschijn waar ik niet weer wat ik er mee aan moet. Ik vind het ook vreemd dat het script na meer dan 5.000 unieke bezoekers en 30.000 pageviews pas deze melding begint te vertonen.

De foutmelding:

Citaat:
Warning: mysql_query() [function.mysql-query]: Unable to save result set in /usr/home/bellevue/www/includes/updatestats.php on line 23

Warning: mysql_numrows(): supplied argument is not a valid MySQL result resource in /usr/home/bellevue/www/includes/updatestats.php on line 24

Warning: mysql_query() [function.mysql-query]: Unable to save result set in /usr/home/bellevue/www/includes/updatestats.php on line 29

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /usr/home/bellevue/www/includes/updatestats.php on line 29
Broncode:
PHP-code:
<?
mysql_connect('localhost','blub','blub') or die('Hmmz.');
mysql_select_db('blub') or die('Onverwachte fout opgetreden!');

/* set some vars */
$vanjaar = date('Y');
$vandaag = date('z');
$clientip = $_SERVER['REMOTE_ADDR'];
$currenttime = time();
$hostname = gethostbyaddr($clientip);
$lastvisitcode = $vandaag.$vanjaar;

/* ##### STATISTIEKEN VPD ##### */
/* check if there is a row with today`s stats, if not, create one */
$sql = "SELECT * FROM statistieken_vpd WHERE dag = '$vandaag' AND jaar = '$vanjaar'"; 
$resultaat = mysql_query($sql) or die(mysql_error()); 
$aantal = mysql_num_rows ($resultaat); 
if ($aantal < 1){ 
mysql_query("INSERT INTO statistieken_vpd (jaar,dag) VALUES ('$vanjaar', '$vandaag')") or die (mysql_error());


/* ##### STATISTIEKEN IPS ##### */
$statistieken = mysql_query("SELECT * FROM statistieken_ips WHERE ip = '$clientip'");
$rows = mysql_numrows($statistieken);
if($rows < 1){
mysql_query("INSERT INTO statistieken_ips (ip,views,firstvisit,lastvisit,hostname) VALUES ('$clientip', '0', '$currenttime', '$currenttime', '$hostname')") or die (mysql_error());
}

$checklastvisit = mysql_fetch_array(mysql_query("SELECT lastvisitcode FROM statistieken_ips WHERE ip = '$clientip'"));
$dblastvisitcode = $checklastvisit['lastvisitcode'];

if($dblastvisitcode < $lastvisitcode){
    /* check if there is a row with today`s stats, if not, create one */
    $sql = "SELECT * FROM statistieken_uvpd WHERE dag = '$vandaag' AND jaar = '$vanjaar'"; 
    $resultaat = mysql_query($sql) or die(mysql_error()); 
    $aantal = mysql_num_rows ($resultaat); 
    if ($aantal < 1){ 
    mysql_query("INSERT INTO statistieken_uvpd (jaar,dag) VALUES ('$vanjaar', '$vandaag')") or die (mysql_error());
    }
    
    mysql_query("UPDATE statistieken_uvpd SET visits=visits+1 WHERE dag = '$vandaag' AND jaar = '$vanjaar'");

}


/* update global info */
mysql_query("UPDATE statistieken_vpd SET views=views+1 WHERE dag = '$vandaag' AND jaar = '$vanjaar'");

/* update per-user info */
mysql_query("UPDATE statistieken_ips SET views=views+1, lastvisit='$currenttime', lastvisitcode='$lastvisitcode' WHERE ip = '$clientip'");


?>
Met citaat reageren
Advertentie
Oud 21-12-2003, 07:51
Harrie
Avatar van Harrie
Harrie is offline
ik heb een vermoeden dat de velden niet groot genoeg zijn om de waarde te mogen opslaan. Dus maak van SMALLINT (als je die gebruikt) een MEDIUMINT?
Met citaat reageren
Oud 21-12-2003, 09:36
Koen
Avatar van Koen
Koen is offline
Citaat:
Harrie schreef op 21-12-2003 @ 08:51:
ik heb een vermoeden dat de velden niet groot genoeg zijn om de waarde te mogen opslaan. Dus maak van SMALLINT (als je die gebruikt) een MEDIUMINT?
Denk ik inderdaad ook. Heb zelf ook eerder meegemaakt dat een statistieken script er de brui aan gaf omdat de velden om 't ID in op te slaan niet groot genoeg meer waren.
Met citaat reageren
Oud 21-12-2003, 23:19
Verwijderd
Of je database zit vol
Misschien zit je aan je max quata
Met citaat reageren
Oud 22-12-2003, 07:41
Blowie
Blowie is offline
als ie het altijd gedaan heeft zal je inderdaad sneller aan je quota zitten dan dat het script faalt..

Alleen ff 1 vraagje.. waarom werk je niet met DATE / DATETIME velden? Dat is namelijk sneller en neemt minder ruimte in..
Ik ben geloof ik wel een beetje te laat.. want het script is al in gebruik.. maar misschien voor versie 2.

En volgens mij als je veld niet groot genoeg is dan kapt ie hem gewoon af.. Of je wil verkeerde data in de goede velden stoppen; tekst in INT velden en zow.. (ik heb het nog nooit geprobeerd.. maar het lijkt me dat dat niet kan..)
__________________
nr. 3 of The Eleven Rules of the Earth - When in another’s lair, show him respect or else do not go there. -
Met citaat reageren
Oud 22-12-2003, 09:02
Martin
Avatar van Martin
Martin is offline
Database vol? Lijkt me onwaarschijnlijk:

Code:
15 tabel(len)   Som  6.951  --    698,2 KB
Met citaat reageren
Oud 22-12-2003, 09:04
Martin
Avatar van Martin
Martin is offline
Interessant, als ik in PHPMyAdmin de DB wil exporteren:

PHP-code:
# phpMyAdmin SQL Dump
# version 2.5.4-rc2
# [url]http://www.phpmyadmin.net[/url]
#
# Host: localhost
# Generatie Tijd: 22 Dec 2003 om 10:03
# Server versie: 3.23.56
# PHP Versie: 4.3.1

# Database : `space`


# --------------------------------------------------------

#
# Tabel structuur voor tabel `statistieken_ips`
#

CREATE TABLE `statistieken_ips` (
  `
uidint(11NOT NULL auto_increment,
  `
ipvarchar(200NOT NULL default '',
  `
viewsvarchar(200NOT NULL default '',
  `
firstvisitvarchar(200NOT NULL default '',
  `
lastvisitvarchar(200NOT NULL default '',
  `
hostnamevarchar(200NOT NULL default '',
  `
lastvisitcodevarchar(10NOT NULL default '',
  
PRIMARY KEY  (`uid`)
TYPE=InnoDB ROW_FORMAT=COMPRESSED AUTO_INCREMENT=6149 ;

#
# Gegevens worden uitgevoerd voor tabel `statistieken_ips`
#


Warning:  mysql_query() [function.mysql-query]: Unable to save result set in /usr/home/bellevue/www/mysqladmin/libraries/mysql_wrappers.lib.php on line 108
Fout

    SQL
-query 


    
SELECT  FROM  `space`.`statistieken_ipsLIMIT 6146 


    MySQL retourneerde


#1030 - Got error 127 from table handler 
Met citaat reageren
Oud 22-12-2003, 11:23
Blowie
Blowie is offline
Niet per ongeluk je database een keertje gecrasht / beschadigd? Rechten veranderd - dat kan niet, want dan geeft ie dat aan? eh...

Dit is eigenlijk weer helemaal nieuwe voor mij.. Misschien php geupdate?
Citaat:
10.4.3 I upgraded to PHP 4, and now mysql keeps telling me "Warning: MySQL: Unable to save result set in ...". What's up?

Most likely what has happened is, PHP 4 was compiled with the '--with-mysql' option, without specifying the path to MySQL. This means PHP is using its built-in MySQL client library. If your system is running applications, such as PHP 3 as a concurrent Apache module, or auth-mysql, that use other versions of MySQL clients, then there is a conflict between the two differing versions of those clients.

Recompiling PHP 4, and adding the path to MySQL to the flag, ' --with-mysql=/your/path/to/mysql ' usually solves the problem.
is dat van toepassing bij jou?

Iets anders heb ik nog niet kunnen vinden..
__________________
nr. 3 of The Eleven Rules of the Earth - When in another’s lair, show him respect or else do not go there. -
Met citaat reageren
Advertentie
Reageren


Regels voor berichten
Je mag geen nieuwe topics starten
Je mag niet reageren op berichten
Je mag geen bijlagen versturen
Je mag niet je berichten bewerken

BB code is Aan
Smileys zijn Aan
[IMG]-code is Aan
HTML-code is Uit

Spring naar

Soortgelijke topics
Forum Topic Reacties Laatste bericht
Software & Hardware [PHP] array()
Martin
11 25-01-2003 17:07


Alle tijden zijn GMT +1. Het is nu 22:00.