Can not use scalar as an array (PHP)

Permalänk
Medlem

Can not use scalar as an array (PHP)

Hejsan!

Sitter och försöker få ordning på lite php kod men kommer dessvärre ingenvart.

Php scriptet läser data ur en SQLite databas, jag vill sedan placera datan som lästes in i ett array och sedan plotta dessa värden med hjälp av jpgraph. Dock stöter jag på patrul med felmedelandet "Can not use scalar as an array" vad jag har förstått är detta ett relativt vanligt fel som beror på att en variabel tidigare definerats som något annat än en array. Lösningen jag har lyckats läsa mig till är att sätta $variabel = array(); vilket jag gjorde redan från början. Jag finner inget ställe i min kod som definierar variabeln $voltage som något annat än en array.
Är detta ett tolkningsfel av mig eller är det något jag har missat att göra.

Oavsett här är koden

<?php // content="text/plain; charset=utf-8" require_once ('/var/www/html/jpgraph/src/jpgraph.php'); require_once ('/var/www/html/jpgraph/src/jpgraph_line.php'); class MyDB extends SQLite3 { function __construct() { $this->open('/home/pi/Documents/Projects/ArduinoSerialImport/solartracker.db'); } } $db = new MyDB(); if(!$db){ echo $db->lastErrorMsg(); } else { echo "Opened database successfully\n"; } $sql =<<<EOF SELECT voltage from stuffToPlot; EOF; $voltage = array(); $ret = $db->query($sql); while ($row[0] = $ret->fetchArray(SQLITE3_ASSOC)) { $voltage[] = $row[0]; //var_dump($row); //$isScalar = is_scalar($voltage); //var_dump(isScalar); } $graph = new Graph(300,250); $graph->SetScale("textlin"); $theme_class=new UniversalTheme; $graph->SetTheme($theme_class); $graph->img->SetAntiAliasing(false); $graph->title->Set('Filled Y-grid'); $graph->SetBox(false); $graph->img->SetAntiAliasing(); $graph->yaxis->HideZeroLabel(); $graph->yaxis->HideLine(false); $graph->yaxis->HideTicks(false,false); $graph->xgrid->Show(); $graph->xgrid->SetLineStyle("solid"); $graph->xaxis->SetTickLabels(array('A','B','C','D')); $graph->xgrid->SetColor('#E3E3E3'); $p1 = new LinePlot($voltage); $graph->Add($p1); $p1->SetColor("#6495ED"); $p1->SetLegend('Line 1'); $graph->legend->SetFrameWeight(1); // Output line $graph->Stroke(); ?>

Om ni har förslag på förbättringar av koden tar jag tacksamt emot detta

/J