• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Nach include - SQL Error

Status
Für weitere Antworten geschlossen.

marlin-b

Neues Mitglied
Nach include - SQL Error (Problem gelöst thx)

Ich habe für ein Homepage ein Counter eingefügt.
Jetzt habe ich ihn über include auf meine Homepgae eingefügt.
jetzt bekomme ich aber volgenden fehler:
PHP:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /customers/vistar.be/vistar.be/httpd.www/1/stats/monat.php on line 146

Um den Fehler genauer zu erkennen habe ich echo mysql_error() eingegeben und bekomme volgenden hinweis:
PHP:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /customers/vistar.be/vistar.be/httpd.www/1/stats/monat.php on line 146

wenn ich die datei ohne include öffne also direkt, dann bekomme ich keine Fehlermeldung!

Auf Line 146 steht:
PHP:
while($row=mysql_fetch_array($abfrage))


Woran liegt es, dass jetzt die Fehlermeldung kommt und wie kann ich ih beheben?

mfg.


Link zur Page: Unbekannt
Link zur Datei: http://www.vistar.be/1/stats/monat.php
 
Zuletzt bearbeitet:
Gib mal den Code der vorherigen paar Zeilen, besonders wichtig ist die Stelle, an der $abfrage definiert wird.
 
PHP:
		$abfrage=mysql_query("select sum(user), sum(view) from Statistik_Day where day='$aktTag'");
		$TagUser=mysql_result($abfrage,0,0);
		$TagView=mysql_result($abfrage,0,1);
		$UserTag[$Tag]=$TagUser;
		$ViewTag[$Tag]=$TagView;
		if ($TagUser>$maxUser) {$maxUser=$TagUser;}
		if ($TagView>$maxView) {$maxView=$TagView;}
		$gesMonatUser += $TagUser;
		$gesMonatView += $TagView;
		if ($aktTag == date("Y.m.d",$time)) 
			{
			$HeuteUser=$TagUser;
			$HeuteView=$TagView;
			}
	}
	mysql_free_result($abfrage);
	
	// Monats Durschnitt
	if ($showMonat == date("m",$time)) 
		{
		if (date("j") > 1)
			{
			$querMonatUser = round((($gesMonatUser-$HeuteUser)/(date("j",$time)-1)),2);
			$querMonatView = round((($gesMonatView-$HeuteView)/(date("j",$time)-1)),2);
			}
		}
	else 
		{
		$querMonatUser = round(($gesMonatUser/$maxTage),2);
		$querMonatView = round(($gesMonatView/$maxTage),2);
		}
		
//
// Navigation
//
	$vorMonat = $showMonat - 1;
	$vorJahr = $showJahr;
	if ($vorMonat < 1) { $vorMonat = 12 ; $vorJahr = $showJahr - 1;}
	$nextMonat = $showMonat + 1;
	$nextJahr = $showJahr;
	if ($nextMonat > 12) { $nextMonat = 1 ; $nextJahr = $showJahr + 1;}
	echo"<div id=\"Navigation\">\n";
	echo"<table border=\"0\" cellspacing=\"0\" cellpadding=\"2\">\n";
	echo"	<tr valign=\"top\">\n";
	echo"		<td align=\"left\"><a href=\"monat.php?showMonat=$vorMonat&showJahr=$vorJahr\">&lt;</a></td>\n";
	echo"		<td align=\"center\"><strong>$MonatDeutsch $showJahr</strong></td>\n";
	echo"		<td align=\"right\"><a href=\"monat.php?showMonat=$nextMonat&showJahr=$nextJahr\">&gt;</a></td>\n";
	echo"	</tr>\n";
	echo"</table>\n";
	echo"</div>\n";
	echo"<br>\n";
//
// Monats Übersicht
//
	echo"<div id=\"Tabelle\">\n";
	echo"<strong>&Uuml;bersicht $MonatDeutsch $showJahr</strong>\n";
	echo"<table border=\"0\" cellspacing=\"0\" cellpadding=\"2\">\n";
	echo"	<tr valign=\"top\" align=\"left\">\n";
	echo"		<td><strong>&nbsp;</strong></td>\n";
	echo"		<td><strong>User</strong></td>\n";
	echo"		<td><strong>Views</strong></td>\n";
	echo"	</tr>\n";
	echo"	<tr valign=\"top\" align=\"left\">\n";
	echo"		<td>Gesamt</td>\n";
	echo"		<td>$gesMonatUser</td>\n";
	echo"		<td>$gesMonatView</td>\n";
	echo"	</tr>\n";
	echo"	<tr valign=\"top\" align=\"left\">\n";
	echo"		<td>Tages Max</td>\n";
	echo"		<td>$maxUser</td>\n";
	echo"		<td>$maxView</td>\n";
	echo"	</tr>\n";
	echo"	<tr valign=\"top\" align=\"left\">\n";
	echo"		<td>&Oslash; am Tag</td>\n";
	echo"		<td>$querMonatUser</td>\n";
	echo"		<td>$querMonatView</td>\n";
	echo"	</tr>\n";
	echo"</table>\n";
	echo"</div>\n";
	echo"<br>\n";	

//
// TOP Pages pro Monat
//
	$month = mktime(0, 0, 0, $showMonat, 1, $showJahr);
	$month=date("Y.m",$month);
	$abfrage=mysql_query("SELECT * from Statistik_Page where month='$month' ORDER BY view DESC LIMIT $PagesTOP");
	echo"<div id=\"Tabelle\">\n";
	echo"<strong>TOP $PagesTOP Pages $MonatDeutsch $showJahr</strong>\n";
	echo"<table border=\"0\" cellspacing=\"0\" cellpadding=\"2\">\n";
	echo"	<tr align=\"left\" valign=\"top\">\n";
	echo"		<td><strong>Nr.</strong></td>\n";
	echo"		<td><strong>Page</strong></td>\n";
	echo"		<td><strong>Views</strong></td>\n";
	echo"	</tr>\n";
	$nr = 1;
	echo mysql_error();
	while($row=mysql_fetch_array($abfrage)) // Line 146		{
		$page=$row['page'];
		$view=$row['view'];
		echo"	<tr align=\"left\" valign=\"top\">\n";
		echo"		<td>$nr</td>\n";
		echo"		<td>$page</td>\n";
		echo"		<td>$view</td>\n";
		echo"	</tr>\n";
		$nr++;
		}

Oder hier die ganze Datei: http://www.vistar.be/1/stats/Monat.rar
 
Hast du $PagesTOP definiert?

Rueck ausserdem mal deine Querys ordentlich ein:

PHP:
$qry = "SELECT 
            * 
        FROM 
            Statistik_Page 
        WHERE 
            month='".$month."' 
        ORDER BY 
            view DESC 
        LIMIT 
            ".$PagesTOP;
$abfrage = mysql_query($qry) OR die(mysql_error());
 
Dann gibt die Variable vor dem Query mal aus:

PHP:
echo $PagesTOP;
Wenn da ein Zahlenwert angezeigt wird, dann mach nimm folgendes (an der Stelle, an der der fragliche query abgesendet wird):
PHP:
$qry = "SELECT
            *
        FROM
            Statistik_Page
        WHERE
            month='".$month."'
        ORDER BY
            view DESC
        LIMIT
            ".$PagesTOP;
echo "<pre>".$qry."</pre>";
$erg = mysql_query($qry) OR die(mysql_error());
echo "Anzahl Ergebnisse: ".mysql_num_rows($erg);

Und poste hier, was ausgegeben wurde.
 
Code:
"select sum(user), sum(view) from Statistik_Day where day='$aktTag'"

Kann man ja wohl nicht ernsthaft als SQL bezeichnen, wenn dann bitte

Code:
"SELECT
    SUM(st.`user`),
    SUM(st.`view`)
FROM
    `Statistik_Day` st 
WHERE 
    st.`day` = '$aktTag'"
 
habe ich gemacht, wir aber nichts angezeigt....
(Wieso funktioniert es denn ohne include?)

bin also immer noch (fast) am Anfang
 
Zuletzt bearbeitet:
Bekomme ich die Meldung:
Code:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 9
 
Dann ist $PagesTOP nicht definiert.

Nimm mal deinen urspruenglichen code und fuege folgende Zeile vor den Query ein:
PHP:
$PagesTOP = 10;
 
Gut danke, das erste geht jetzt, aber die zweite tabele noch nicht....

Edit: Thanks jetzt geht alles! $RefererTOP = 10 musste ich da eingeben

Wieso denn $RefererTOP= 10? also die 10?
 
Gut danke, das erste geht jetzt, aber die zweite tabele noch nicht....

Edit: Thanks jetzt geht alles! $RefererTOP = 10 musste ich da eingeben

Wieso denn $RefererTOP= 10? also die 10?

Ha ich einfach so frei gewaehlt ;)


Von diesem Wert ist abaengig, wie viele Eintraege angezeigt werden. Kannst du auf einen beliebigen Zahlenwert setzen ;)
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben