Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 4327316
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 21, 20262026-05-21T09:31:15+00:00 2026-05-21T09:31:15+00:00

If anyone with patience can read this and help me, I would be overly

  • 0

If anyone with patience can read this and help me, I would be overly grateful. I am having difficulty updating one mysql table. I have a table that stores dj’s comments and feedback on record albums,and I have a second table that store the general info about the album. My problem is looping through each feedback row to UPDATE my table. I’m just going to post all of my code and perhaps it will be clearer (sorry for a lengthy post).

<?php

$done = false;
$problem = false;

$expected = array('album_id', 'dj','affilliations','rating','comments'
                  , 'content_id','title','ep','date','genre');

$conn = dbConnect('admin');

if ($_GET && !$_POST) {
  if (isset($_GET['album_id']) && is_numeric($_GET['album_id'])) {
    $album_id = $_GET['album_id'];
  }
  else {
    $album_id = NULL;
  }
  if ($album_id) {
    //this statement updates album_info correctly, but not album_comments
      $sql = "SELECT album_info.album_id, album_info.title, album_info.ep
               , album_info.genre, album_info.date, album_comments.content_id
               , album_comments.album_id, album_comments.dj
               , album_comments.affilliations, album_comments.rating
               , album_comments.comments 
             FROM album_info, album_comments 
             WHERE album_info.album_id = $album_id 
               AND album_comments.album_id = $album_id";

    $result = mysql_query($sql) or die (mysql_error());
    $row = mysql_fetch_assoc($result);
  }
}

// if form has been submitted, update record
if (array_key_exists('update', $_POST)) {
  // prepare expected items for insertion in to database
  foreach ($_POST as $key => $value) {
    if (in_array($key, $expected)) {
      ${$key} = mysql_real_escape_string($value);
    }
  }
  // abandon the process if primary key invalid
  if (!is_numeric($album_id)) {
    die('Invalid request');
  }
  if(!empty($_POST['dj']) && !empty($_POST['title'])) {
    $album_id = mysql_real_escape_string(trim($album_id));
    $dj = mysql_real_escape_string(trim($_POST['dj']));
    $affilliations = mysql_real_escape_string(trim($_POST['affilliations']));
    $rating = mysql_real_escape_string(trim($_POST['rating']));
    $comments = mysql_real_escape_string(trim($_POST['comments']));
    $title = mysql_real_escape_string(trim($_POST['title']));
    $ep = mysql_real_escape_string(trim($_POST['ep']));
    $genre = mysql_real_escape_string(trim($_POST['genre']));
    $date = mysql_real_escape_string(trim($_POST['date']));

  }

  $sql="UPDATE album_info, album_comments 
       ON album_info.album_id = album_comments.album_id 
       SET album_info.title = '$title', album_info.ep = '$ep'
         , album_info.date = '$date', album_info.genre = '$genre'
         , album_comments.dj = '$dj'
         , album_comments.affilliations = '$affilliations'
         , album_comments.rating = '$rating'
         , album_comments.comments = '$comments' 
           album_comments.album_id = '$album_id' 
       AND album_info.album_id = '$album_id'";
    // submit the query and redirect if successful
  $done = mysql_query($sql) or die(mysql_error());
  if($done) {
    printf("<script>location.href='?page=albums'</script>");
  }
}
?>

This is correctly updating album_info, but album_comments needs to be looped through, as seen below:

<form id="album_form" name="album_form" method="post" action="">
  <fieldset>
    <legend>Album Info</legend>
    <p>
      <label for="title">Title</label>
      <input type="text" name="title" id="title" 
        value="<?php echo htmlentities($row['title']); ?>" />
    </p>
    <p>
      <label for="ep">EP</label>
      <input type="text" name="ep" id="ep" 
        value="<?php echo htmlentities($row['ep']); ?>" />
    </p>
    <p>
     <label for="day">Date:</label>
      <input name="day" type="text id="day: size="2" maxlength="2" 
        value="<?php echo htmlentities($row['date']); ?>"/>
    </p>
    <p>
      <label for="genre">Genre</label>
      <input type="text" name="genre" id="genre" 
        value="<?php echo htmlentities($row['genre']); ?>"/>
  </fieldset>
  </p>
  <fieldset>
    <legend>Comments</legend>
    <!--data below is from table album_comments -->
<table id="tblInsertRowPHP" class="tableResults" cellpadding="0" 
  cellspacing="0">
      <tbody>
      <?php
      //this spits out all the feedback for the particular album; 
      //this is the part I need help with
      while ($row = mysql_fetch_assoc($result)) { 
      ?>
      <tr>
          <td>
          <?php

        echo '<input type="text" name="dj" size="15" value="'.$row['dj'].'" />';
        echo '<input type="text" name="affilliations" size="30"
              value="'.$row['affilliations'].'" />';
        echo '<input type="text" name="rating" size="8" 
              value="'.$row['rating'].'" />';
        echo '<input type="text" name="comments" size="68"
              value="'.$row['comments'].'" />';
          ?>
          </td>
        </tr>
        <?php } 
        $sql = "SELECT album_id FROM album_info";
        $result = mysql_query($sql) or die (mysql_error());
        $row = mysql_fetch_assoc($result);?>
      </tbody>
    </table>
  </fieldset>
    <input type="submit" name="update" 
     value="Update entry" id="submit" />
  <input name="album_id" type="hidden" 
     value="<?php echo $row['album_id']; ?>" />
</form>
<?php } ?>

How do amend the MYSQL statement to go through each row in album_comments and update them? Do I need a prepared statement, or can I change the PHP sql statement?? Thanks again for any help—I am somewhat new at this.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-21T09:31:15+00:00Added an answer on May 21, 2026 at 9:31 am

    Supposing that your album_comment table has a comment_id primary key (integer, auto increment, like album_info.album_id I guess), you could try the following:

    <?php
    
    $done = false;
    $problem = false;
    
    $expected = array('album_id', 'dj','affilliations','rating','comments', 'content_id','title','ep','date','genre');
    
    $conn = dbConnect('admin');
    
    if ($_GET && !$_POST) {
        if (isset($_GET['album_id']) && is_numeric($_GET['album_id'])) {
            $album_id = $_GET['album_id'];
        }
        else {
            $album_id = NULL;
        }
        if ($album_id) {
        //this statement updates album_info correctly, but not album_comments
            $sql = "SELECT album_info.album_id, album_info.title, album_info.ep, album_info.genre, album_info.date, album_comments.content_id, album_comments.album_id, album_comments.dj, album_comments.affilliations, album_comments.rating, album_comments.comments FROM album_info, album_comments WHERE album_info.album_id = $album_id AND album_comments.album_id = $album_id";
    
            $result = mysql_query($sql) or die (mysql_error());
            $row = mysql_fetch_assoc($result);
        }
    }
    
    // if form has been submitted, update record
    if (array_key_exists('update', $_POST)) {
        // prepare expected items for insertion in to database
        foreach ($_POST as $key => $value) {
            if (in_array($key, $expected)) {
                ${$key} = mysql_real_escape_string($value);
            }
        }
        // abandon the process if primary key invalid
        if (!is_numeric($album_id)) {
            die('Invalid request');
        }
        if(!empty($_POST['dj']) && !empty($_POST['title'])) {
            $album_id = mysql_real_escape_string(trim($album_id));
            $title = mysql_real_escape_string(trim($_POST['title']));
            $ep = mysql_real_escape_string(trim($_POST['ep']));
            $genre = mysql_real_escape_string(trim($_POST['genre']));
            $date = mysql_real_escape_string(trim($_POST['date']));
    
        }
    
        $sql="UPDATE album_info SET title = '$title', ep = '$ep', date = '$date', genre = '$genre' WHERE album_id = '$album_id'";
    
        $done = mysql_query($sql) or die(mysql_error());
    
        foreach($_POST['comment_id'] as $index => $comment_id)
        {
            $comment_id = intval($comment_id);
            $dj = mysql_real_escape_string(trim($_POST['dj'][$index]));
            $affilliations = mysql_real_escape_string(trim($_POST['affilliations'][$index]));
            $rating = mysql_real_escape_string(trim($_POST['rating'][$index]));
            $comments = mysql_real_escape_string(trim($_POST['comments'][$index]));
    
            $sql="UPDATE album_comments SET dj = '$dj', affilliations = '$affilliations', rating = '$rating', comments = '$comments' WHERE comment_id = '$comment_id'";
    
            $done = $done && mysql_query($sql) or die(mysql_error());
        }
    
        // submit the query and redirect if successful
        if($done) {
            printf("<script>location.href='?page=albums'</script>");
        }
    }
    ?>
    

    Second part:

        <form id="album_form" name="album_form" method="post" action="">
      <fieldset>
        <legend>Album Info</legend>
        <p>
          <label for="title">Title</label>
          <input type="text" name="title" id="title" value="<?php echo htmlentities($row['title']); ?>" />
        </p>
        <p>
          <label for="ep">EP</label>
          <input type="text" name="ep" id="ep" value="<?php echo htmlentities($row['ep']); ?>" />
        </p>
        <p>
         <label for="day">Date:</label>
          <input name="day" type="text id="day: size="2" maxlength="2" value="<?php echo htmlentities($row['date']); ?>"/>
        </p>
        <p>
          <label for="genre">Genre</label>
          <input type="text" name="genre" id="genre" value="<?php echo htmlentities($row['genre']); ?>"/>
      </fieldset>
      </p>
      <fieldset>
        <legend>Comments</legend>
        <!--data below is from table album_comments -->
    <table id="tblInsertRowPHP" class="tableResults" cellpadding="0" cellspacing="0">
          <tbody>
          <?php
          //this spits out all the feedback for the particular album; this is the part I need help with
            while ($row = mysql_fetch_assoc($result)) { 
          ?>
          <tr>
              <td>
              <?php
            echo '<input type="hidden" name="comment_id[]" value="'.$row['comment_id'].'" />';
            echo '<input type="text" name="dj[]" size="15" value="'.$row['dj'].'" />';
            echo '<input type="text" name="affilliations[]" size="30" value="'.$row['affilliations'].'" />';
            echo '<input type="text" name="rating[]" size="8" value="'.$row['rating'].'" />';
            echo '<input type="text" name="comments[]" size="68" value="'.$row['comments'].'" />';
              ?>
              </td>
            </tr>
            <?php } 
            $sql = "SELECT album_id FROM album_info";
            $result = mysql_query($sql) or die (mysql_error());
            $row = mysql_fetch_assoc($result);?>
          </tbody>
        </table>
      </fieldset>
        <input type="submit" name="update" value="Update entry" id="submit" />
      <input name="album_id" type="hidden" value="<?php echo $row['album_id']; ?>" />
    </form>
    <?php } ?>
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Anyone can help ? I am having trouble, already unzipped the file I downloaded
Anyone knows how can I create a connection without help of IP? Something like
Anyone can read the GoF book to learn what design patterns are and how
Anyone know of a way to shorten this to one line? (RSpec 2) location
Anyone know how I can write the following as one line? email = params[:user][:email]
I've read every question and answer on this topic I can find on this
Anyone have any ideas what I can do? Please reserve commenting about using 1.1
Anyone know how to read Outlook nickname list file (.NK2)? Any document on how
Anyone know of any graphical breadcrumbs for Emacs? I would like to have the
Anyone see anything wrong with this, it is not working and its returning null.

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.