What's new

Closed Insert update from one table to another table

Status
Not open for further replies.

daredavil07

Addict
Joined
Aug 24, 2018
Posts
63
Reaction
17
Points
83
Hello po mga bossing, may ginagawa po akong parang feedback/comment system para po sa different topic na e-po-post. Gamit ang tbl1, nakakapag-update po ako ng walang problema. Yung kailangan kulang pong gawin e-insert din po pag-submit ang laman ng $1_id, $name1, $comments1, $com_timestamp1 ni tbl1 sa $1a_id, $name2, $com_timestamp2 ni tbl2, para dun napo yung mag increment at repository ng mga comments with respect sa topic 1_id. Anong action query po pwede kung gawin para mapapasok ko din kasama ang 1_id?

Tables:
Code:
DB pollsys
CREATE TABLE tbl1 (
    1_id int(5), PRI
    topic varchar(50),
    name1 varchar(30),
    comments1 text,
    com_timestamp1 datetime,
 );

Code:
 DB pollsys
 CREATE TABLE tbl2 (
    2_id int(5), PRI
    1a_id int(5)
    name2 varchar(30),
    comments2 text,
    com_timestamp2 datetime,
 );

main.php
HTML:
<a href = "details.php?1_id=<?php echo $row['1_id']; ?>" >Open</a>

details.php
PHP:
<?php
include("conn.php");
if (isset($_POST['submit']))
{
if (is_numeric($_POST['1_id']))
{
$name1 = mysqli_real_escape_string($conn, $_POST['name1']);
$comments1 = mysqli_real_escape_string($conn, $_POST['comments1']);
$com_timestamp1 = date("Y-m-d H:i:s");

if ($comments == '' )
{
renderForm($comments, $error);
}
else
{
mysqli_query($conn, "UPDATE db.tbl1 SET name1='$name1', comments1='$comments1', com_timestamp1='$com_timestamp1' WHERE 1_id='".$_POST['1_id']."'");
{
echo '<script>';
echo 'alert("Post Updated!");';
echo '</script>';
}
?>


Salamat po ng marami!
 
i think kailangan mong baguhin yung DESIGN ng database mo (kung tama yung interpretation ko sa case mo).

Kailangan mo ng 3 tables
- tbl_user
- tbl_topic
- tbl_comment

Code:
***structure ng tbl_user***
user_id <-------primary key
user_name

**structure ng tbl_topic***
topic_id <-------primary key
topic_title
user_id <------this is a foreign key

**structure ng tbl_comment***
comment_id <-------primary key
comment
topic_id  <------foreign key
user_id  <-------foreign key

It's called relational database.
I design mo na ganito ang tables mo and then puwede kita i-guide (kung hindi mo masundan).

"A TOPIC has one user (or creator). A TOPIC has one-to-many COMMENTS. A COMMENT has one user (or creator). A USER has one-to-many TOPIC. A USER has one-to-many COMMENTS."

Tapos pag nag insert ka na sa table mo (from your HTML form).
****pag nag simula ng topic*****
- insert mo yung NAME sa tbl_user
- then insert mo yung TOPIC sa tbl_topic

*****pag gusto mag comment******
- first kailangan i-check mo yung name kung nasa tbl_user BAGO mag comment (kung wala sa tbl_user ang name, sabihan mo na mag REGISTER muna siya)
- pag registered na yung name niya, puwede na siyang mag comment
- pag nag comment siya, i-store mo yung COMMENT niya sa tbl_comment, kasama ng TOPIC id ng pinag co-commentan niya, at saka USER id niya.

****para sa display ng Topic + comments + users*****
- I-query mo yung lahat using JOIN
 
Last edited:
i think kailangan mong baguhin yung DESIGN ng database mo (kung tama yung interpretation ko sa case mo).

Kailangan mo ng 3 tables
- tbl_user
- tbl_topic
- tbl_comment

Code:
***structure ng tbl_user***
user_id <-------primary key
user_name

**structure ng tbl_topic***
topic_id <-------primary key
topic_title
user_id <------this is a foreign key

**structure ng tbl_comment***
comment_id <-------primary key
comment
topic_id  <------foreign key
user_id  <-------foreign key

It's called relational database.
I design mo na ganito ang tables mo and then puwede kita i-guide (kung hindi mo masundan).

"A TOPIC has one user (or creator). A TOPIC has one-to-many COMMENTS. A COMMENT has one user (or creator). A USER has one-to-many TOPIC. A USER has one-to-many COMMENTS."

Tapos pag nag insert ka na sa table mo (from your HTML form).
****pag nag simula ng topic*****
- insert mo yung NAME sa tbl_user
- then insert mo yung TOPIC sa tbl_topic

*****pag gusto mag comment******
- first kailangan i-check mo yung name kung nasa tbl_user BAGO mag comment (kung wala sa tbl_user ang name, sabihan mo na mag REGISTER muna siya)
- pag registered na yung name niya, puwede na siyang mag comment
- pag nag comment siya, i-store mo yung COMMENT niya sa tbl_comment, kasama ng TOPIC id ng pinag co-commentan niya, at saka USER id niya.

****para sa display ng Topic + comments + users*****
- I-query mo yung lahat using JOIN

Hi Sir codyscott - kailangan ko po kasi yung tbl1 ko, working napo kasi magdadag-dag lang ako ng commenting system yun po ang tbl2. Naglagay nalang po ako ng login system (separate table) para mapasok ko nalang sa $session yung username sa $name1. Yung gusto ko po sanang gawin e papasok yung $1_id ni comments1 sa
tbl2. Para dun nalang po ako sa tbl2 huhugot para e display ang comments. Salamat sir!
 
Mapapasok ko po ang $name1, $comments1, com_timestamp1 ng tbl1 sa $name2, $comments2, $com_timestamp2 ng tbl2. Yung di ko nalang po magawa e yung 1_id --> 1a_id. :)
 
Last edited by a moderator:
Mapapasok ko po ang $name1, $comments1, com_timestamp1 ng tbl1 sa $name2, $comments2, $com_timestamp2 ng tbl2. Yung di ko nalang po magawa e yung 1_id --> 1a_id. :)

Okay na po pala..nagawa ko nadin.. '".$_POST['1_id']."' insert sa 1a_id. Subukan ko nalang kung gagana yung comment system..:)
 
Last edited by a moderator:
Working napo yung comment system. Di kulang po makuha papano ma display ang echo na vertically. :)

PHP:
<?php
include("conn.php");
$result = mysqli_query($conn, "SELECT * FROM `tbl2` WHERE `1a_id` = $1_id ORDER BY 2_id ASC");
while($row=mysqli_fetch_array($result)){
echo $row['name2'];
echo $row['com_timestamp2'];
echo $row['comments2'];
}
mysqli_close($conn);
?>
 
Last edited by a moderator:
Pano ko po ma arrange vertically yung fetch result row ko? sinubukan ko e-wrap ng <div>, kanun parin po. Namasa pa yung <div> sa output. :)
 
Last edited by a moderator:
I think you are doing good, man.
ganyan ang mag-aral. Learn the hard way and knowledge will really stick.
tuloy tuloy lang ang paghahanap ng solution.
;)
 
Na-line break kona po. Pano ko po ma center at add ng styling yung echo sir?

Code:
<div class="com"><textarea style="height: 400px; width: 200px;">
<?php
include("conn.php");
$result = mysqli_query($conn, "SELECT * FROM `tbl2` WHERE `1a_id` = $1_id ORDER BY 2_id ASC");
while($row=mysqli_fetch_array($result)){
echo $row['name2'] . "\n";
echo $row['com_timestamp2'] . "\n";
echo $row['comments2'] . "\n";
}
mysqli_close($conn);
</textarea>
?>

Sinubukan ko po ang <div>, napunta sa loob ng textarea kasama ang echo value.

Code:
<?php
include("conn.php");
$result = mysqli_query($conn, "SELECT * FROM `tbl2` WHERE `1a_id` = $1_id ORDER BY 2_id ASC");
while($row=mysqli_fetch_array($result)){
?>

<div class="com"><textarea style="height: 400px; width: 200px;">

<div class=""comm>
echo $row['name2'] . "\n";
echo $row['com_timestamp2'] . "\n";
echo $row['comments2'] . "\n";
</div>

<?php
}
mysqli_close($conn);
?>
</div>
</textarea>

Ano po mali sa ginawa ko sir?
 
yung mga HTML codes pag nasa loop ng PHP ay lalagyan mo rin siya ng "echo"
Halimabawa
Code:
<?php
echo '<div class="com"><textarea style="height: 400px; width: 200px;">';
echo '<div class="comm">';

echo $row['name2'] . "\n";
echo $row['com_timestamp2'] . "\n";
echo $row['comments2'] . "\n";

echo '</div>';

or kung ayaw mo lagyan ng "echo" ang mga HTML codes... ilagay mo ang mga HTML codes OUTSIDE ng php code
ganito....
Code:
<div class="com"><textarea style="height: 400px; width: 200px;">
<div class="comm">

<?php
echo $row['name2'] . "\n";
echo $row['com_timestamp2'] . "\n";
echo $row['comments2'] . "\n";
?>

</div>
 
yung mga HTML codes pag nasa loop ng PHP ay lalagyan mo rin siya ng "echo"
Halimabawa
Code:
<?php
echo '<div class="com"><textarea style="height: 400px; width: 200px;">';
echo '<div class="comm">';

echo $row['name2'] . "\n";
echo $row['com_timestamp2'] . "\n";
echo $row['comments2'] . "\n";

echo '</div>';

or kung ayaw mo lagyan ng "echo" ang mga HTML codes... ilagay mo ang mga HTML codes OUTSIDE ng php code
ganito....
Code:
<div class="com"><textarea style="height: 400px; width: 200px;">
<div class="comm">

<?php
echo $row['name2'] . "\n";
echo $row['com_timestamp2'] . "\n";
echo $row['comments2'] . "\n";
?>

</div>

Hello Sir. Nasubukan ko po sir, ito po lumbas sa textarea sir:

Code:
<div class="comm">
DAREDAVIL
2018-09-12 14:50:46
test na!

</div>

Nasasama ang HTML sa display sir.
 
Pano ko po ma arrange vertically yung fetch result row ko? sinubukan ko e-wrap ng <div>, kanun parin po. Namasa pa yung <div> sa output. :)
dagdag ka <br>
PHP:
echo $row['name2']."<br>".;
echo $row['com_timestamp2']."<br>".;
echo $row['comments2'];
 
Last edited by a moderator:
Hello Sir JackFrost10 - okay napo ako sa line break sir, yung styling nalang po sa CSS. Pumapasok po si <div> sa textarea. :)
yes sir papasok talaga yan if sa loob ng textarea kasi ginagawa nyang character lahat ng nasa loob,
kilangan pa po ba ng formating sa loob ng textarea? kasi pag nag submit ka ng form pati formating masasama sa database.
 
Last edited by a moderator:
yes sir papasok talaga yan if sa loob ng textarea kasi ginagawa nyang character lahat ng nasa loob,
kilangan pa po ba ng formating sa loob ng textarea? kasi pag nag submit ka ng form pati formating masasama sa database.

wala napo sir, display lang po sa textarea sir, okay naman po yung huhuguting content sa DB. Yung echo content lang po kailangan ko ma styling. :)
 
Last edited by a moderator:
PHP:
echo '<div class="com" contenteditable="true" id="textarea">';
echo '<div class="comm">';

echo $row['name2'] . "\n";
echo $row['com_timestamp2'] . "\n";
echo $row['comments2'] . "\n";

echo '</div>';

yan po sir alisin mo nlg ung textarea then bind mo yung content through hidden input type

HTML:
<input type='hidden' id='textarea_content' name='textarea' />

then pass it to jquery

HTML:
$('#your_form').submit(function()
{
  $('#textarea_content').val($('#textarea').html());
});
 
PHP:
echo '<div class="com" contenteditable="true" id="textarea">';
echo '<div class="comm">';

echo $row['name2'] . "\n";
echo $row['com_timestamp2'] . "\n";
echo $row['comments2'] . "\n";

echo '</div>';

yan po sir alisin mo nlg ung textarea then bind mo yung content through hidden input type

HTML:
<input type='hidden' id='textarea_content' name='textarea' />

then pass it to jquery

HTML:
$('#your_form').submit(function()
{
  $('#textarea_content').val($('#textarea').html());
});

dun ko kasi palalabas yung mga comments sa textarea sir..:)
 
Last edited by a moderator:
Status
Not open for further replies.

Similar threads

Back
Top