Zur Navigation

Aufteilen/Array

1 Tester (Gast)

Also ich hab da ma wieder einer Problem.
Also:
1. Gesamter Quellcode

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
 <head>
  <title>BlaBlaBlub</title>
  <link rel="stylesheet" type="text/css" href="/projekt/styles.css" />
  <link rel="shortcut icon" href="/projekt/favicon.ico" />
 </head>
 
 <body onLoad="window.resizeTo(800,750)">
 
 <?php
 //----------------------------------------------------------------------

 //Drucken
 echo "<div style=\"text-align:right\"><a href=\"javascript:window.print()\">".
  "Diese Seite drucken</a></div><br />";

 //----------------------------------------------------------------------
 ?>

 <div class="div">

 <?
 //----------------------------------------------------------------------

 //Auswahl: Jahr || Monat
 $currYear = gmdate("Y");

 echo "<form action=\"".$PHP_SELF."\" method=\"POST\">".
  "<div align=\"left\">".
  "Monat: <select name=\"monthx\" size=\"1\" onChange=\"JavaScript:submit()\">".
  "<option></option>";

 for($mon = 1;$mon < 13;$mon++)
 {
  echo "<option>".$mon."</option>";
 }

 echo "</select>".
  "<br />".
  "Jahr: <select name=\"yearx\" size=\"1\" onChange=\"JavaScript:submit()\">".
  "<option></option>";

 for($yea = 2004;$yea <= $currYear;$yea++)
 {
  echo "<option>".$yea."</option>";
 }

 echo "</select>".
  "</div>".
  "</form>";

 //----------------------------------------------------------------------
 ?>

 <div class="Headline" align="center"><br /><a name="CPP">Klicks pro Tag</a><br /><br /></div>

 <?
 //----------------------------------------------------------------------

 //Zugangsdaten inkludieren
 include("daten.txt");

 //----------------------------------------------------------------------
 
 //Funktion: Erstellen einer Tabelle -> TableRow angepasst
 function GenerateTableRow($Datum, $Counter)
 {
   echo "<tr>";
   echo "<td><div align=\"center\" class=\"MidTimeBlue\">".$Datum."</div></td>".
    "<td><div align=\"right\" class=\"MidTimeBlue\">".$Counter." clicks</div></td>";
   echo "</tr>";
 }
 //----------------------------------------------------------------------

 //Auswahl des TimeStamps
 $sql = "SELECT `timestamp15`,`bid` FROM `userbutton` WHERE `timestamp15` IS NOT NULL ORDER BY `timestamp15` ASC;";
 $result = mysql_query($sql) or die(mysql_error());

 echo "&lt;&lt; pro Tag || <a href=\"/projekt/ClickPerRage.php\">je BID &gt;&gt;</a><br />";
 echo "<table style=\"width: 400px;\" border=\"1\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\">";
 echo "<tr>";
 echo "<th>Datum</th><th>Klicks</th>";
 echo "</tr>";

 $i=1;$oldtime="";$firsttime=true;$month=$_REQUEST['monthx'];$year=$_REQUEST['yearx'];
 
 if(isset($month) || isset($year))
 {
  while($end = mysql_fetch_array($result, MYSQL_ASSOC))
  {
    $time = gmdate("d.m.Y",$end['timestamp15']);
	$buttonID = $end['bid'];
    $monat = abs(gmdate("m",$end['timestamp15']));
    $jahr = gmdate("Y",$end['timestamp15']);
	
	if($firsttime)
    {
	    $firsttime=false;
	    $oldtime=$time;
    }
   
    if($time != $oldtime)
    {
     if($month == $monat || $year == $jahr)
     {
 	  GenerateTableRow($oldtime,$i);
     }
	 $oldtime=$time;
	 $i=1;
    }
    
	else
		$i++;
  }
 }

 //----------------------------------------------------------------------

 // lezten Tag ausgeben
 if($month == $monat || $year == $jahr)
 {
  GenerateTableRow($oldtime,$i);
 }
 echo "</table>";

 //----------------------------------------------------------------------
 
 echo "<a href=\"#CPP\">Zum Anfang</a><br /><br /><a href=\"/projekt/PJ1.php\">".
  "Zurück zur Kundensuche</a><br /><br />";
  
 //----------------------------------------------------------------------

 //Letzter Refresh
 echo "Letzte Aktualisierung dieser Seite: ".date(" d.m.Y, H:i",filemtime(basename($PHP_SELF)));

 //----------------------------------------------------------------------

 //Datenbank schließen + Abmelden
 mysql_free_result($result) or die(mysql_error());
 $db_close = mysql_close($sql) or die(mysql_error());

 //----------------------------------------------------------------------
 ?>

 </div>
 </body>
</html>

Screen1

2. Problem

Also ab Zeile 88 [" if(isset($month) || isset($year))"] fängt der Teil an der mir schaffen macht.
Also die gesamte datei gibt Datum aus und wieviel Klicks an diesen Datum. (kurz: Klick Pro tag)

Mein Problem ist nun ich wollt da jetzt noch jedem Klick (darunter oder wo auch immer) den jeweiligen button ausgeben welcher ne BID besitzt. Nun wie kann ich bzw wie ist es möglich aus den Klicks herzuleiten welche BID dazu gehört.
Es ist möglich nur ich weiß nicht wie.
Ich will unbedingt noch herausfinden das BID 1110 und BID 1124 auch verantwortig sind für die hohen Klicks am so-und-so-vielten
Praktisch eine kombination aus Screen1 und dem hier Screen2
nur das verknüpfen fällt mir schwer weil ich nicht raffe woher das eine vom anderen bescheid weiß. X'D

18.07.2006 16:02

2 Jörg Kruse

Hallo Tester,

vielleicht kanst du die Klicks schon in der SELECT-Query zählen, mithilfe von COUNT und GROUP BY - siehe auch Mysql-Handbuch: Zeilen zählen

18.07.2006 20:08

3 Tester (Gast)

Hilft mir leider nicht viel weiter da tiestamp15 ja wirklich ein Timestamp ist und üblicherweise haben die verschiedene Werte für zb einen und den selben Tag :(
D.h. der listet für jeden Timestamp nen Wert und das soll der ja nicht.
Müsst ne Query geben die vorher die Zeit umwandelt und dann müsst ich vorher unterscheiden (Tag a, Tag b, Tag...) und ich glaub 50% von dem gibt es garnicht (von wegen umwandeln)
Hm...
naja dann guck ich weiter (sitz schon 2 Tage dran ^^)

19.07.2006 12:14

4 Jörg Kruse

Wenn du für einen Tag wissen möchtest, wieviele Klicks welche BID verursacht hat, kannst du mithilfe von mktime() den minimalen und maximalen Timestamp errechnen und die Query auf diesen Abschnitt beschränken, also in etwa so:

$sql = "SELECT bid, COUNT(*) FROM userbutton WHERE timestamp15 >= " . mktime(0, 0, 0, $day, $month, $year) . " AND timestamp15 < " . mktime(0, 0, 0, $day + 1, $month, $year) . " GROUP BY bid";

Anasonsten wäre es vielleicht auch noch eine Möglichkeit, das Datum zusätzlich in deinem Datumsformat in der Tabelle abzuspeichern?

19.07.2006 12:58 | geändert: 19.07.2006 13:01

5 Tester (Gast)

Wow geile combi X'D
Ja ich versuchs mal
Danke =)

20.07.2006 09:30

6 Tester (Gast)

gut gut ich hab das Problem jetzt mit einem assos. Array gelöst und das noch einfacher als ich es am anfang geglaubt habe. X'D
Jaja ich denk zu kompliziert.
Thx für deine Hilfe Jörg

24.07.2006 12:38

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]