-1
<?php
$hostname='localhost';
$user='root';
$password='';
$connect=mysqli_connect($hostname,$user,$password,'a_railway');

if(!$connect)
 {
   die('Could not connect');
  }

$rs="central";
$rd="central";
$s="A";
$d="B";

$dist=call_dist($rs,$rd,$s,$d,$connect);
echo $dist;

function call_dist($rs,$rd,$s,$d,$connect)
{
    $src_dist="SELECT Distance FROM $rs WHERE Station=$s ";
    $dest_dist="SELECT Distance FROM $rs WHERE Station=$d "; 
    $src_dist=mysqli_query($connect,$src_dist);
    $dest_dist=mysqli_query($connect,$dest_dist);
     $dist=abs($src_dist-$dest_dist);
    return $dist;
}
?>

Sql クエリが機能しないのはなぜですか? データベースに問題はありません。しかし、クエリは実行されません。このプログラムで、A 点と B 点の値を引いて求められる距離を求めたいと思います。

4

1 に答える 1

3

が varchar の場合station、文字列を引用符で囲む必要があります。

$src_dist="SELECT Distance FROM $rs WHERE Station='$s' ";

ただし、そのような文字列の値を補間しないでください。準備済みステートメントを使用してください。

このリファレンスを読むと、コードと生活がずっと楽になります: http://php.net/manual/en/mysqli.quickstart.prepared-statements.php

編集SQLで計算を行うこともできます:

$dist_query = mysqli_query("SELECT ABS(s.Distance - d.Distance) as dist FROM
                ( SELECT Distance FROM $rs WHERE Station='$s' ) as s,
                ( SELECT Distance FROM $rs WHERE Station='$d' ) as d");
$dist_result = $dist_query->fetch_assoc();
return $dist_result[0]['dist'];
于 2013-07-05T18:24:20.750 に答える