CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos

|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP 
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |

04.02.2015, 14:04:52
|
Anfänger
|
|
Registriert seit: Feb 2015
Alter: 33
Beiträge: 11
|
|
Nach Eingabe Diagramm auf Webseite einbinden
Hallo liebe Forenbesucher,
nachdem ich die vergangenen Tage recherchiere und mich beim Abarbeiten der Informationen im Kreis drehe, seid ihr meine letzte Rettung.
Folgendes möchte ich realisieren:
1. Ich möchte auf einer Webseite Parameter eingeben. (8 Stück) -> funktioniert
2. Ich möchte nach den Parametern meine SQL Datenbank durchsuchen. -> funktioniert
3. Ich möchte die Parameter auf der Webseite von 1. unterhalb der Eingabe darstellen.
4. Dieser Zyklus soll sich regelmäßig wiederholen.
Im Handbuch zu phplot ist solch ein Beispiel aufgeführt, wobei dort mit der GET-methode gearbeitet wird. Leider sind meine Daten zu Umfangreich somit müsste ich die Post-methode verwenden.
Ich könnte noch viele Sachen aufführen die ich versucht habe, aber ich vermute mir fehlt irgendwo ein Verständnis im Zusammenhang. Kann jemand helfen?
Quellcode 1:
<html>
<head>
<meta charset="UTF-8">
<title> Dateneingabe </title>
</head>
<body>
Möchten Sie Temperaturverläufe aus der Datenbank auslesen?<br><br>
<form action="Visualisierung_Temp_phplot.php" Method="post">
Datum-Beginn:<br>
<input name="Datebeginn" size="20" value="2015-01-07 13:00:00"><br><br>
Datum-Ende:<br>
<input name="Dateende" size="20" value="2015-01-07 13:30:00"><br><br>
Heizkreis:<br>
<input name="Heizkreis" size="10" value="3"><br><br>
Status des Heizkreises:<br>
<input name="Status1" size="10" value="7"> <input name="Status2" size="10" value="9"><br>
<br><br>
Kanal x-Achse:<br>
<input name="xachse" size="20" value="Datum"><br>
<br><br>
Status des Heizkreises:<br>
<input name="yachse1" size="20" value="Isttemperatur"><br>
<br><br>
Status des Heizkreises:<br>
<input name="yachse2" size="20" value="Solltemperatur"><br>
<br><br>
<input type="submit" value="Absenden">
</form>
<?php
//Es wird erst überprüft ob die Nachricht verschickt wurde. Wenn ja, dann wird die If Schleife ausgeführt
if (!empty($_POST)){
echo <<<END
<hr>
<p>
<p><img src="Visualisierung_Temp_phplot.php" width="900" height="700" alt="Nee.">
END;
}
?>
</body>
</html>
Quellcode 2:
<?php
//EINGABEN______________________________________
$Eingabedate = $_POST["Datebeginn"];
$Eingabedate2 =$_POST["Dateende"];
$HZK = $_POST["Heizkreis"];
$Status=$_POST["Status1"];
$Status2=$_POST["Status2"];
$Kanal1= $_POST["xachse"];
$Kanal2= $_POST["yachse1"];
$Kanal3= $_POST["yachse2"];
// Herstellen der MYSQL Datenverbindung
$link = mysql_connect("localhost", "root") or die("Keine Verbindung möglich: " . mysql_error());
mysql_select_db('maschinendatenerfassung') or die("Auswahl der Datenbank fehlgeschlagen" . mysql_error());
//ABFRAGE_MYSQL-Datenbank_______________________
$query= "SELECT $Kanal1, $Kanal2,$Kanal3 FROM 10016_temp WHERE Datum BETWEEN '" . $Eingabedate . "' and '" . $Eingabedate2 . "' and Status= '" .$Status. "' and Heizkreis = '" .$HZK. "'" ;
$daten = array();
$result = mysql_query($query) or die("Anfrage fehlgeschlagen: " . mysql_error());
$f=0;
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
$daten[$f]=$line;
$f++;
}
mysql_close($link);
require_once 'phplot-6.1.0\phplot.php';
if (empty($use_shapes)) $use_shapes = FALSE;
if (empty($plot_type)) $plot_type = 'linepoints';
$legend_text = array($Kanal2, $Kanal3);
$plot = new PHPlot(1800, 900);
$plot->SetImageBorderType('plain'); // Improves presentation in the manual
$plot->SetTitle("Mein erster Versuch eines Diagramms\n");
$plot->SetPlotType($plot_type);
$plot->SetDataType('text-data');
$plot->SetDataValues($daten);
$plot->SetPlotAreaWorld(NULL, Null, Null, Null); // Min X-Achse, Min Y-AChse, Max X-AChse, Max Y-Achse
$plot->SetYTickIncrement(0.2); // Abstand der Y-AChse
$plot->SetLegend($legend_text);
$plot->SetXTickPos('none');
$plot->SetDrawXDataLabelLines(True);
$plot->SetLegendUseShapes($use_shapes); // Use color boxes or shapes
$plot->SetPointSizes(12); // Make points bigger for visibility
$plot->SetLineStyles('solid'); // Make all lines solid
$plot->SetLineWidths(2); // Make all lines thicker
$plot->DrawGraph();
?>
|

04.02.2015, 17:11:15
|
Anfänger
|
|
Registriert seit: Feb 2015
Alter: 42
Beiträge: 21
|
|
AW: Nach Eingabe Diagramm auf Webseite einbinden
PHP-Code:
<?php
$query = mysql_query("select * from meinetabelle");
while ($row = mysql_fetch_object($query)) {
echo $row->Eingabedate;
echo $row->Eingabedate2;
echo $row->Status;
echo $row->Heizkreis;
}
mysql_free_result($result);
?>
|

05.02.2015, 08:57:25
|
Anfänger
|
|
Registriert seit: Feb 2015
Alter: 33
Beiträge: 11
|
|
AW: Nach Eingabe Diagramm auf Webseite einbinden
Guten Morgen,
vielen Dank für die Antwort. Leider verstehe ich die Relevanz der Antwort nicht.
Ich bekomme meine Eingabedaten von der html-Datei auf die php-Datei übertragen. In der PHP-Datei werden die Daten wieder eingelesen und die SQL Abfrage durchgeführt. Danach wird das Diagramm auch erstellt und angezeit, nur leider als separates Bild. Ich möchte aber, dass das Diagramm unter meinen Eingabedaten von der ersten Datei angezeigt wird.
|

05.02.2015, 12:43:18
|
Anfänger
|
|
Registriert seit: Feb 2015
Alter: 42
Beiträge: 21
|
|
AW: Nach Eingabe Diagramm auf Webseite einbinden
Hi,
dann must Du den HTML Code (Quellcode 1) mit in die Visualisierung_Temp_phplot.php kopieren.
Das Formular schickt ja die Daten an die Visualisierung_Temp_phplot.php undhier wird das Bild ja ausgegeben.
Wie heißt denn die Datei in welchem der Quellcode 1 liegt?
|

05.02.2015, 16:31:57
|
Anfänger
|
|
Registriert seit: Feb 2015
Alter: 33
Beiträge: 11
|
|
AW: Nach Eingabe Diagramm auf Webseite einbinden
Vielen Dank für den Hinweis!!! Klingt sehr logisch.
Die Datei heißt PageDateneingabe.php .
Okay, also schiebe ich die zwei Skripte in eins... sollte kein Problem sein.
Wendet man dann trotzdem die Post-methode an und schickt sich die Daten an die gleich Datei oder definiert man im html Bereich durch die Eingabe direkt Variablen, die man im php Bereich einfach im Diagramm verwendet?
|

05.02.2015, 17:59:16
|
Anfänger
|
|
Registriert seit: Feb 2015
Alter: 42
Beiträge: 21
|
|
AW: Nach Eingabe Diagramm auf Webseite einbinden
PageDateneingabe.php steht bereits auf POST ;)
<form action="Visualisierung_Temp_phplot.php" Method="post">
Die Variablen sind auch bereits schon definiert und stehen ebenfalls schon drin.
$Eingabedate = $_POST["Datebeginn"];
$Eingabedate2 =$_POST["Dateende"];
$HZK = $_POST["Heizkreis"];
$Status=$_POST["Status1"];
$Status2=$_POST["Status2"];
$Kanal1= $_POST["xachse"];
$Kanal2= $_POST["yachse1"];
$Kanal3= $_POST["yachse2"];
Bsp:
<input name="Datebeginn" size="20" value="2015-01-07 13:00:00"><br><br>
$Eingabedate = $_POST["Datebeginn"];
das heißt der Inhalt im INPUT name ="Datebeginn" wird in der Variable $Eingabedate gespeichert ;)
|

06.02.2015, 13:57:14
|
Anfänger
|
|
Registriert seit: Feb 2015
Alter: 33
Beiträge: 11
|
|
AW: Nach Eingabe Diagramm auf Webseite einbinden
Danke für die gute Zusammenfassung!!!
Fazit deiner Hilfe und meiner Programmierversuche
=> Eingabe und Diagrammerstellung in einer Datei
=> Übergabe der Eingabedaten von html Teil an php Teil mit Post-Methode
=> Im php-Teil lese ich nach der Eingabe mein MYSQL-Datenbank aus und bekomme ein Array, so wie ich es haben will zurück. Bis hierher funktioniert alles.
=> Was muss ich jetzt tun, damit das Diagramm nicht als gesamte Seite angezeigt wird sondern unterhalb der Eingabedaten eingeblendet wird?
Weil die Code-Zeile "$plot->DrawGraph();" stellt das Diagramm als gesamte Seite da.
Code:
<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
Möchten Sie Temperaturverläufe aus der Datenbank auslesen?<br><br>
<form Method="post">
Datum-Beginn:<br>
<input name="Datebeginn" size="20" value="2015-01-07 13:00:00"><br><br>
Datum-Ende:<br>
<input name="Dateende" size="20" value="2015-01-07 13:30:00"><br><br>
Heizkreis:<br>
<input name="Heizkreis" size="10" value="3"><br><br>
Status des Heizkreises:<br>
<input name="Status1" size="10" value="7"> <input name="Status2" size="10" value="9"><br>
<br><br>
Kanal x-Achse:<br>
<input name="xachse" size="20" value="Datum"><br>
<br><br>
<!--Checkbox für angezeigte Parameter -->
<input type="checkbox" name="Parameter[]" value="Solltemperatur"> Solltemperatur<br>
<input type="checkbox" name="Parameter[]" value="Isttemperatur"> Isttemperatur<br>
<input type="checkbox" name="Parameter[]" value="Impulszeit"> Impulszeit<br>
<input type="checkbox" name="Parameter[]" value="Steuerung"> Manuelle Steuerung<br>
<input type="checkbox" name="Parameter[]" value="Status"> Heizkreisstatus<br>
<input type="checkbox" name="Parameter[]" value="u_Toleranz"> untere Toleranzgrenze<br>
<input type="checkbox" name="Parameter[]" value="o_Toleranz"> obere Toleranzgrenze<br>
<br><br><br>
<input type="submit" value="Absenden">
<br><br><br>
</form>
<?php
//Es wird erst überprüft ob die Nachricht verschickt wurde. Wenn ja, dann wird die If Schleife ausgeführt
if (!empty($_POST)){
$Eingabedate = $_POST["Datebeginn"];
$Eingabedate2 =$_POST["Dateende"];
$HZK = $_POST["Heizkreis"];
$Status=$_POST["Status1"];
$Status2=$_POST["Status2"];
$Kanal1= $_POST["xachse"];
$Parameter = $_POST["Parameter"];
$String ="";
for ($i=0; $i <= count($Parameter)-1;$i++){
if ($i<count($Parameter)-1){
$string = $Parameter[$i].", ";
}
$string = $Parameter[$i];}
// Herstellen der MYSQL Datenverbindung
$link = mysql_connect("localhost", "root") or die("Keine Verbindung möglich: " . mysql_error());
mysql_select_db('maschinendatenerfassung') or die("Auswahl der Datenbank fehlgeschlagen" . mysql_error());
//ABFRAGE_MYSQL-Datenbank_______________________
$query= "SELECT $Kanal1, $string FROM 10016_temp WHERE Datum BETWEEN '" . $Eingabedate . "' and '" . $Eingabedate2 . "' and Status= '" .$Status. "' and Heizkreis = '" .$HZK. "'" ;
$daten = array();
$result = mysql_query($query) or die("Anfrage fehlgeschlagen: " . mysql_error());
$f=0;
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
$daten[$f]=$line;
$f++;}
mysql_close($link);
require_once 'phplot-6.1.0\phplot.php';
if (empty($use_shapes)) $use_shapes = FALSE;
if (empty($plot_type)) $plot_type = 'linepoints';
$legend_text = array($string);
$plot = new PHPlot(1800, 900);
$plot->SetImageBorderType('plain'); // Improves presentation in the manual
$plot->SetTitle("Mein erster Versuch eines Diagramms\n");
$plot->SetPlotType($plot_type);
$plot->SetDataType('text-data');
$plot->SetDataValues($daten);
$plot->SetPlotAreaWorld(NULL, Null, Null, Null); // Min X-Achse, Min Y-AChse, Max X-AChse, Max Y-Achse
$plot->SetYTickIncrement(0.2); // Abstand der Y-AChse
$plot->SetLegend($legend_text);
$plot->SetXTickPos('none');
$plot->SetDrawXDataLabelLines(True);
$plot->SetLegendUseShapes($use_shapes); // Use color boxes or shapes
$plot->SetPointSizes(12); // Make points bigger for visibility
$plot->SetLineStyles('solid'); // Make all lines solid
$plot->SetLineWidths(2); // Make all lines thicker
$plot->DrawGraph();
}
?>
</body>
</html>
|

06.02.2015, 15:48:27
|
Anfänger
|
|
Registriert seit: Feb 2015
Alter: 42
Beiträge: 21
|
|
AW: Nach Eingabe Diagramm auf Webseite einbinden
Hi,
sorry versteh ich nicht ganz.
Zitat:
=> Was muss ich jetzt tun, damit das Diagramm nicht als gesamte Seite angezeigt wird sondern unterhalb der Eingabedaten eingeblendet wird?
Weil die Code-Zeile "$plot->DrawGraph();" stellt das Diagramm als gesamte Seite da.
|
Was kann ich denn unter "gesamte Seite" verstehen?
Screenshot?
img?
PDF?
Tabelle mit Daten?
Möchtest Du nur einen tabellarischen Auszug aus dem Diagramm?
Setz mal den PHP Code über den HTML Code. (quasi Formular unter PHP Code).
Normalerweise müsstest Du dann in diesem Fall nur noch
<?php echo $plot->DrawGraph(); ?>
unter das Form setzen.
Wenn Du die anderen $plot´s nicht ausgeben willst dann setze einfach eine Raute davor.
Bsp.
# $plot->SetImageBorderType('plain'); // Improves presentation in the manual
# $plot->SetTitle("Mein erster Versuch eines Diagramms\n");
# $plot->SetPlotType($plot_type);
|

06.02.2015, 16:49:48
|
Anfänger
|
|
Registriert seit: Feb 2015
Alter: 42
Beiträge: 21
|
|
AW: Nach Eingabe Diagramm auf Webseite einbinden
... ah sry kurz nachgedacht und jetzt weiß ich was Du willst.
Du musst die Zahlen (1800 und 900) anpassen damit die Grafik kleiner dargestellt wird.
Das ist die Pixelgröße für das Diagramm.
$plot = new PHPlot(1800, 900);
Setz es einfach mal auf 800, 600 oder 640, 480.
Du kannst das Formular auch noch in einer Tabelle samt Diagramm abbilden.
HTML-Code:
<form action="Visualisierung_Temp_phplot.php" Method="post">
<table>
<tr>
<td>
Datum-Beginn:
</td>
<td>
<input name="Datebeginn" size="20" value="2015-01-07 13:00:00">
</td>
</tr>
<tr>
<td>
Datum-Ende:
</td>
<td>
<input name="Dateende" size="20" value="2015-01-07 13:30:00">
</td>
</tr>
<tr>
<td>
Heizkreis:
</td>
<td>
<input name="Heizkreis" size="10" value="3">
</td>
</tr>
<tr>
<td>
Status des Heizkreises:
</td>
<td>
<input name="Status1" size="10" value="7"> <input name="Status2" size="10" value="9">
<td>
</tr>
<tr>
<td>
Kanal x-Achse:
</td>
<td>
<input name="xachse" size="20" value="Datum">
</td>
</tr>
<tr>
<td>
Status des Heizkreises:
</td>
<td>
<input name="yachse1" size="20" value="Isttemperatur">
</td>
</tr>
<tr>
<td>
Status des Heizkreises:
</td>
<td>
<input name="yachse2" size="20" value="Solltemperatur">
</td>
</tr>
<tr>
<td>
<input type="submit" value="Absenden">
</td>
<tr>
<td>
<?php echo $plot->DrawGraph(); ?>
</td>
</tr>
</table>
</form>
|

09.02.2015, 10:05:24
|
Anfänger
|
|
Registriert seit: Feb 2015
Alter: 33
Beiträge: 11
|
|
AW: Nach Eingabe Diagramm auf Webseite einbinden
Guten Morgen,
ich habe deinen Vorschlag befolgt und alles in eine Datei geschrieben sowie die Parameter für die Diagrammanzeige stark reduziert. Der Formhalber habe ich die Diagrammerstellung in eine Function gepackt.
Trotzdem bekomm ich immer wieder ein schwarzes Fenster mit einer Fehlermeldung, dass das Diagramm nicht angezeigt werden kann.
Leider schlägt bei mir die Funktion fehl ein Diagramm ins Forum zu laden. Sonst hätte ich dir mein Wunschbild gezeigt. => Unter den EIngabewerten soll das Diagramm angezeigt werden. Siehe am Beispiel aus dem PHplot-Handbuch:
http://phplot.com/phplotdocs/ex-webform.html
PHP-Code:
<html> <head> <meta charset="UTF-8"> <title></title> </head> <body> Möchten Sie Temperaturverläufe aus der Datenbank auslesen?<br><br>
<form action="Test_diagramm.php" Method="post"> Datum-Beginn:<br> <input name="Datebeginn" size="20" value="2015-01-07 13:00:00"><br><br> Datum-Ende:<br> <input name="Dateende" size="20" value="2015-01-07 13:30:00"><br><br> Heizkreis:<br> <input name="Heizkreis" size="10" value="3"><br><br> Status des Heizkreises:<br> <input name="Status1" size="10" value="7"> <input name="Status2" size="10" value="9"><br> <br><br> Kanal x-Achse:<br> <input name="xachse" size="20" value="Datum"><br> <br><br>
<!--Checkbox für angezeigte Parameter --> <input type="checkbox" name="Parameter[]" value="Solltemperatur"> Solltemperatur<br> <input type="checkbox" name="Parameter[]" value="Isttemperatur"> Isttemperatur<br> <input type="checkbox" name="Parameter[]" value="Impulszeit"> Impulszeit<br> <input type="checkbox" name="Parameter[]" value="Steuerung"> Manuelle Steuerung<br> <input type="checkbox" name="Parameter[]" value="Status"> Heizkreisstatus<br> <input type="checkbox" name="Parameter[]" value="u_Toleranz"> untere Toleranzgrenze<br> <input type="checkbox" name="Parameter[]" value="o_Toleranz"> obere Toleranzgrenze<br> <br><br><br> <input type="submit" value="Absenden"> <br><br><br>
<?php #_______________________________________________________________________________________________________________________________ function diagramm_wert(){ //EINGABEN______________________________________ $Eingabedate = $_POST["Datebeginn"]; $Eingabedate2 =$_POST["Dateende"]; $HZK = $_POST["Heizkreis"]; $Status=$_POST["Status1"]; $Status2=$_POST["Status2"]; $Kanal1= $_POST["xachse"]; $Parameter = $_POST["Parameter"]; $String =""; for ($i=0; $i <= count($Parameter)-1;$i++){ if ($i<count($Parameter)-1){ $string = $Parameter[$i].", "; } $string = $Parameter[$i]; } // Herstellen der MYSQL Datenverbindung $link = mysql_connect("localhost", "root") or die("Keine Verbindung möglich: " . mysql_error()); mysql_select_db('maschinendatenerfassung') or die("Auswahl der Datenbank fehlgeschlagen" . mysql_error());
//ABFRAGE_MYSQL-Datenbank_______________________ $query= "SELECT $string FROM 10016_temp WHERE Datum BETWEEN '" . $Eingabedate . "' and '" . $Eingabedate2 . "' and Status= '" .$Status. "' and Heizkreis = '" .$HZK. "'" ; $daten = array(); $result = mysql_query($query) or die("Anfrage fehlgeschlagen: " . mysql_error());
$f=0; while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) { $daten[$f]=$line; $f++;} mysql_close($link);
require_once 'phplot-6.1.0\phplot.php'; if (empty($use_shapes)) $use_shapes = FALSE; if (empty($plot_type)) $plot_type = 'linepoints';
$legend_text = array($string); $plot = new PHPlot(600, 480); $plot->SetImageBorderType('plain'); // Improves presentation in the manual $plot->SetTitle("Mein erster Versuch eines Diagramms\n"); $plot->SetPlotType($plot_type); $plot->SetDataType('text-data'); $plot->SetDataValues($daten); $plot->SetPlotAreaWorld(NULL, Null, Null, Null); // Min X-Achse, Min Y-AChse, Max X-AChse, Max Y-Achse $plot->SetYTickIncrement(0.2); // Abstand der Y-AChse $plot->SetLegend($legend_text); $plot->SetXTickPos('none'); $plot->SetDrawXDataLabelLines(True); $plot->SetLegendUseShapes($use_shapes); // Use color boxes or shapes $plot->SetPointSizes(12); // Make points bigger for visibility $plot->SetLineStyles('solid'); // Make all lines solid $plot->SetLineWidths(2); // Make all lines thicker $plot->DrawGraph(); } #____________________________________________________________________________________________________________________________________________________________
if (!empty($_POST)){ diagramm_wert(); echo $plot->DrawGraph(); } ?> </form> </body> </html>
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 03:58:35 Uhr.
|