2017-02-17 13 views
-1

更新済み - ページ全体が含まれています。私が入力の値が渡されていないと言うことができるから、理由は分かりません。私はそれが問題であるかどうかを見るためにすべての入力を改名しました。まだ運はありません。私のmysqli準備文が機能しないのはなぜですか?

<?php 
require_once ('include/helper_content/vehicle_data.php'); 
$action = $_GET['action']; 


// Photos 
$result3 = mysqli_query($conn,"SELECT * FROM Images WHERE stock='$stock' ORDER BY orderIndex"); 
while($row3 = mysqli_fetch_array($result3)){ 
    if ($result3) { 
     $mainPic = '<img src="'.getImgURL($stock,1,"large").'">'; 
    } else { 
     $mainPic = '<p>No Vehicle Chosen</p>'; 
    } 
} 

// Which Data to Show? 

// Edit data 
if($action == "Edit") { 

foreach($years as $years){ 
    $selected = ($row['year'] == $years) ? ' selected="selected"' : ''; 
    $Years .= '<option value="'.$years.'"'.$selected.'>'.$years.'</option>'; 
} 

foreach($makes as $makes){ 
    $selected = ($row['make'] == $makes) ? ' selected="selected"' : ''; 
    $Makes .= '<option value="'.$makes.'"'.$selected.'>'.$makes.'</option>'; 
} 

$Models = '<option value="'.$row['model'].'">'.$row['model'].'</option>'; 
$Trims = '<option value="'.$row['trim'].'">'.$row['trim'].'</option>'; 

$vehicle = ' 
    <p class="h4-edit"> 
     <select name="year" id="year"><option>  </option>'.$Years.'</select> 
     <select name="make" id="make"><option></option>'.$Makes.'</select> 
     <select name="model" id="model">'.$Models.'<option></option></select> 
     <select name="trim" id="trim">'.$Trims.'<option></option></select> 
    </p> 
'; 
$vin = '<input type="text" name="vin" id="vin" size="20" maxlength="17" value="'.$row['vin'].'">'; 
$mileage = '<input type="text" name="mileage" id="mileage" size="3" maxlength="6" value="'.$row['mileage'].'">'; 

// Engine 
foreach($cylinders as $cylinders){ 
    $selected = ($row['cylinders'] == $cylinders) ? ' selected="selected"' : ''; 
    $Cylinders .= '<option value="'.$cylinders.'"'.$selected.'>'.$cylinders.'</option>'; 
} 
$engine = ' 
    <input id="liters" name="liters" type="text" maxlength="4" placeholder="liters" value="'.$row['liters'].'"> L. 
    <select name="cylinders" id="cylinders"><option></option>'.$Cylinders.'</select> cyl 
'; 

// Fuel 
foreach($fuel as $fuel){ 
    $selected = ($row['fuel'] == $fuel) ? ' selected="selected"' : ''; 
    $Fuel .= '<option value="'.$fuel.'"'.$selected.'>'.$fuel.'</option>'; 
} 
$fuel = '<select name="fuel" id="fuel"><option></option>'.$Fuel.'</select>'; 

// Asperation 
foreach($asperation as $asperations){ 
    $selected = ($row['asperation'] == $asperations) ? ' selected="selected"' : ''; 
    $Asperation .= '<option value="'.$asperations.'"'.$selected.'>'.$asperations.'</option>'; 
} 
$asperation = '<select name="asperation" id="asperation">'.$Asperation.'</select>'; 

// Purchase Date 
$purchased = '<input type="date" name="purchaseDate" placeholder="00-00-0000" value="'.$row['purchase_date'].'">'; 

// Flag 
foreach($flag as $flag){ 
    $selected = ($row['flag'] == $flag) ? ' selected="selected"' : ''; 
    $Flag .= '<option value="'.$flag.'"'.$selected.'>'.$flag.'</option>'; 
} 
$flag = '<select name="flag" id="flag"><option></option>'.$Flag.'</select>'; 

// Status 
foreach($status as $status){ 
    $selected = ($row['status'] == $status) ? ' selected="selected"' : ''; 
    $Status .= '<option value="'.$status.'"'.$selected.'>'.$status.'</option>'; 
} 
$status = '<select name="status" id="status"><option></option>'.$Status.'</select>'; 

// Price 
$price = '<input type="text" class="dollars" name="price" id="price" placeholder="$" value="'.$row['asking'].'">'; 


// Dont edit, just show //////////////////////////////////////////////////////////////////// 
} else { 

if ($row['trim'] != "Base") { 
    $vehicle = '<h4>'.$row['year'].' '.$row['make'].' '.$row['model'].' '.$row['trim'].'</h4>'; 
} else { 
    $vehicle = '<h4>'.$row['year'].' '.$row['make'].' '.$row['model'].'</h4>'; 
} 

$vin = ' 
    <a class="popr" data-id="vinXL">'.$row['vin'].'</a> 
    <div class="popr-box" data-box-id="vinXL"> 
     <i class="close"></i> 
     <p class="vin">'.$row['vin'].'</p> 
    </div> 
'; 

$mileage = number_format($row['mileage']); 
$engine = $row['liters'].'l. '.$row['cylinders'].' cyl'; 
$fuel = $row['fuel']; 
$asperation = $row['asperation']; 
$purchased = $row['purchased']; 



} 
?> 
<section class="vehicle"> 
<h3>Vehicle</h3> 
<div id="vehicle-info"> 
    <div class="vehicle-thumb"><?php echo $mainPic; ?></div> 
    <div class="vehicle-data edit"> 
     <div class="trueCost">True Cost: <strong>$<?php echo $cost; ?></strong></div> 
     <?php echo $vehicle; ?> 
     <p><label for="vin" class="inline-edit">VIN</label> <?php echo $vin; ?></p> 
     <p><label for="mileage" class="inline-edit">Mileage</label> <?php echo $mileage; ?></p> 
     <p><label for="liters" class="inline-edit">Engine</label> <?php echo $engine; ?></p> 
     <p><label for="fuel" class="inline-edit">Fuel</label> <?php echo $fuel; ?></p> 
     <p><label for="Asperation" class="inline-edit">Asperation</label> <?php echo $asperation; ?></p> 
     <p><label for="purchaseDate" class="inline-edit">Purchased</label> <?php echo $purchased; ?></p> 
     <p><label for="flag" class="inline-edit">Flag</label> <?php echo $flag; ?></p> 
     <p><label for="status" class="inline-edit">Status</label> <?php echo $status; ?></p> 
     <p><label for="price" class="inline-edit">Price:</label> <?php echo $price; ?></p> 
    </div> 
</div> 
</section> 
<?php 

if ($_SERVER['REQUEST_METHOD'] == 'POST') { 

$conn = new mysqli("*******", "*******", "*******", "*******"); 
if ($stmt = $conn->prepare("UPDATE Inventory SET year=?, make=?, model=? WHERE stock=?")) { 
    $stmt->bind_param('issi', $year, $make, $model, $stock); 


    $year = (int) $_POST['year']; 
    $make = $_POST['make']; 
    $model = $_POST['model']; 
    $stock = $stock; 

    $stmt->execute(); $mysqli->error; 
    $stmt->close(); 
} else { 
//Error 
    printf("Prep statment failed: %s\n", $mysqli->error); 
} 
} 
?> 

私はすでにこれに何時間も費やしていますが、何が間違っていますか? phpMyAdminを開いていると、空白の結果が表示されてテーブルが更新されています。フォームからデータを挿入することができません。

if ($_SERVER['REQUEST_METHOD'] == 'POST') { 

$conn = new mysqli("**********", "******", "*****", "******"); 

if ($stmt = $conn->prepare("UPDATE Inventory SET year=?, make=?, model=? WHERE stock=?")) { 
    $stmt->bind_param('dssd', $year, $make, $model, $stock); 

    $year=$_POST['year']; 
    $make=$_POST['make']; 
    $model=$_POST['model']; 

    $stmt->execute(); 
    $stmt->close(); 
} else { 
//Error 
    printf("Prep statment failed: %s\n", $mysqli->error); 
} 

} 
+1

'$ stock'は決してバインドしません。 – OptimusCrime

+0

'$ stock'はどこに定義されていますか? – Machavity

+0

在庫はページの他の場所にあります。私は$株をエコーし​​て表示されます。私はそれを2回しなければなりませんか? –

答えて

-1

$stock変数を宣言していません。また、bind_paramの最初の引数は 'isii'にすることができます。

UPDATE:

$year = (int) $_POST['year']; 

だから彼らはbind_param最初の引数と一致させることができます:

時々$_POST要素は文字列のみです、あなたはこのように、あなたの変数をキャストすることができます。

+0

OPは '$ stock'が定義されていることをOPが助けます。あなたの答えの第二部は何も変わらない – Machavity

+0

コメントを読まなかった。本当に申し訳ありません。私は多分可変型のものだと思っていたので、最初の議論を変えることを提案したのです。 –

+0

@JoseCarlosRamírez私はあなたの更新された答えは、運を試してみました! –

関連する問題