Symbianize Forum

Most of our features and services are available only to members, so we encourage you to login or register a new account. Registration is free, fast and simple. You only need to provide a valid email. Being a member you'll gain access to all member forums and features, post a message to ask question or provide answer, and share or find resources related to mobile phones, tablets, computers, game consoles, and multimedia.

All that and more, so what are you waiting for, click the register button and join us now! Ito ang website na ginawa ng pinoy para sa pinoy!

HELP! Po Php Backend.

oo pdo. Sa tingin ko wala ka naman para maging problema kung pdo, mysqli, mysql, mssql ang gamitin mo. As long as ok ang conenction string mo and may gumagana ka na query, kakagat pa din yan script na yan.
 
oo pdo. Sa tingin ko wala ka naman para maging problema kung pdo, mysqli, mysql, mssql ang gamitin mo. As long as ok ang conenction string mo and may gumagana ka na query, kakagat pa din yan script na yan.

yung ininclude ko po kasi na config.php is mysqli Oop po, okay lang po ba yun? wala po ba conflict na mangyayare na kung gagamitin ko na query is PDO?
 
output lang naman kailangan mo diba kung nasa database na yang data idedesign mo nalang yn using table and css
 
wala naman dapat. Subukan mo muna uli kung makakapagquery ka using the same script, pero using a different query statement.
 
output lang naman kailangan mo diba kung nasa database na yang data idedesign mo nalang yn using table and css

sige po sir pwede ba i upload ko yung db file then ikaw po mag design kasi diko po maisip yung sinasabi nyo, sana ganun lang po talaga ka dali

- - - Updated - - -

wala naman dapat. Subukan mo muna uli kung makakapagquery ka using the same script, pero using a different query statement.

still having error sir, diko po ma figure it out how to fix its data output.

Fatal error: Uncaught Error: Call to a member function query() on string in C:\xampp\htdocs\table\index.php:76 Stack trace: #0 {main} thrown in C:\xampp\htdocs\table\index.php

sir baka pwede po pa post na din po yung pdo connection no para ma replace ko po sa code ng config.php ko Salamat po.
 
$dbc = new PDO('mysql:host=' . $server . ';dbname=database', $user, $pass);
 
$dbc = new PDO('mysql:host=' . $server . ';dbname=database', $user, $pass);

Sir eto po naging output nung binigay nyo. View attachment 348425

index.php
Code:
<?php include('config.php'); ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
	<style type="text/css">
		#tempTable{ font: 10px Arial, Helvetica; }
		.valueColumns{ width: 60px; text-align: center; }
		.nums{ text-align: right; }
	</style>
</head>
<body>

	<form action="" method="post">

		<select name="month" id="month">
			<?php
				// generate start and end MONTH, wala ka na babaguhin dito. Naka-sticky na din yung value dito, para kapag nagsubmit ka ng value, yun pa din ang idi-display nya sa select box
				$startDate = '2018-01-01'; $endDate = '20181201';
				for($x = $startDate; $x <= $endDate;){
					$selected = '';
					$month = date('M', strtotime($x)); $value = date('n', strtotime($x));
					if(isset($_POST['month'])){ $selected = ($_POST['month'] == $value) ? 'selected' : ''; }
					echo '<option value="' . $value . '" ' . $selected . '>' . $month . '</option>';
					$x = date('Y-m-01', strtotime('+1 month', strtotime($x)));
				}
			?>
		</select>

		<select name="year" id="year">
			<?php
				// generates the start and end YEAR. Palitan mo na lang kung ano ang earliest date, matic na this year ang end YEAR. Also, same as above, naka sticky na din ang selected value dito
				$startYear = '2010-01-01'; $endYear = date('Y-01-01');
				for($x = $startYear; $x <= $endYear;){
					$selected = '';
					$value = date('Y', strtotime($x));
					if(isset($_POST['year'])){ $selected = ($_POST['year'] == $value) ? 'selected' : ''; }
					echo '<option value="' . $value . '" ' . $selected . '>' . $value . '</option>';
					$x = date('Y-01-01', strtotime('+1 year', strtotime($x)));
				}
			?>
		</select>
		
		<button name="submitted">Submit</button>
	
	</form>
	
	<?php
		// para hindi agad mag-fire ang script until mag-click ka sa submit button
		if(isset($_POST['submitted'])){
			$getDate = $_POST['year'] . '-' . str_pad($_POST['month'], 2, "0", STR_PAD_LEFT); // concatenate the selected value (ie. 2018-06), gagamitin to as parameter sa query
			$startDate = $getDate . '-01'; $endDate = date('Y-m-t', strtotime($startDate)); // get the starting and ending date (ie. 2018-06-01 to 2018-06-30), gagamitin ito to generate the column headers pati na din yung required number of columns based dun sa number of days for a particular month / year.
			
			// loop para maggenerate ng custom columns sa query
			$temp = array();
			for($x = $startDate; $x <= $endDate;){
				$rTitle = date('d', strtotime($x));
				$temp[] = 'max(case when (date="' . $x . '") then rValue else 0 end) as "' . $rTitle . '"';
				$x = date('Y-m-d', strtotime('+1 day', strtotime($x)));
			}
			$dayCol = implode(', ', $temp); // gather the generated columns para mai-singit na sa query
			
			echo '<table id="tempTable" border="1" cellpadding="1" cellspacing="1">';
				echo '<tr>';
					echo '<td>Date</td>';
					// use the same loop as above, para magkaroon ka ng column headings sa table mo
					for($x = $startDate; $x <= $endDate;){
						$disp = date('d', strtotime($x));
						echo '<td class="valueColumns">' . $disp . '</td>';
						$x = date('Y-m-d', strtotime('+1 day', strtotime($x)));
					}
				echo '</tr>';
				// The actual query
				$query = 'SELECT rTitle, ' . $dayCol . ' FROM testing where date like "' . $getDate . '%" group by rTitle';
				$sth = $dbc->query($query);
				while($rows = $sth->fetch(PDO::FETCH_ASSOC)){
					echo '<tr>';
						echo '<td>' . $rows['rTitle'] . '</td>'; // ito yung row headings (ie. elevation, evaporation, rainfall, etc.)
						for($x = $startDate; $x <= $endDate;){
							// create columns based on the contents gathered sa query
							$rTitle = date('d', strtotime($x));
							echo '<td class="nums">' . $rows[$rTitle] . '</td>';
							$x = date('Y-m-d', strtotime('+1 day', strtotime($x)));
						}
					echo '</tr>';
				}			
			echo '</table>';
		}
	?>

</body>

</html>

config.php
Code:
<?php

$server = "localhost";
$user = "root";
$pass = "";

$dbc = new PDO('mysql:host=' . $server . ';dbname=testing', $user, $pass);
?>
 

Attachments

  • output.png
    output.png
    4.3 KB · Views: 2
oo, kasi wala ka naman data for January 2010. Ang sample data na binigay ko ay for June 2018
 
oo, kasi wala ka naman data for January 2010. Ang sample data na binigay ko ay for June 2018

okay na po sir thank you so much, pag aaralan ko naman po ngaun ay yung pag aadd ng data.

- - - Updated - - -

oo, kasi wala ka naman data for January 2010. Ang sample data na binigay ko ay for June 2018

Sir pansin ko po sa Database nya, rowtitle,Value and date ang laman ng table, iniisip ko po sa pag dating na ng pag aadd, posible po ba na ganito ang kanilang input fields.. View attachment 348455, kasi base po sa napansin ko and structure ng db, parang need ko gumawa ng mga dropdown<options> from every Rowtitle from each Data. tnry ko po kasi mag input manually sa db, and need pala i type manually yung rowtitle and syempre kasama yung Data. and mag sasama sama lang sila kung iisa ang DATE nila sa isang row.
 

Attachments

  • input.png
    input.png
    27 KB · Views: 5
Kung ang gagawin mo ay direct to the table ka mag-edit / mag-add, definitely, lahat ng value / title ay ilalagay mo. Yun kasi ang gagamitin mo to categorize each entry. Yung point kung bakit ganun ang table structure ay for scalability. If ever na meron NEW data category na idadagdag (ie. humidity, air pressure, etc. hindi ko na alam sa data set nyo), hindi mo na kakailanganin mag-dagdag ng new columns para maging lalagyan niya. For every new column (or category), ang katumbas nya ay isang panibagong row entry na matic na madadagdag sa display table mo.

and mag sasama sama lang sila kung iisa ang DATE nila sa isang row.
Which is the whole point of the pivot table mo, mapagsama sama ang related data based on DATE

Kung ganyan ang encoding area mo, no problem pagdating sa new entries. Upon submission, insert ka lang ng bago record for every field, and you may use the input name AS the field category. Ex

Code:
<form method="POST">
	<input type="text" name="date" id="date" />
	<input type="text" name="elevation" id="elevation" />
	<input type="text" name="evap" id="evap" />
	<input type="text" name="rainfall" id="rainfall" />
	<input type="text" name="sp1" id="sp1" />
	<input type="text" name="sp2" id="sp2" />
	<input type="submit" name="submitted" value="Submit" />
</form>

<?php
	if($_POST['submitted']){
		$date = $_POST['date']; // para ito sa insert query sa baba
		
		$titleArray = array('elevation', 'evap', 'rainfall', 'sp1', 'sp2');
		
		// $key = POST array index
		// $value = POST array value
		foreach($_POST as $key => $value){
			if(in_array($key, $titleArray)){ // check if POST array index exists in the titleArray (kung kasama ba sya sa allowed categories)
				if(trim($value) <> ''){ // check kung blank yung content ng field, wag na mag-insert kapag walang value, since sa query natin, kapag walang value, matic 0 na agad
					$query = "insert into testing (date, rTitle, rValue) values ('$date', '$key', $value)";
					// put your insert query script here
				}
			}
		}
	}
?>
Just do the necessary data validations before inserting. Pero at its base form, ito na mismo ang insert script mo.
 
Sir trny ko po yung CODE na pinost nyo about inserting data, wala po syang error pero wala pong na iinsert na data sa DB ko eto po yung code.
Code:
<?php include('config.php'); ?>

<form method="POST">
	<input type="date" name="date" id="date" />
	<input type="text" placeholder="elevation" name="elevation" id="elevation" />
	<input type="text" placeholder="Evap" name="evap" id="evap" />
	<input type="text" placeholder="rainfall" name="rainfall" id="rainfall" />
	<input type="text" placeholder="SP1" name="sp1" id="sp1" />
	<input type="text"  placeholder="SP2" name="sp2" id="sp2" />
	<input type="submit" name="submitted" value="Submit" />
</form>

<?php
	if($_POST['submitted']){
		$date = $_POST['date'];
		
		$titleArray = array('elevation', 'evap', 'rainfall', 'sp1', 'sp2');
		
		
		foreach($_POST as $key => $value){
			if(in_array($key, $titleArray)){ 
		
				if(trim($value) <> ''){ 
					$sql = "INSERT INTO testing (date, rTitle, rValue) VALUES ('$date', '$key', $value)";
				} else {
					echo "Error inserting Data";
				}
			}
		}
	}
?>
 
wala talaga mai-insert jan, kasi ito
Code:
$sql = "INSERT INTO testing (date, rTitle, rValue) VALUES ('$date', '$key', $value)";
ay query string lang, hindi mo naman in-execute o.
 
wala talaga mai-insert jan, kasi ito
Code:
$sql = "INSERT INTO testing (date, rTitle, rValue) VALUES ('$date', '$key', $value)";
ay query string lang, hindi mo naman in-execute o.

tama po ba sir na $conn->exec($sql); ang idagdag ko under the code.
Code:
$query = "INSERT INTO testing (date, rTitle, rValue) VALUES ('$date', '$key', $value)";
$conn->exec($sql);
 
$query = "INSERT INTO testing (date, rTitle, rValue) VALUES ('$date', '$key', $value)";
$conn->exec($query);
 
$query = "INSERT INTO testing (date, rTitle, rValue) VALUES ('$date', '$key', $value)";
$conn->exec($query);

Thank You Sir :)

- - - Updated - - -

sir tanong lang po kung okay lang na mysqli yung config.php(dbconnection) ko and yung table ko ay PDO? wala po bang magiging problema?
 
Back
Top Bottom