-3

私は自分がどこを台無しにしているのかを理解しようと夢中になっています。私はこのプログラムを何百回も経験しましたが、なぜそれが実行されていないのかまだ理解できません。呼び出されているデータベース内のすべての領域が空白ではなく、すべての変数が前のページから正しく取得されています。

$host="localhost";
    $username="root";
    $password="sunbuggy";
    $database="mpg";
    $table="m";

mysql_connect($host,$username,$password) or die( "unable to connect to mysql server");
    mysql_select_db($database) or die( "Unable to select database"); 

        $driver=$_POST['driver'];
        $shuttle=$_POST['shuttle'];
        $gas=$_POST['gas'];
        $miles=$_POST['miles'];
        $cost=$_POST['cost'];

$getlastpri= "(SELECT * FROM '$table' ORDER BY `prikey` DESC)";


$sql=mysql_query($getlastpri);
$i=0;
$num=mysql_result($prime,$i,$prikey);
$shut=NULL;
while ($shut != $shuttle){
$shut=mysql_result($sql,$i,shuttle);
    $i++;}
if($shut == $shuttle)
    {$pastmiles=mysql_result($sql,$i,miles);}
else
    $pastmiles=Null;                        


if($pastmiles=Null):
    {$milestravled=Null;}
else:
$milestravled=$miles-$pastmiles;

$milespergallon=($milestravled/$gas);



$abc= "INSERT INTO $table VALUES ('','$driver','$shuttle','$gas','$miles','$cost', '$milestravled','$milespergallon')";
mysql_query($abc);

mysql_close();
echo "Your latest information has been input into the server";
?>`

よろしくお願いします。ヘンリー

4

3 に答える 3

2

私が見ることができる1つのエラーは、ここでテーブル名を引用符で囲んでいることです:

$getlastpri= "(SELECT * FROM '$table' ORDER BY `prikey` DESC)";

そのはず:

$getlastpri= "SELECT * FROM `$table` ORDER BY `prikey` DESC";

ただし、他のエラーもある可能性があります。

うまく言えば、あなたのコードは完全に混乱しています。アプリケーションを小さなパーツに分けて構築し、一度に数行だけ記述してから、それらの数行が期待どおりに機能することをテストする必要があります。経験豊富なプログラマーは、コードをテストせずに大量のコードを作成し、最初の試行で機能することを期待することはありません。

于 2012-08-27T22:08:14.253 に答える
1

一見すると、これif/elseは間違っています。

if($pastmiles=Null):
{$milestravled=Null;}
else:

する必要があります

if($pastmiles == Null){
    $milestravled=Null
}

編集:

または @Kolink がコメントで指摘したように、次の構文を使用できます。

<?
if($a):
    echo $a;
    if($b) {
      echo $b;
    }
else:
    echo $c;
endif;
?>

編集2:

@lserni が指摘したように、比較ではなく NULL を割り当てています。使用する必要はあり==ません=

于 2012-08-27T22:07:54.360 に答える
0

ここに(少なくとも)エラーがあります:

if($pastmiles=Null):
    {$milestravled=Null;}
else:
    $milestravled=$miles-$pastmiles;

IF の本体は代入であり、チェックではありません。最初は NULL ではなかった場合でも、常に$pastmilesNULL に設定されます。

あなたは書いたはずです:

if (NULL == $pastmiles)
    ...

== は同等性チェックを行い、最初に NULL を配置すると、= を再度忘れた場合、PHP は何も起こらなかったように処理を続行するのではなく、エラーをスローします。

于 2012-08-27T22:09:55.227 に答える