• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Die Bildungsoffensive hier im Forum geht weiter! Jetzt sollen Kreativität und technische Möglichkeiten einen neue Dimension erreichen. Das Thema in diesem Monat lautet - Verkehrte Welt - Hier geht es lang --> Klick

Graphen aus einer SQL Datenbank generieren

Hausmeister76

Adams Parmäne
Registriert
17.08.04
Beiträge
1.300
Hi jungs....

also ich möchte meiner Website einen kleinen Graphen spendieren. Dieser soll auf den Daten einer MySQL Datenbank basieren.Soweit so gut.

Nun habe ich folgendes für PHP gefunden...

http://www.php-faq.de/q/q-scripte-diagramme.html

Wer kann mir sagen, welche dieser Möglichkeiten zu empfehlen sind und vor allen Dingen, welche kann ich auch auf meiner kommerziellen Homepage verwenden. (JPGraph) fällt schonmal raus, da ich eine kostenloses Möglichkeit suche.

thx....

so long...
 
Moin,

wenn Dir einfache Balken reichen, würde ich das einfach per CSS realisieren. Per PHP den Wert für height oder width (horizontale Balken) reingeben (ggf. vorher mit einem Faktor umrechnen) und das ganze mit einer passende Farbe ausstatten.

Code:
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
        "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">
<head>
	<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
	<title>einfache Balkengrafik</title>
	<style type="text/css" media="screen">
	.wert1 {
		width: 120px;
		height: 20px;
		background: #f00;
		}
	.wert2 {
		width: 150px;
		height: 20px;
		background: #ff0;
		}
	.wert3 {
		width: 280px;
		height: 20px;
		background: #0f0;
		}
	.wert4 {
		width: 350px;
		height: 20px;
		background: #0ff;
		}
	.wert5 {
		width: 250px;
		height: 20px;
		background: #00f;
		}
	.wert6 {
		width: 100px;
		height: 20px;
		background: #f0f;
		}
	</style>
</head>
<body>
<div class="wert1">120</div>
<div class="wert2">150</div>
<div class="wert3">280</div>
<div class="wert4">350</div>
<div class="wert5">250</div>
<div class="wert6">100</div>
</body>
</html>

Gruß Stefan
 
Wenn du mit PHP arbeitest gibts hier ne super Bibliothek die das Erstellen von Kurven- und Kreisdiagrammen ermöglicht. Wenn du die Datei runterlädst, findest du im Archiv auch ein paar Beispiele. Ist wirklich sehr einfach...

http://www.aditus.nu/jpgraph/

EDIT: Sry, hab wohl nur die ersten Absätze des Problems gelesen. Tut mir leid.
 
Zuletzt bearbeitet:
@duderino...

wie ich oben schon geschrieben habe, fällt jpgraph schonmal raus, da es für eine kommerzielle Nutzung kostenpflichtig ist.

@stk....

hmm.... muss ich mir mal genauer anschauen. Aber eigentlich sollte es schon ne Kurve sein. Ein Balkendiagramm um eine Preisentwicklung zu verdeutlichen, ist schon recht komisch.... aber mal sehen....

Die einzelnen Lösungen unter meinem Link, sind alle nicht ohne. Leider...

so long...
 
@duderino....

thx für den Link.... genau das ist, was ich suche nur funktionieren tuts nicht....

Also es geht um dieses Bsp.:
http://www.cix88.de/cix_php/php_diagramme/cix_diagramm_linien_1.php

hier muss ich die Funktion ImagePNG($im,$BILD) anpassen und in ImagePNG($im) umändern, da ja die PHP Funktion keine rechte hat, dieses Bild auch zu speichern.

Nur kommt dann folgendes heraus:
www.tankstelle-falkenhain.de/graph2.php

ich hab mal den Quellcode mit anzeigen lassen damit man eventuell sofort erkennen kann, an was es liegen könnte....Ich habe aber sonst keine weiteren Änderungen am Quellcode vorgenommen und wollte erstmal schauen, ob es überhaupt funktioniert. Aber irgtendwie passt noch was nicht.

Was ich selbst noch kurios finde ist, das auf meinem PB mit aktivierten Apache Web Server (Tigerversion) er schon an der Funktion imagecreate() in Zeile 21 hängt, auf dem "richtigen" Webserver läufts ohne Fehlermeldung durch. Aber scheinbar sind die ganzen Image-Funktionen meinem PB Web Server unbekannt!?!?

so long...
 
Zuletzt bearbeitet:
Könnte sein dass du nen falschen Header mitsendest. Versuch doch mal den Header manuell zu übergeben.
 
  • Like
Reaktionen: Hausmeister76
@duderino....

thx.... daran hats gelegen....
ein
Code:
header("Content-Type: image/gif");
vor das ImagePNG und schon gings....sehr schön...

so long...
 
Sehr schön :) Es freut einen immer wieder wenn man jemanden helfen konnte :)
 
hallo @all...

ich muss diesen Thread nochmals aufgreifen....ich habe mich nach langem hin und her dann doch für JPGraph entschieden....ich habe mal eine Anfrage wegen Lizenz getätigt, und bis ich die Antwort bekomme, wollte ich schonmal losmachen...

Also nochmals zum Zusammenfassen: Ich habe eine SQL Datenbank mit Benzinpreisen. Jetzt möchte ich diese Preise als Graphen darstellen. JpGraph benötigt ein Array aus Zahlen (entweder integer, oder float). Ich habe aber ein Problem damit. Ich habe die Zahlen in meiner Datenbank aber dummerweise als "varchar" und nicht als float, oder double. Also wie bekomm ich beim auslesen der Datenbank die Werte als float in das Array?

hier mein Quelltext:

Code:
$DatabasePointer = mysql_connect($DatabaseHost, 
$DatabaseUser, $DatabasePassword);

mysql_select_db($Database, $DatabasePointer);

//Datenbankanfrage
$query1=mysql_query("SELECT Benzin FROM $Table");

//Array erzeugen
$ydata  = array();

//erstmal zum Test 5 Werte aus der Datenbank auslesen 
und in das gerade erzeugte Array einfügen
for($i=0; $i<= 3; $i++){

 $row = mysql_fetch_row($query1);
 $row1 = (float)$row[0];
 $ydata[$i] = $row1;
}

wenn ich zum Schluss noch
Code:
var_dump($ydata);
ausführe erhalte ich folgendes Ergebnis:
Code:
array(5) { [0]=>  float(1) [1]=>  float(1) [2]=>  float(1) [3]=>  float(1) [4]=>  float(1) }

scheinbar wandelt er ein 1,239 einfach in 1 um....kann man das irgendwie beheben, oder muss ich per Hand meine gesamten Zahlen nochmals als float abspeichern?
(das Umwandeln der Zahlen auf der phpMyAdmin Oberfläche von char in float klappt auch nicht und wird mit einem stupiden hineinschreiben einer 1 vollendet. Also das gleiche wie in meinem php-script)

Jemand ne Idee?

hätt ichs nur gleich richtig gemacht :angry: :angry:
diese verdammten Variablentypen.....

thx schonmal im Vorraus

so long....
 
Zuletzt bearbeitet:
$query = mysql_query("SELECT Benzin FROM '".$Table."' LIMIT 0,5");

while($fetch = mysql_fetch_array($query)) {

$array[] = $fetch["Benzin"];

}

Würde das wohl so machen. So hat man alle Werte in einem Array.
 
Wenn die Werte wie bei duderino (#11) zusammengeführt werden, sollte ein »casten« der Werte nicht notwendig sein (also Deine Umwandlung per »float«).