bagmaendene Posted February 19, 2013 Share Posted February 19, 2013 Hello all, I have a little problem updating my sql. This is my page: <?php session_start(); include_once('../includes/connection.php'); include_once('../includes/article.php'); $article = new Article; if (isset($_SESSION['logged_in'])) { if (isset($_GET['id'])) { $id = $_GET['id']; $query = $pdo->prepare('SELECT FROM articles WHERE article_id =?'); $query->bindValue(1, $id); $query->execute(); header('Location: edit.php'); } $articles = $article->fetch_all(); ?> <html> <head> </head> <body> <h4>Edit Article</h4> <?php if (isset($error)) { ?> <small style="color:#aa0000"><?php echo $error; ?> <?php } ?> <form action="edit.php" method="post"> <?php foreach ($articles as $article) { ?> ID: <input type="text" name="id" value="<?php echo $article['article_id']; ?>"><br /><br /> Article Title: <b><?php echo $article['article_title']; ?></b> <br /><br /> Text: <br/> <textarea rows="15" name="article_content" cols="50"><?php echo $article['article_content']; ?></textarea><br /><br /> <input type="submit" value="Edit Article"> <br/ > <?php } if( isset($_POST['article_content'])) { $newcontent = $_POST['article_content']; $id = $_POST['id']; $query = $pdo->query("UPDATE article_content SET article_content='$newcontent' WHERE id='$id'"); } ?> </form> <a href="index.php">← Back</a> </body> </html> <?php } else { header('Location: index.php'); } ?> Here is a screen of my database: http://imageshack.us...ing2013021.png/ Could somebody please help me? -edit- Its about the article_content row. That has to be updated. Thnx Link to comment https://forums.phpfreaks.com/topic/274699-problem-updating-mysql/ Share on other sites More sharing options...
requinix Posted February 19, 2013 Share Posted February 19, 2013 Your form contains many textboxes and textareas, all named "id" and "article_content". They will all overwrite each other and you'll only get the value from the last one in the form. You can a] Write a form for every article (move the inside the loop) which only lets you update one article at a time, orb] Make a smarter, more complicated form that lets you update more than one at a time. Link to comment https://forums.phpfreaks.com/topic/274699-problem-updating-mysql/#findComment-1413519 Share on other sites More sharing options...
bagmaendene Posted February 20, 2013 Author Share Posted February 20, 2013 Could you help me to fix it, i have been trying to fix this the whole day. Would be really great, Thnx in advance Link to comment https://forums.phpfreaks.com/topic/274699-problem-updating-mysql/#findComment-1413531 Share on other sites More sharing options...
requinix Posted February 20, 2013 Share Posted February 20, 2013 Fix it which way? Link to comment https://forums.phpfreaks.com/topic/274699-problem-updating-mysql/#findComment-1413537 Share on other sites More sharing options...
Mikey Posted February 20, 2013 Share Posted February 20, 2013 As has been said, move <form> inside your loop, that will create a new form per-article. Link to comment https://forums.phpfreaks.com/topic/274699-problem-updating-mysql/#findComment-1413548 Share on other sites More sharing options...
bagmaendene Posted February 20, 2013 Author Share Posted February 20, 2013 As has been said, move <form> inside your loop, that will create a new form per-article. could you be a bit more specific? Link to comment https://forums.phpfreaks.com/topic/274699-problem-updating-mysql/#findComment-1413607 Share on other sites More sharing options...
requinix Posted February 20, 2013 Share Posted February 20, 2013 could you be a bit more specific? Not a whole lot. The and are outside the loop. Put them inside the loop. Link to comment https://forums.phpfreaks.com/topic/274699-problem-updating-mysql/#findComment-1413687 Share on other sites More sharing options...
fenway Posted February 21, 2013 Share Posted February 21, 2013 Writing out N forms isn't great either -- what if they want to make multiple changes? Usually, you just need another field with the ID, and then append this ID to each field name. Link to comment https://forums.phpfreaks.com/topic/274699-problem-updating-mysql/#findComment-1413762 Share on other sites More sharing options...
Barand Posted February 22, 2013 Share Posted February 22, 2013 Usually, you just need another field with the ID, and then append this ID to each field name. You do mean as an array index (eg name="email[$id]" ) don't you? Link to comment https://forums.phpfreaks.com/topic/274699-problem-updating-mysql/#findComment-1414148 Share on other sites More sharing options...
fenway Posted February 23, 2013 Share Posted February 23, 2013 I suppose you can do it that way, though I never have -- what happens in PHP if the $id's aren't contigious? Will you get a sparsely populated array? Link to comment https://forums.phpfreaks.com/topic/274699-problem-updating-mysql/#findComment-1414326 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.