Avatar billede BTEngineer Novice
17. april 2005 - 11:39 Der er 22 kommentarer og
1 løsning

indsend - indsend i ny tabel

Hej.

Jeg har prøvet at lave sådan at man kan indsende en artikel.
Jeg har fået lavet sådan man kan indsende, men så skal admin acceptere / afvise artiklen før den kan komme ud på siden.

acceptere virker ikke og det gør afvise heller ikke. Når man trykker afvis skal den slette den indsendte artikel, trykker man accepter skal den indsendte det hele i en ny tabel ved navn artikler_avis.

Mit script ser således ud:

<?
session_start();
if (session_is_registered("brugernavn") AND ("kodeord")) {
include("mysql/mysql.php");
$hent = mysql_query("SELECT * FROM community_avis WHERE brugernavn = '$_SESSION[brugernavn]'") or die(mysql_error());
$vis = mysql_fetch_array($hent);
?>

<html>

<head>

<title>Specks!!</title>

</head>

<body oncontextmenu="return false" ondragstart="return false" onselectstart="return false">

<?
$hent_artikel = mysql_query("SELECT * FROM indsend_artikel_avis WHERE id = '$_GET[id]'") or die(mysql_error());
$vis_artikel = mysql_fetch_array($hent_artikel);
?>
<b><? echo $vis_artikel[overskrift]; ?></b><br>
<hr>
<? echo $vis_artikel[artikel]; ?><br><br>
Indsendt af: <a href="seprofil.php?brugernavn=<? echo $vis_artikel[forfatter]; ?>"><b><? echo $vis_artikel[forfatter]; ?></b></a> - den <i><? echo $vis[dato]; ?></i>
<hr><br>
<a href="vis_artiklen.php?insert=yes">Accepter denne artikel</a> - <a href="vis_artiklen.php?insert=no">Afvis denne artikel</a>

<?
if($_GET[insert] == "yes") {

$hent_artikel = mysql_query("SELECT * FROM indsend_artikel_avis WHERE id = '$_GET[id]'") or die(mysql_error());
$vis_artikel_s = mysql_fetch_array($hent_artikel);

$overskrift = $vis_artikel_s[overskrift];
$image = $vis_artikel_s[image];
$forfatter = $vis_artikel_s[forfatter];
$dato = date('d/m/Y');
$artikel = $vis_artikel_s[artikel];
mysql_query("INSERT INTO artikler_avis SET (overskrift, image, forfatter, dato, artikel)");
mysql_close();
echo "<br>Artiklen er nu accepteret!";
}

if($_GET[insert] == "no") {

$mysql_query("DELETE * FROM indsend_artikler_avis WHERE id = '$id'") or die(mysql_error());
}
?>
</body>

</html>

<?
}else{
print "<link href='style.css' type='text/css' rel='stylesheet'><font color=red>Du er ikke logget ind!</font>";
}
?>

Håber nogen kan hjælpe mig!

Tak på forhånd.
Avatar billede Slettet bruger
17. april 2005 - 11:44 #1
Jeg tror det er fordi du ikke sender artikel-id'et med over.

Måske hvis du udskifter:
<a href="vis_artiklen.php?insert=yes">Accepter denne artikel</a> - <a href="vis_artiklen.php?insert=no">Afvis denne artikel</a>

.. med:

<a href="vis_artiklen.php?insert=yes&id=<?php echo $_GET['id']; ?>">Accepter denne artikel</a> - <a href="vis_artiklen.php?insert=no&<?php echo $_GET['id']; ?>">Afvis denne artikel</a>

--
pacroon
Avatar billede Slettet bruger
17. april 2005 - 11:45 #2
Eller nej, ikke get, men $vis_artikel[id]; - hvis du har sådan et felt.
Avatar billede BTEngineer Novice
17. april 2005 - 11:50 #3
Nej, det virker ikke :-/
Avatar billede BTEngineer Novice
17. april 2005 - 11:51 #4
har prøvet med

<a href="vis_artiklen.php?insert=yes&id=<? echo $vis_artikel['id']; ?>">Accepter denne artikel</a> -

<a href="vis_artiklen.php?insert=no&<? echo $vis_artikel['id']; ?>">Afvis denne artikel</a>
Avatar billede sungdk Nybegynder
17. april 2005 - 11:57 #5
mysql_query("INSERT INTO artikel_avis (felt, felt2) VALUES ('$vis_artikel_s[overskrift]', osv.)");

Ret den!

Og må jeg komme med et hint... Hvorfor laver du ik et db felt med fx. Status. Der i kan du skrive "Ny" og evt. "accepteret" når de er godkendt.
Avatar billede BTEngineer Novice
17. april 2005 - 12:05 #6
Har ændret det til:

$overskrift = $vis_artikel_s[overskrift];
$image = $vis_artikel_s[image];
$forfatter = $vis_artikel_s[forfatter];
$dato = date('d/m/Y');
$artikel = $vis_artikel_s[artikel];
mysql_query("INSERT INTO artikel_avis ($overskrift, $image, $forfatter, $dato, $artikel) VALUES ('$vis_artikel_s[overskrift]', '$vis_artikel[image]', '$vis_artikel[forfatter]', '$dato', '$vis_artikel[artikel]')");
mysql_close();
echo "<br>Artiklen er nu accepteret!";

Og det virker stadig ikke! :-/
Avatar billede BTEngineer Novice
17. april 2005 - 12:05 #7
min fejl..
Avatar billede BTEngineer Novice
17. april 2005 - 12:06 #8
Det virker stadig ikke :S
Avatar billede sungdk Nybegynder
17. april 2005 - 12:07 #9
Fandt du ud af det?

Eller skal jeg pensle det mere ud?
Avatar billede sungdk Nybegynder
17. april 2005 - 12:08 #10
mysql_query("INSERT INTO artikel_avis (overskrift, image, forfatter, dato, artikel) VALUES ('$vis_artikel_s[overskrift]', '$vis_artikel[image]', '$vis_artikel[forfatter]', '$dato', '$vis_artikel[artikel]')");

Du behøver ikke at have:

$overskrift = $vis_artikel_s[overskrift];
$image = $vis_artikel_s[image];
$forfatter = $vis_artikel_s[forfatter];
$dato = date('d/m/Y');
$artikel = $vis_artikel_s[artikel];
Avatar billede sungdk Nybegynder
17. april 2005 - 12:09 #11
sorry!

Du skal selvfølgelig lige have:

$dato = date('d/m/Y');
Avatar billede sungdk Nybegynder
17. april 2005 - 12:12 #12
Og din DELETE virker ikke pga:

$mysql_query("DELETE * FROM indsend_artikler_avis WHERE id = '$id'") or die(mysql_error());

Fjern $ forrest
Avatar billede BTEngineer Novice
17. april 2005 - 12:26 #13
det virker ikke :S
Avatar billede BTEngineer Novice
17. april 2005 - 12:30 #14
<?
if($_GET[insert] == "yes") {

$hent_artikel = mysql_query("SELECT * FROM indsend_artikel_avis WHERE id = '$_GET[id]'") or die(mysql_error());
$vis_artikel_s = mysql_fetch_array($hent_artikel);

$dato = date('d/m/Y');
mysql_query("INSERT INTO artikel_avis (overskrift, forfatter, dato, artikel) VALUES ('$vis_artikel_s[overskrift]', '$vis_artikel_s[forfatter]', '$dato', '$vis_artikel_s[artikel]')");mysql_close();
echo "<br>Artiklen er nu accepteret!";
}

if($_GET[insert] == "no") {

mysql_query("DELETE * FROM indsend_artikler_avis WHERE id = '$id'") or die(mysql_error());
}
?>

sådan ser det ud nu!
Avatar billede sungdk Nybegynder
17. april 2005 - 12:39 #15
I DELETE skal der ikke være *.

og i det ovenstående, kan jeg kun se én fejl. Mellemrum ved mysql_close... Sådan:

mysql_query("INSERT INTO artikel_avis (overskrift, forfatter, dato, artikel) VALUES ('$vis_artikel_s[overskrift]', '$vis_artikel_s[forfatter]', '$dato', '$vis_artikel_s[artikel]')");
mysql_close();

Ellers tror jeg du har lavet en fejl i din database, eller du definerer ikke $_GET[insert] ordenligt.
Avatar billede sungdk Nybegynder
17. april 2005 - 12:40 #16
Jeg regner med at du HAR oprettet forbindelsen til database. For ellers ville du selvfølgelig have skrevet hvad den sagde af fejl :)
Avatar billede BTEngineer Novice
17. april 2005 - 12:51 #17
Det virker simpelthen ikke :S
Avatar billede BTEngineer Novice
17. april 2005 - 12:51 #18
Ja selvfølgelig har jeg database forbindelse :)

Min kode ser sådan ud nu:

<?
session_start();
if (session_is_registered("brugernavn") AND ("kodeord")) {
include("mysql/mysql.php");
$hent = mysql_query("SELECT * FROM community_avis WHERE brugernavn = '$_SESSION[brugernavn]'") or die(mysql_error());
$vis = mysql_fetch_array($hent);
?>

<html>

<head>

<title>Specks!!</title>

</head>

<body oncontextmenu="return false" ondragstart="return false" onselectstart="return false">

<?
$hent_artikel = mysql_query("SELECT * FROM indsend_artikel_avis WHERE id = '$_GET[id]'") or die(mysql_error());
$vis_artikel = mysql_fetch_array($hent_artikel);
?>
<b><? echo $vis_artikel[overskrift]; ?></b><br>
<hr>
<? echo $vis_artikel[artikel]; ?><br><br>
Indsendt af: <a href="seprofil.php?brugernavn=<? echo $vis_artikel[forfatter]; ?>"><b><? echo $vis_artikel[forfatter]; ?></b></a> - den <i><? echo $vis[dato]; ?></i>
<hr><br>
<a href="vis_artiklen.php?insert=yes&id=<? echo $vis_artikel['id']; ?>">Accepter denne artikel</a> - <a href="vis_artiklen.php?insert=no&<? echo $vis_artikel['id']; ?>">Afvis denne artikel</a>
<?
if($_GET[insert] == "yes") {

$hent_artikel = mysql_query("SELECT * FROM indsend_artikel_avis WHERE id = '$_GET[id]'") or die(mysql_error());
$vis_artikel_s = mysql_fetch_array($hent_artikel);

$dato = date('d/m/Y');
mysql_query("INSERT INTO artikel_avis (overskrift, forfatter, dato, artikel) VALUES ('$vis_artikel_s[overskrift]', '$vis_artikel_s[forfatter]', '$dato', '$vis_artikel_s[artikel]')");
mysql_close();
echo "<br>Artiklen er nu accepteret!";
}

if($_GET[insert] == "no") {

mysql_query("DELETE FROM indsend_artikel_avis WHERE id = '$id'") or die(mysql_error());
}
?>
</body>

</html>

<?
}else{
print "<link href='style.css' type='text/css' rel='stylesheet'><font color=red>Du er ikke logget ind!</font>";
}
?>
Avatar billede sungdk Nybegynder
17. april 2005 - 13:49 #19
Siger den ikke noget? Og hvilken del virker ikke?

Bl.a har du ikke defineret hvor $id kommer fra ved DELETE...
Avatar billede BTEngineer Novice
17. april 2005 - 20:41 #20
den siger ingen ting :S
Avatar billede BTEngineer Novice
17. april 2005 - 20:41 #21
og den gider ikke indsætte til artikel_avis
Avatar billede sungdk Nybegynder
17. april 2005 - 22:14 #22
Tjek dine database felter...

Tror fejlen ligger der
Avatar billede BTEngineer Novice
19. april 2005 - 08:06 #23
virker ik :-/
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