to mój kod:fetch_array() nie zachowując ORDER BY z zapytaniem
<?php
header("Expires: Mon, 26 Jul 1990 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
//TESTING CONNECT
include 'connect.php';
$mysqli = connectDB();
getWells(2, $mysqli);
function getWells($company,$mysqli){
//include 'connect.php';
define("MAX_TOP", 96);//96 INCHES == 8 FEET
define("BARRELS_PER_INCH", 1.67);
//$company = $_GET['company'];
//$mysqli = connectDB();
$count = 0;
$sql = "SELECT wells.id, name, top, bottom, last_pulled, bbl_per_hour
FROM wells, history
WHERE company_id ='$company'
AND wells.id = well_id
AND last_record = 1;";
if($result = $mysqli->query($sql)) {
while($row = $result->fetch_array()){
$well_name = $row['name'];
$well_id = $row['id'];
$last_bottom = $row['bottom'];
$last_pulled = $row['last_pulled'];
$bbl = $row['bbl_per_hour'];
$projected_fill = MAX_TOP - $last_bottom;
$projected_barrels = $projected_fill * BARRELS_PER_INCH;
$time_to_fill = $projected_barrels/$bbl;
$exploded_time = explode('.', $time_to_fill);
$hours = $exploded_time[0];
$frac_hours = '.'.$exploded_time[1];
$minutes = floor($frac_hours*60);
$projected = strtotime($last_pulled." +".$hours." hours"." +".$minutes." minutes");
$projected_datetime = date("Y-m-d H:i:s",$projected);
$insert = "INSERT INTO temp_wells (well_id,well_name,last_pull,hrs_to_fill)
VALUES ('$well_id','$well_name','$last_pulled','$projected_datetime');";
if(!$result2 = $mysqli->query($insert)){
return "There was a problem inserting data into databse. Contact Larsoon Computer Services. - GetWells.php, Line 57 ".$mysqli->error;
}
else{
$get_temp = "SELECT * FROM temp_wells
ORDER BY hrs_to_fill ASC;";
if(!$result3 = $mysqli->query($get_temp)){
return "There was a problem retrieving data. Contact Larson Computer Services. - GetWells.php, Line 63 ".$mysqli->error;
}
else{
//echo var_dump($result3);
while ($row1 = $result3->fetch_array()) {
$o_well_id = $row1['well_id'];
$o_well_name = $row1['well_name'];
$o_pull_date = $row1['hrs_to_fill'];
//TESTING DATA OUTPUT
echo $o_well_id;
echo '<br>';
echo $o_well_name;
echo '<br>';
echo $o_pull_date;
echo '<br>';
echo '<br>';
//CREATE THE COUNTDOWN
$date = date('U', strtotime($o_pull_date));
$difference = $date - date('U');
$diff_days = floor($difference/(24*60*60));
$diff_hours = floor($difference % (24 * 60 * 60)/3600);
$diff_min = floor(($difference % (24 * 60 * 60) % 3600)/60);
$diff_secs = floor((($difference % (24 * 60 * 60) % 3600)%60)/1);
if($diff_days <= 0){
$countdown = "$diff_hours hrs $diff_min min";
}
else{
$countdown = "$diff_days days $diff_hours hrs $diff_min min";
}
if($count == 0) {
$data_str = $o_well_id.'|'.$o_well_name.'|'.$countdown;
$count++;
}
else {
$data_str = $data_str.'|'.$o_well_id.'|'.$o_well_name.'|'.$countdown;
}
}
}
}
$truncate = "TRUNCATE TABLE temp_wells;";
if(!$result4 = $mysqli->query($truncate)){
return "There was a problem truncating table. Contact Larson Computer Services. ".$mysqli->error;
}
}
}//END OF IF
if($data_str == null && $data_str == ""){
$data_str = 0;
}
return $data_str;
}
?>
Produkuje:
1
ATESTWELL
2012-08-17 14:55:37
3
HAMLET 1-11H
2012-08-17 17:40:00
4
HAMLET 2-11H
2012-08-17 18:47:14
8
DANIEL 1-33H
2012-08-17 13:15:39
6
DANIEL 21-33H
2012-08-19 13:47:16
9
FAVER 1-29H
2012-08-17 14:31:00
tabela wygląda następująco:
well_id int(11)
well_name varchar(50)
last_pull datetime
hrs_to_fill datetime
co nie jest uporządkowane według pole datetime, tak jak powinno być. Uruchamianie kwerendy na PHPMyadmin działa dobrze, ale ten kod nie jest ... Wszelkie myśli?
Dzięki,
Luis
Czy możesz opublikować widok projektu tabeli, której dotyczy zapytanie? jaki jest typ danych hrs_to_fill? – mithilatw
Najprawdopodobniej wykonasz kod inny niż ten, który wysłałeś. Upewnij się, że plik PHP, który wykonujesz, jest tym, który chcesz. Inną opcją jest strona buforowana przez przeglądarkę. – Andy
co jeśli cię przeraża? – LouieV