Avatar billede darkstylerdk Nybegynder
31. december 2004 - 17:04 Der er 34 kommentarer og
1 løsning

Hente data fra én tabel og sende til en anden

Hej eksperter...

Jeg har en database der indeholder disse to tabeller:
"news" - Her er de færdige nyheder lagt ind
"conews" - Her er forslag til nyheder lagt ind


Nu skal jeg så fra site-admin kunne redigere og godkende en nyhed fra conews og sende den ind i news.


Her er filen jeg har tænkt det skal gøres med. Den kan sagtens hente fra conews, men jeg kan ikke få den til at skrive i news istedet for conews.


Her er min "conewstonews.php":

<?php
include_once('inc.limited_access.php');
include('../header.php');
?>
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../stylesheet.css">
</head>

<body>

<?php
include_once('../inc.config.php');
$query = mysql_query("SELECT * FROM conews WHERE id=".$_GET['id']."") or die(mysql_error());
$row = mysql_fetch_assoc($query);
?>

<h1>Administration : Rediger og godkend nyhedsforslag</h1>

<form method="post" action="coform.handle.php">
<input type="hidden" name="referer" value="edit_conews">
<input type="hidden" name="id" value="<?php echo $_GET['id']; ?>">
<input type="hidden" name="offset" value="<?php echo $_GET['offset']; ?>">

<div class="frmobj">Overskrift</div> <input type="text" name="title" value="<?php echo $row['title']; ?>" style="width: 300px"><br>
<div class="frmobj">Forfatter</div> <input type="text" name="author" value="<?php echo $row['author']; ?>" style="width: 300px"><br>
<div class="frmobj">Billede</div> <input type="text" name="image" value="<?php echo $row['image']; ?>" style="width: 300px"><br><br>

<div class="frmobj">Synopsis</div> <textarea name="synopsis" rows="5" cols="0" style="width: 300px"><?php echo $row['synopsis']; ?></textarea><br>
<div class="frmobj">Nyhed</div> <textarea name="text" rows="10" cols="0" style="width: 300px"><?php echo $row['text']; ?></textarea><br><br>

<div class="frmobj">&nbsp;</div> <input type="submit" value="Send">
</form>

<div class="hr"></div>
<a href="administration.php">Administration</a> | <a href="index.php?f=loggedout">Log ud</a>
<?php
include('../footer.php');
?>



Det skal siges at "news" allerede indeholder en del nyheder. Derfor skal den godkendte nyhed som før lå i "conews" have en anden id i "news"
Jeg tænker at "news.add.php" er nyttig til at se hvordan dette er sket ved oprettelse af nyhed inden mit co-system:


<?php
include_once('inc.limited_access.php');
include('../header.php');
?>
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../stylesheet.css">
</head>

<body>

<h1>Administration : Opret nyhed</h1>

<form action="form.handle.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="referer" value="post_news">

<div class="frmobj">Overskrift</div> <input type="text" name="title" style="width: 300px"><br>
<div class="frmobj">Forfatter</div> <input type="text" name="author" style="width: 300px"><br>
<div class="frmobj">Billede</div> <input type="file" name="image" style="width: 305px"><br>
<div class="frmobj">Andet billede</div> <input type="text" name="standard" style="width: 300px"><br>
<div class="frmtext"><a href="files.list.php" target="_blank">Se uploadede filer</a><br>
Indtast filnavnet på billedet du vil bruge</div><br>

<div class="frmobj">Synopsis</div> <textarea name="synopsis" rows="5" cols="0" style="width: 300px"></textarea><br>
<div class="frmobj">Nyhed</div> <textarea name="text" rows="10" cols="0" style="width: 300px"></textarea><br><br>

<div class="frmobj">&nbsp;</div> <input type="submit" value="Send">
</form>

<div class="hr"></div>
<a href="administration.php">Administration</a> | <a href="index.php?f=loggedout">Log ud</a>
<?php
include('../footer.php');
?>




Altså: Jeg skal have conewstonews.php til at hente en nyhed fra "conews" og gemme den i "news" som en ny nyhed. Hvis det kan lade sig gøre vil jeg gerne have det lavet således at den 'gamle' nyhed i "conews" automatisk slettes når den er lagt i "news".
Avatar billede erikjacobsen Ekspert
31. december 2004 - 17:13 #1
Ikke at drille, men jeg ville nok bare have en tabel, news, med et ekstra felt: godkendt.

De nyheder der sættes ind får godkendt='nej', du kan så rette den til 'ja', og kun
dem med 'ja' vises.

Det er simplere, efter min mening.
Avatar billede baitianlong Nybegynder
31. december 2004 - 17:13 #2
mysql_query("INSERT INTO news(SELECT blah,blah,blah (ikke id) FROM conews WHERE id='$_GET['id']')");
mysql_query("DELETE FROM conews WHERE id='$_GET['id']'");

...noget i den stil :)
Avatar billede darkstylerdk Nybegynder
31. december 2004 - 17:15 #3
er også en ok idé, men med min opbyggelse af flere brugersystemer osv. vil jeg gerne have det som jeg har forklaret.
Avatar billede darkstylerdk Nybegynder
31. december 2004 - 17:16 #4
legende.dk:

Kan du ikke komme med et færdigt eksempel?
200 på højkant ;-)
Avatar billede darkstylerdk Nybegynder
31. december 2004 - 17:17 #5
erikjacobsen:
Det er også fordi der skal være flere brugere til systemet og de skal kunne ændre i deres nyhedsforslag uden at ændre i de godkendte
Avatar billede baitianlong Nybegynder
31. december 2004 - 17:24 #6
Det er da et fint eksempel, Jeg ved dog ikke om de indre paranteser skal med i sql sætningen. Men den henter alle poster, undtaget id og putter den i de samme felter i den anden tabel, hvor de så med auto_increment (som du vel har på) får et nyt unikt id. Bagefter slettes den fra conews :)
Avatar billede darkstylerdk Nybegynder
31. december 2004 - 17:27 #7
Ok jeg er ikke ret php-haj. Selve scriptet er ikke et jeg har lavet, men det er ændret ret så voldsomt.
Jeg mente hvordan vil den konkrete kode se ud (uden blah osv) og hvor skulle den være?
Avatar billede baitianlong Nybegynder
31. december 2004 - 17:34 #8
mysql_query("INSERT INTO news SELECT title,author,image,synopsis,text FROM conews WHERE id='$_GET['id']'");

Sådan der, vil jeg mene :) Du kan putte den på den side for sig og linkt til den:

<input type="button" value="klik her for at overføre artiklen" onClick="window.location.href='flyt.php?id=<?= $_GET['id'] ?>">

Og så siden flyt.php:

<?php
include_once('../inc.config.php');
mysql_query("INSERT INTO news SELECT title,author,image,synopsis,text FROM conews WHERE id='$_GET['id']'");
mysql_query("DELETE FROM conews WHERE id='$_GET['id']'");

header("Location: conewstonews.php");
?>
Avatar billede darkstylerdk Nybegynder
31. december 2004 - 17:36 #9
prøver lige...
Avatar billede darkstylerdk Nybegynder
31. december 2004 - 17:46 #10
Det funger ikke. Den opdaterer ikke engang siden når jeg trykker
Avatar billede darkstylerdk Nybegynder
31. december 2004 - 17:51 #11
min conewstonews.php:


<?php
include_once('inc.limited_access.php');
include('../header.php');
?>
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../stylesheet.css">
</head>

<body>

<?php
include_once('../inc.config.php');
$query = mysql_query("SELECT * FROM conews WHERE id=".$_GET['id']."") or die(mysql_error());
$row = mysql_fetch_assoc($query);
?>

<h1>Administration : Rediger og godkend nyhedsforslag</h1>

<form method="post" action="coform.handle.php">
<input type="hidden" name="referer" value="edit_conews">
<input type="hidden" name="id" value="<?php echo $_GET['id']; ?>">
<input type="hidden" name="offset" value="<?php echo $_GET['offset']; ?>">

<div class="frmobj">Overskrift</div> <input type="text" name="title" value="<?php echo $row['title']; ?>" style="width: 300px"><br>
<div class="frmobj">Forfatter</div> <input type="text" name="author" value="<?php echo $row['author']; ?>" style="width: 300px"><br>
<div class="frmobj">Billede</div> <input type="text" name="image" value="<?php echo $row['image']; ?>" style="width: 300px"><br><br>

<div class="frmobj">Synopsis</div> <textarea name="synopsis" rows="5" cols="0" style="width: 300px"><?php echo $row['synopsis']; ?></textarea><br>
<div class="frmobj">Nyhed</div> <textarea name="text" rows="10" cols="0" style="width: 300px"><?php echo $row['text']; ?></textarea><br><br>

<div class="frmobj">&nbsp;</div> <input type="submit" value="Send">
<input type="button" value="klik her for at overføre artiklen" onClick="window.location.href='flyt.php?id=<?= $_GET['id'] ?>"></form>

<div class="hr"></div>
<a href="administration.php">Administration</a> | <a href="index.php?f=loggedout">Log ud</a>
<?php
include('../footer.php');
?>




min flyt.php:
<?php
include_once('../inc.config.php');
mysql_query("INSERT INTO news SELECT title,author,image,synopsis,text FROM conews WHERE id='$_GET['id']'");
mysql_query("DELETE FROM conews WHERE id='$_GET['id']'");

header("Location: conewstonews.php");
?>
Avatar billede baitianlong Nybegynder
31. december 2004 - 17:53 #12
Put knappen <input...> ned i den her:

<div class="hr"><input type.....></div>

og put denne side i samme mappe med navnet flyt.php

<?php
include_once('../inc.config.php'); //Jeg regner med det er din databaseconn
mysql_query("INSERT INTO news SELECT title,author,image,synopsis,text FROM conews WHERE id='".$_GET['id']."'") or die(,ysql_error());
mysql_query("DELETE FROM conews WHERE id='".$_GET['id']."'") or die(mysql_error());

header("Location: conewstonews.php");
?>

Så kan du se om der kommer fejl. Det burde virke fint nok
Avatar billede darkstylerdk Nybegynder
31. december 2004 - 18:09 #13
men der sker ikke det fjerneste...
Hvad er der galt når den slet ikke hopper fra siden?
Avatar billede darkstylerdk Nybegynder
31. december 2004 - 18:12 #14
header("Location: conewstonews.php"); har jeg prøvet at ændre til en anden side, men der sker stadig ikke en brik
Avatar billede darkstylerdk Nybegynder
31. december 2004 - 18:14 #15
or die(,ysql_error())  har jeg prøvet at ændre til or die(,mysql_error())
heller ikke nogen forskel
har sat tilbage til or die(,ysql_error())
Avatar billede darkstylerdk Nybegynder
31. december 2004 - 18:15 #16
hvad nu?
Avatar billede knudx Nybegynder
01. januar 2005 - 16:29 #17
Hvis det her link ikke virker sker der ingenting:

<input type="button" value="klik her for at overføre artiklen" onClick="window.location.href='flyt.php?id=<?= $_GET['id'] ?>">

prøv at ændre til

<input type="button" value="klik her for at overføre artiklen" onClick="window.location.href='flyt.php?id=<?php echo $_GET['id'] ?>">

eller, (k.i.s.s.)

<a href="flyt.php?id=<?php echo $_GET['id'] ?>">klik her for at overføre artiklen</a>
Avatar billede darkstylerdk Nybegynder
02. januar 2005 - 16:14 #18
Parse error: parse error, unexpected ',' in /usr/home/web/web30742/rs/news-admin/flyt.php on line 3
Avatar billede baitianlong Nybegynder
02. januar 2005 - 16:18 #19
ja ja. Der skal stå mysql_error() i parantesen :)
Avatar billede darkstylerdk Nybegynder
02. januar 2005 - 16:19 #20
hvad nu?
Avatar billede darkstylerdk Nybegynder
02. januar 2005 - 16:21 #21
har jeg ændret, men hvad nu???'''flyt.php ser således ud (og det er <helt sikkert den der er på serveren):
<?php
include_once('../inc.config.php'); //Jeg regner med det er din databaseconn
mysql_query("INSERT INTO news SELECT title,author,image,synopsis,text FROM conews WHERE id='".$_GET['id']."'") or die(,mysql_error());
mysql_query("DELETE FROM conews WHERE id='".$_GET['id']."'") or die(mysql_error());

header("Location: conewstonews.php");
?>
Avatar billede baitianlong Nybegynder
02. januar 2005 - 16:27 #22
det komma skal væk fra mysql_error() , det var mig, der ramte forkert, da jeg skrev.
Avatar billede darkstylerdk Nybegynder
02. januar 2005 - 16:32 #23
det er fjernet... Nu:
Column count doesn't match value count at row 1
Avatar billede baitianlong Nybegynder
02. januar 2005 - 16:36 #24
Så har de to tabeller ikke den samme struktur.
Avatar billede darkstylerdk Nybegynder
02. januar 2005 - 16:39 #25
# Struktur dump for tabellen `conews`
#

CREATE TABLE `conews` (
  `id` int(11) NOT NULL auto_increment,
  `title` varchar(100) NOT NULL default '',
  `author` varchar(60) NOT NULL default '',
  `date` datetime NOT NULL default '0000-00-00 00:00:00',
  `synopsis` text NOT NULL,
  `text` text NOT NULL,
  `image` varchar(100) NOT NULL default '',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=8 ;




# Struktur dump for tabellen `news`
#

CREATE TABLE `news` (
  `id` int(11) NOT NULL auto_increment,
  `title` varchar(100) NOT NULL default '',
  `author` varchar(60) NOT NULL default '',
  `date` datetime NOT NULL default '0000-00-00 00:00:00',
  `synopsis` text NOT NULL,
  `text` text NOT NULL,
  `image` varchar(100) NOT NULL default '',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=26 ;
Avatar billede darkstylerdk Nybegynder
02. januar 2005 - 16:40 #26
hvad er der så galt her?
Avatar billede baitianlong Nybegynder
02. januar 2005 - 16:49 #27
Så kan jeg lige nu ikke foreslå andet end at prøve med parantesen fra tidligere:

mysql_query("INSERT INTO news (SELECT title,author,image,synopsis,text FROM conews WHERE id='".$_GET['id']."')") or die(mysql_error());

...ellers ved jeg ikke hvad der er galt!
Avatar billede darkstylerdk Nybegynder
02. januar 2005 - 16:55 #28
jeg prøvede denne:
<?php
include_once('../inc.config.php');
mysql_query("INSERT INTO news SELECT title,author,image,synopsis,text FROM conews WHERE id='$_GET['id']'");
mysql_query("DELETE FROM conews WHERE id='$_GET['id']'");

header("Location: conewstonews.php");
?>


men den gir

Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /usr/home/web/web30742/rs/news-admin/flyt.php on line 3
Avatar billede baitianlong Nybegynder
02. januar 2005 - 17:07 #29
Well, så lad os droppe den fance SQL sætning og skrive:

<?php
include_once('../config.php');
$result = mysql_query("SELECT title,author,date,synopsis,text,image FROM conews WHERE id='".$_GET['id']."'");
if($row = mysql_fetch_assoc($result)) {
  mysql_query("INSERT INTO news(title,author,date,synopsis,text,image) VALUES('".$row['title']."','".$row['author']."','".$row['date']."','".$row['synopsis']."','".$row['text']."','".$row['image']."')") or die(mysql_error());
  mysql_query("DELETE FROM conews WHERE id='".$_GET['id']."'") or die(mysql_error());
}
header("Location: conewstonews.php");
?>

...den skulle gerne virke !
Avatar billede darkstylerdk Nybegynder
02. januar 2005 - 17:09 #30
nej:

Warning: main(): Unable to access ../config.php in /usr/home/web/web30742/rs/news-admin/flyt.php on line 2

Warning: main(../config.php): failed to open stream: No such file or directory in /usr/home/web/web30742/rs/news-admin/flyt.php on line 2

Warning: main(): Failed opening '../config.php' for inclusion (include_path='.:') in /usr/home/web/web30742/rs/news-admin/flyt.php on line 2

Warning: mysql_query(): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /usr/home/web/web30742/rs/news-admin/flyt.php on line 3

Warning: mysql_query(): A link to the server could not be established in /usr/home/web/web30742/rs/news-admin/flyt.php on line 3

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /usr/home/web/web30742/rs/news-admin/flyt.php on line 4

Warning: Cannot modify header information - headers already sent by (output started at /usr/home/web/web30742/rs/news-admin/flyt.php:2) in /usr/home/web/web30742/rs/news-admin/flyt.php on line 8
Avatar billede darkstylerdk Nybegynder
02. januar 2005 - 17:27 #31
den går da fuldstændig amok
Avatar billede baitianlong Nybegynder
02. januar 2005 - 17:29 #32
Den kan ikke finde config.php, det er fejlen. Check lige stien
Avatar billede darkstylerdk Nybegynder
02. januar 2005 - 17:37 #33
SÅ virker det

læg venligst svar... der HAR fortjent 200 point
Avatar billede darkstylerdk Nybegynder
02. januar 2005 - 17:46 #34
ey hvorfor må man ikke skrive 'etellerandet' i nyhederne. Og hvordan ændres det?
Avatar billede baitianlong Nybegynder
02. januar 2005 - 17:47 #35
Ok, det var noget bøvlet noget. Man burde kunne gøre det med een sql sætning, men hva' :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester