0

DBから最大値を取得するテキストボックスがあります。しかし、それは間違った価値を与えます。

ここで何が悪かったのか理解するのを手伝ってもらえますか?

basicInformation関数:

private function basicInformation() {
            // initialize variables
    $host = "localhost";
    $db_name = "test";
    $tbl_name = "ballpark_details";
    $username = "root";
    $password = "";

    // connect to database
    mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
    mysql_select_db("$db_name")or die("cannot select DB"); # ORDER BY ballpark_details_id DESC
    $query = mysql_query("SELECT MAX(ballpark_details_booking_ref) as max_booking_ref FROM `ballpark_details`");
    //Getting the max ref_id
    $values = mysql_fetch_assoc($query);    
    while ($query !=-1 && $row = mysql_fetch_assoc($query)) {
    $max = $row['max_booking_ref'];
    }
    echo print_r($values, true);
    $html = "";
    $html .= '<fieldset id="basic-information" class="ui-widget">' . PHP_EOL;
    $html .= '<legend>Basic Ballpark Information</legend>' . PHP_EOL;
    $rowClass = "input-row";

    //$html .= $this->wrapLabelTextbox($this->inputBookingRef($values['max_booking_ref)']), $rowClass);
    $html .= $this->wrapLabelTextbox($this->inputBookingRef($max), $rowClass);
    //$html .= $this->wrapLabelTextbox($this->inputBookingRef(), $rowClass);
    $html .= $this->wrapLabelTextbox($this->inputBank(), $rowClass);
    $html .= $this->wrapLabelTextbox($this->inputRegion(), $rowClass);
    $html .= $this->wrapLabelTextbox($this->inputDescription(), $rowClass);
    $html .= $this->wrapLabelTextbox($this->inputNotes(), $rowClass);
    $html .= $this->wrapLabelTextbox($this->inputStartDate(), $rowClass);
    $html .= $this->wrapLabelTextbox($this->inputRequestedDeliveryDate(), $rowClass); #$this->inputEndDate()
    $html .= $this->wrapLabelTextbox($this->inputExpiryDate(), $rowClass);
    $html .= $this->wrapLabelTextbox($this->inputURL(), $rowClass);
    $html .= $this->wrapLabelTextbox($this->inputCAR(), $rowClass);
    (strcmp($_GET["page"], "createballpark"))?
        $html .= $this->wrapLabelTextbox($this->inputProjectStatusEdit(), $rowClass) :
        $html .= $this->wrapLabelTextbox($this->inputProjectStatusCreate(), $rowClass);         
    $html .= '</fieldset>';
    return $html;
}

と私のinputBookingRef関数:

private function inputBookingRef($values){ 
    //$values = $this->bookingRef;
    $html = "";
    $values++;
    $html .= '<label for="ref">Booking Ref: </label>';
    $html .= HTML::inputText("ref", 20, $values) . PHP_EOL;
    return $html;
}

この行で:

echo print_r($values, true);

最後の最大値を表示しています。しかし、私のテキストボックスでは、値番号1を示しているだけです。コーディングの何が問題になっているのかわかりません。プログラムを続けることができるように、どんな助けでも大歓迎です。ありがとう。

4

1 に答える 1

0

電話をかけるたびに

mysql_fetch_assoc($query)

それはあなたに結果の次の価値を与えるでしょう。クエリからの行は1つだけです(これが実際の行の場合)。行の値は$valuesに割り当てられ、WHILEループはまったく実行されません。

ステートメントの1つだけを残して、それは問題ないはずです;)

コメント後の編集: inputBookingRef()メソッド$values++;の目的も

$valuesはおそらく文字列型です..++はそれを面白いものにします。

于 2012-11-20T07:24:56.993 に答える