pahe: SQL Werte in Mehrdimensionalen Array

Guten Tag,

Ich bin gerade dabei ein Keyword Ranking Script zuschreiben.
Das Script liest die Daten aus und Speichert sie in der Tabelle-
keyword_position:

id:1 website:pahe.de term:pascal+helmes page:1  position:12 updated:1340726023
id:1 website:pahe.de term:pascal+helmes page:1  position:12 updated:1340743523
id:1 website:pahe.de term:pascal+helmes page:1  position:12 updated:1242443523
id:1 website:pahe.de term:design        page:10 position:9  updated:1340726023
id:1 website:pahe.de term:design        page:10 position:9  updated:1340726242

Das geht auch alles.
Jetzt möchte ich diese Daten in ein Diagramm eintragen

Das Diagramm:
X-Achse = Datum
Y-Achse = Position+Seite
Jeweilige Linie ist dass Keyword(Term)

Mein Problem ist das auslesen in den Array!

Die Arrays sollten so aufgebaut sein:
|-website
         |- keyword
                   |- Datum
                           |- Positon+Page
                   |- Datum
                           |- Positon+Page
                   |- Datum
                           |- Positon+Page
                   |- Datum
                           |- Positon+Page
Als php code:

  
$website=  
	 array ("keyword"  =>  
		array("Datum" =>  
 			array("Positon+Page")  
		      ),  
		array("Datum" =>  
 			array("Positon+Page")  
		      ),  
		array("Datum" =>  
 			array("Positon+Page")  
		      ),  
		array("Datum" =>  
 			array("Positon+Page")  
		      )  
	       );  

<b>Wie Lese ich die Werte von der Datenbank in die Arrays?</b>
Mit meiner "Lösung" Überschreibt er immer wieder die Werte, logischerweise.
Ich komm einfach nicht weiter! Ich verzweifel langsam, grübel grübel grübel und keine Lösung ist in Sicht.

Daher muss ich mich jetzt an euch wenden! Hab ihr eine Idee wie ich das anstelle?

Jetzt schonmal VIELEN DANK für eure Hilfe!!!

***<<<siehe unten: Es muss doch irgendwie machbar sein das ganze in den Array zupacken ohne if abfrage und ohne übschreiben?

Code:

  
include("./inc/sql.inc");  
  
$sql = "SELECT * FROM keyword_position";  
  
$db_erg = mysql_query( $sql );  
if ( ! $db_erg )  
{  
  die('Ungültige Abfrage: ' . mysql_error());  
}  
  
echo '<table border="1">';  
while ($zeile = mysql_fetch_array( $db_erg, MYSQL_ASSOC))  
{  
  echo "<td>". $zeile['website'] . "</td>";  
  echo "<td>". $zeile['term'] . "</td>";  
  echo "<td>". $zeile['page'] . "</td>";  
  echo "<td>". $zeile['position'] . "</td>";  
  echo "<td>". date("d.m.Y",$zeile['updated']) . "</td>";  
  echo "</tr>";  
  
// Erst Versuch  
$zeile['website']=  
	 array ("$zeile['term']"  =>  
		array("date("d.m.Y",$zeile['updated'])" =>  
 			array("$zeile['page'] + $zeile['position'] ")  
		      )  
	       );  
  
  
// Zweiter nicht Variabler Versuch ***  
if($zeile['website']=="pahe.de"){  
  $pahede =  
	  array ("$zeile['term']"  =>  
		 array("date("d.m.Y",$zeile['updated'])" =>  
 			array("$zeile['page'] + $zeile['position'] ")  
		      )  
	       );  
}  
  
  
}  

  1. Tach!

    Wie Lese ich die Werte von der Datenbank in die Arrays?
    Mit meiner "Lösung" Überschreibt er immer wieder die Werte, logischerweise.

    Gruppenwechsel wäre ein Stichwort. Und dann darfst du nicht daselbe Array für das Fetchen der Datenätze und das Aufheben verwenden. Klar, dass bei jedem while-Durchlauf die Daten weg sind. Jedenfalls, erzeuge ein Array und hänge dieses beim Gruppenwechsel an das Aufheb-Array an.

    dedlfix.

    1. Tach!

      Wie Lese ich die Werte von der Datenbank in die Arrays?
      Mit meiner "Lösung" Überschreibt er immer wieder die Werte, logischerweise.

      Gruppenwechsel wäre ein Stichwort. Und dann darfst du nicht daselbe Array für das Fetchen der Datenätze und das Aufheben verwenden. Klar, dass bei jedem while-Durchlauf die Daten weg sind. Jedenfalls, erzeuge ein Array und hänge dieses beim Gruppenwechsel an das Aufheb-Array an.

      dedlfix.

      Danke, sieht nach der Lösung aus ;)

      Hättest du evt einen Code Schnippsel für mich oder irgedeine Seite wo
      der Gruppenwechsel erklärt wird. Ich finde nur Foren einträge...

      1. Tach!

        Hättest du evt einen Code Schnippsel für mich oder irgedeine Seite wo der Gruppenwechsel erklärt wird. Ich finde nur Foren einträge...

        Das da ist ein einfaches Beispiel dafür. Es geht darum, sich den vorherigen Wert zu merken. Wenn der gleich ist, macht man normal weiter. Wenn er anders ist, ist das der Gruppenwechsel, der dann eine neue Überschrift, einen Absatz oder ähnliche Dinge einfügt. Bei dir wird das aber eine Runde komplizierter, weil du aufgrund deiner Verschachtlung mehrere Gruppenwechsel benötigst. Versuch das mal zu vereinfachen, wenn es geht. Es wird ja dann auch beim Auswerten nicht besser, wenn du dich durch diese Struktur hangeln musst

        array("Datum" =>
                                 array("Positon+Page")

        Sind hier zwei Arrays nötig oder reicht eins? array("Datum" => "Positon+Page")

        dedlfix.

        1. Das da ist ein einfaches Beispiel dafür. Es geht darum, sich den vorherigen Wert zu merken. Wenn der gleich ist, macht man normal weiter. Wenn er anders ist, ist das der Gruppenwechsel, der dann eine neue Überschrift, einen Absatz oder ähnliche Dinge einfügt. Bei dir wird das aber eine Runde komplizierter, weil du aufgrund deiner Verschachtlung mehrere Gruppenwechsel benötigst. Versuch das mal zu vereinfachen, wenn es geht. Es wird ja dann auch beim Auswerten nicht besser, wenn du dich durch diese Struktur hangeln musst

          Danke für die Anleitung!
          Leider bekomm ich immer:
          Fatal error: Call to undefined function mysql_fetch_objekt()

          Läuft auf der PHP Version 5.3.8

          array("Datum" =>
                                   array("Positon+Page")

          Sind hier zwei Arrays nötig oder reicht eins? array("Datum" => "Positon+Page")

          Einer würde reichen da der "vorrige" Array den Keyword namen hat

          |-Keyword
                   |-Datum
                   |-Positon+Page

          Code:

          $sql = "SELECT id,website,term,page,position,updated FROM keyword_position";  
            
            
            
            
            
            
          $res = mysql_query($sql);  
            
          $last = '';  
          while($person = mysql_fetch_objekt($res))  
          {  
            
              if($last != $person->term)  
              {  
                  echo '<h1>' . $person->term . '<h1>';  
                  $last = $person->term;  
              }  
            
              echo '<p>' . $person->firstname . '</p>';  
            
          }  
            
            
            
            
            
          while ($zeile = mysql_fetch_array( $db_erg, MYSQL_ASSOC))  
          {  
            
           if($zeile['website'] == "sandra-wild.de")  
           {  
           $keyword_sandra[] = array(  
          	                'term' => $zeile['term'],  
          									'page' => $zeile['page'],  
          	                'position' => $zeile['position'],  
          	                'update' => date("d.m.Y",$zeile['updated'])  
          	        									 );  
           }  
            
           if($zeile['website'] == "pahe.de")  
           {  
            
          	$keyword_pahe[] = array(  
          	                'term' => $zeile['term'],  
          									'page' => $zeile['page'],  
          	                'position' => $zeile['position'],  
          	                'update' => date("d.m.Y",$zeile['updated'])  
          	        									 );  
            
           }  
            
          }  
          
          
          1. Tach!

            Leider bekomm ich immer:
            Fatal error: Call to undefined function mysql_fetch_objekt()

            Da hat PHP recht, die Funktion schreibt sich ja mit c.

            dedlfix.