微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从mysql数据库获取的整数,并传递到读取为0的PHP数组中

如何解决从mysql数据库获取的整数,并传递到读取为0的PHP数组中

我正在尝试创建一个运行PHP的网站,该网站从MysqL数据库获取一系列坐标,并创建一个.dxf文件,并通过我在https://www.phpclasses.org/package/7954-PHP-Generate-CAD-files-in-the-AutoCAD-DXF-format.html网上找到的自定义程序绘制了一些线条。

我遇到了一个问题,即使从var_dump中发现变量是整数,但值不是0,我从数据库获取并传递给PHP代码的变量似乎也被代码评估为“ 0”。我试过将它们转换为浮点数,但也无济于事。

    $a = (int)$array["x"];
    $b = (int)$array["y"];
    $c = (int)$array["z"];        
    $d = 15;


$shape->addLine(0,$a,"score");
$shape->addLine(0,$b,"score");
$shape->addLine($a,$d,"score");

$ d是导致程序绘制线条的唯一变量,即使var_dump($ a)和var_dump($ d)可能返回同一内容

cut.PHP

    $id = $_GET['id'];

    $sql_query = "SELECT * FROM orders WHERE id ='".$id."'";
    $result = MysqLi_query($conn,$sql_query);

    $array = MysqLi_fetch_assoc($result);

    $a = (int)$array["x"];
    $b = (int)$array["y"];
    $c = (int)$array["z"];
    
    $d = 15;

    $shape = new DXF();
    $shape->addLayer("score",DXF_COLOR_RED);
    $shape->addLayer("cut",DXF_COLOR_BLACK);
    
    //$shape->addLine(x,y,z,x2,y2,z2,layer);

    $shape->addLine(0,"score");
    $shape->addLine(0,"score");
    $shape->addLine($a,"score");
   
    $shape->addLine(0,"score");
    if (isset($_GET['download']))
    {
        $shape->SaveFile("myFile.dxf");
    }
    $dxfstring = $shape->getString();
   
    echo "<h2>dxf string:</h2><pre>$dxfstring</pre>";

dxfwriter.PHP

class DXF {
   
    function DXF() {
        $this->strDXF = "";
        $this->layers = array();
        $this->Shapestring = "";
    }

    /**
     *
     * @param string $name
     * @param string $color
     * @param string $linetype
     */
    function addLayer($name = "0",$color = DXF_COLOR_WHITE,$linetype = "CONTINUOUS") {
        $tmp = new DXFLayer();
        $tmp->name = $name;
        $tmp->color = $color;
        $tmp->linetype = $linetype;
        $this->layers[] = $tmp;
    }

    /**
     *
     * @return type
     */
    function getString() {
        $strDXF = "";
        $strDXF .= $this->getHeaderString();
        $strDXF .= $this->getBodyString();
        return $strDXF;
    }

    /**
     *
     * @return string
     */
    function getHeaderString() {
        $strDXF = "";
        $strDXF .= "0\nSECTION\n 2\nHEADER\n 9\n\$ACADVER\n 1\nAC1006\n 0\nENDSEC\n 0\n";
        //layers:
        $strDXF .= "SECTION\n 2\nTABLES\n 0\nTABLE\n2\n";
        $strDXF .= $this->getLayeRSString();
        $strDXF .= "ENDTAB\n 0\nENDSEC\n";
        return $strDXF;
    }

    /**
     *
     * @return string
     */
    function getBodyString() {
        $strDXF = "";
        $strDXF .= "0\nSECTION\n2\nENTITIES\n0\n";
        $strDXF .= $this->Shapestring;
        $strDXF .= "ENDSEC\n0\nEOF\n";
        return $strDXF;
    }

    /**
     *
     * @param float $x
     * @param float $y
     * @param float $z
     * @param float $x2
     * @param float $y2
     * @param float $z2
     * @param string $layerName
     * @return string
     */
    function addLine($x,$y,$z,$x2,$y2,$z2,$layerName = "0") {
        $str = "LINE\n" .
                "8" . "\n" .
                $layerName . "\n" .
                "10" . "\n" .
                $x . "\n" .
                "20" . "\n" .
                $y . "\n" .
                "30" . "\n" .
                $z . "\n" .
                "11" . "\n" .
                $x2 . "\n" .
                "21" . "\n" .
                $y2 . "\n" .
                "31" . "\n" .
                $z2 . "\n0\n";
        $this->Shapestring .= $str;
        return $str;
    }



    /**
     *
     * @param type $filename
     */
    function SaveFile($filename) {
        while (false !== ob_get_clean()
        );
        header("Content-Type: image/vnd.dxf");
        header("Content-disposition: inline; filename=$filename");
        echo $this->getString();
        die();
    }

}

请帮助!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。