Mit PHP eine SQL Datenbak auslesen und in ein ARRAY speichern!

projekt

Enthusiast
Thread Starter
Mitglied seit
23.03.2006
Beiträge
4.495
Hi!

Ich möchte mit PHP einen Wert aus einer SQL-Tabelle auslesen und diesen dann in einem ARRAY speichern!
Wie ist das möglich?

Die Frage ist, wie ich das machen kann!

Benötige dringend Hilfe!
thx
projekt
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
zb so:

Code:
$i = 0;
$res = array();
while ( $row = mysql_fetch_assoc($result) )
{
    $res[$i] = $row;
    $i++;
}

gruß
hostile
 
so nun brauche ich mal euro konrete hilfe, da ich es nicht hinbekomme :grrr:!

Dies ist bis jetzt mein PHP-Code
PHP:
<?php

// PNG-Grafik definieren
header("Content-type: image/png");

// Diagramm Werte (Prozentangaben)
$daten=array(0,50,40,100,80,70,40,80,95,90,50);
$maxdaten=max($daten);
// Prozentumrechnung + grössen Faktor
function setProzent($faktor) {
    global $daten;
    for ($i = 0; $i < count($daten); $i++) {
            $daten[$i] = round($daten[$i]*$faktor);
    }
}

// Breite/Höhe des Diagramm
$imgDim = 550;

// Ausführen
setProzent($imgDim/$maxdaten);

$bfaktor = $imgDim/(count($daten)-1);

// Image-Objekt erzeugen und Farben definieren
$bild=imagecreate($imgDim, $imgDim);
$farbeWeiss=imagecolorallocate($bild, 255, 255, 255);
$farbeGrau=imagecolorallocate($bild, 192, 192, 192);
$farbeBlau=imagecolorallocate($bild, 0, 150, 255);
$farbeHellblau=imagecolorallocate($bild, 0, 200, 255);

// Rand für die Grafik erzeugen
imageline($bild, 0, 0, 0, $imgDim, $farbeGrau);
imageline($bild, 0, 0, $imgDim, 0, $farbeGrau);
imageline($bild, $imgDim-1, 0, $imgDim-1, $imgDim-1, $farbeGrau);
imageline($bild, 0, $imgDim-1, $imgDim-1, $imgDim-1, $farbeGrau);

// Raster erzeugen
for ($i=1; $i<count($daten); $i++){
    imageline($bild, $i*$bfaktor, 0, $i*$bfaktor, $imgDim, $farbeGrau);
    imageline($bild, 0, $i*$bfaktor, $imgDim, $i*$bfaktor, $farbeGrau);
}

// Liniendiagramm erzeugen
for ($i=0; $i<count($daten); $i++){
    #imageline($bild, $i*$bfaktor, ($imgDim-$daten[$i]),
    #($i+1)*$bfaktor, ($imgDim-$daten[$i+1]), $farbeBlau);
    imagefilledellipse($bild, $i*$bfaktor, ($imgDim-$daten[$i]), 6, 6, $farbeBlau);
}

// Diagramm ausgeben und Grafik
// aus dem Speicher entfernen
imagepng($bild);
imagedestroy($bild);

?>

Nun folgendes! Wie ihr sehen könnt sind die "$daten" fest eingegeben, was keinen sinn macht!
Ich möchte diese Daten dynamisch aus der SQL Datenban "dbb" und der tabelle "korrelation" haben! undzwar benötige ich dort den X-Wert! die Tabellenspalte heißt auch einfach "x"! Wie schaffe ich es, das einfach nur die "x" werte in das Array "$daten" kommen?
kann mir das mal bitte einer zeigen?

Auch bekomme ich die eine tabellen beschreibung der Achsen nicht hin :grrr:
Wenn mir da einer helfen könnte wäre es super!
euer projekt
 
Zuletzt bearbeitet:
Einfach n SQL-Abfrage und dann wie oben beschrieben die Daten ins array schieben?
Was ist dein Problem? Dass du nicht mit ner Datenbank umgehen kannst? Oder mit den Datenbankfunktionen?

gruß
hostile
 
das habe ich gemacht, jedoch schmeißt er mir trozdem immer fehler aus!

er sagt immer:

"die grafik xyz kann nicht angezeigt werden, das sei einen fehler enhält" :heul:
 
mach mal den bild header weg und schau dir mal die fehlermeldungen an
 
Hi
PHP:
<?php
    define('MYSQL_HOST',     'localhost');
    define('MYSQL_USER',     'root');
    define('MYSQL_PASS',     '');
    define('MYSQL_DATABASE', 'dbb');

        @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) OR
        die("Keine Verbindung zur Datenbank. Fehlermeldung:".mysql_error());
        mysql_select_db(MYSQL_DATABASE) OR
        die("Konnte Datenbank nicht benutzen, Fehlermeldung: ".mysql_error());

$sql2 = "SELECT x FROM korrelation";
$result = mysql_query($sql2) OR die(mysql_error());
$i2 = 1;
while ($row = mysql_fetch_assoc($result))
{
   $daten2[$i2] = $row;
   $i2++;
}
echo "<pre>";
print_r($daten2);
echo "</pre>";
// PNG-Grafik definieren
#header("Content-type: image/png");

// Diagramm Werte (Prozentangaben)
$daten=array(0,50,40,100,80,70,40,80,95,90,50);
echo "<pre>";
print_r($daten);
echo "</pre>";
// Prozentumrechnung + grössen Faktor
function setProzent($faktor) {
    global $daten;
    for ($i = 0; $i < count($daten); $i++) {
            $daten[$i] = round($daten[$i]*$faktor);
    }
}

// Breite/Höhe des Diagramm
$imgDim = 550;

// Ausführen
setProzent($imgDim/100);

$bfaktor = $imgDim/(count($daten)-1);

// Image-Objekt erzeugen und Farben definieren
$bild=imagecreate($imgDim, $imgDim);
$farbeWeiss=imagecolorallocate($bild, 255, 255, 255);
$farbeGrau=imagecolorallocate($bild, 192, 192, 192);
$farbeBlau=imagecolorallocate($bild, 0, 150, 255);
$farbeHellblau=imagecolorallocate($bild, 0, 200, 255);

// Rand für die Grafik erzeugen
imageline($bild, 0, 0, 0, $imgDim, $farbeGrau);
imageline($bild, 0, 0, $imgDim, 0, $farbeGrau);
imageline($bild, $imgDim-1, 0, $imgDim-1, $imgDim-1, $farbeGrau);
imageline($bild, 0, $imgDim-1, $imgDim-1, $imgDim-1, $farbeGrau);

// Raster erzeugen
for ($i=1; $i<count($daten); $i++){
    imageline($bild, $i*$bfaktor, 0, $i*$bfaktor, $imgDim, $farbeGrau);
    imageline($bild, 0, $i*$bfaktor, $imgDim, $i*$bfaktor, $farbeGrau);
}

// Liniendiagramm erzeugen
for ($i=0; $i<count($daten); $i++){
    #imageline($bild, $i*$bfaktor, ($imgDim-$daten[$i]),
    #($i+1)*$bfaktor, ($imgDim-$daten[$i+1]), $farbeBlau);
    imagefilledellipse($bild, $i*$bfaktor, ($imgDim-$daten[$i]), 6, 6, $farbeBlau);
}

// Diagramm ausgeben und Grafik
// aus dem Speicher entfernen
imagepng($bild);
imagedestroy($bild);

?>
das ist jetzt mein PHP-CODE!

und was kommt immer als fehlermeldung:
Code:
[B]Fatal error[/B]:  Unsupported operand types in [B]Z:\Program Files\xampp\htdocs\kurs\Projekt\blubb.php[/B] on line [B]32[/B]
Da ich ja die beiden Array ausgebe sieht das jetzt so aus:
Code:
Array
(
    [1] => Array
        (
            [x] => 45
        )

    [2] => Array
        (
            [x] => 55
        )

    [3] => Array
        (
            [x] => 66
        )

    [4] => Array
        (
            [x] => 66
        )

)
Array
(
    [0] => 0
    [1] => 50
    [2] => 40
    [3] => 100
    [4] => 80
    [5] => 70
    [6] => 40
    [7] => 80
    [8] => 95
    [9] => 90
    [10] => 50
)
dabei ist das obere Array, das welches ich aus der datenbank ausgelesen habe und das untere das fest eingegebene!
Das obere muss auch so aussehen, wie das untere! ist das auch möglich?
aus dem oberen array soll folgendes nicht mitgespeichert werden:
Code:
Array
        (
            [x] => 
        )

Es soll dort nur das hier stehen:
Code:
 [1] => 45


danke schonmal
euer
projekt
 
Zuletzt bearbeitet:
Mach aus dem

$daten2[$i2] = $row;

mal

$daten2[$i2] = $row['x'];

Da du im Moment ein Array in einem array speicherst.

gruß
hostile
 
danke :hail:
ich war schon am verfluchen :fire:

nun muss ich nur die x und y achse beschriften!
kann mir einer sagen, wie das funktioniert?
 
Zuletzt bearbeitet:
schau dir lieber eine fertige Chart Bibliothek die EZ graph an. Damit sparst du dir viel arbeit.
 
Zuletzt bearbeitet:
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh