Avatar billede Slettet bruger
28. juni 2005 - 14:16 Der er 11 kommentarer og
1 løsning

Nyheds kommentering

Jeg har lavet et nyhedssystem der består af:
1 tabel med 5 celler
- id
- overskrift
- synopsis
- tekst
- forfatter

Jeg vil gerne have et kommenterings system, en af mine venner har foreslået at den skal oprette en helt ny tabel med tabel-navnet som overskriften til nyheden... og så oprette kommentarerne derinde. Men er der ikke en måde så jeg kan have alle cellerne (både til nyheden og kommentarerne) i en tabel?

På forhånd tak og med venlig hilsen - caspar
Avatar billede hmortensen Nybegynder
28. juni 2005 - 14:20 #1
Jeg ville lave 2 tabeller:
nyheder og kommentar

I kommentar tabbelen laver du et felt der refferer til id i nyheds tabellen.

Fx.
id
tekst
navn
nyhed_id
Avatar billede Slettet bruger
28. juni 2005 - 14:23 #2
skal id så være INT og nyhed_id BIGINT ?
Avatar billede hmortensen Nybegynder
28. juni 2005 - 14:24 #3
Int skulle være alt rigeligt
Avatar billede Slettet bruger
28. juni 2005 - 14:27 #4
ok, så sådan her:?

CREATE TABLE `kommentar` (
`id` INT( 10 ) NOT NULL AUTO_INCREMENT ,
`navn` VARCHAR( 255 ) NOT NULL ,
`tekst` TEXT NOT NULL ,
`nyhed_id` INT( 10 ) NOT NULL ,
PRIMARY KEY ( `id` , `nyhed_id` )
);

?
Avatar billede hmortensen Nybegynder
28. juni 2005 - 14:51 #5
Du behøver ikke lave en delt primær nøgle
Avatar billede barklund Nybegynder
28. juni 2005 - 14:52 #6
id alener er vist primary key - men det skader bestemt ikke at sætte et almindeligt index på nyhed_id
Avatar billede Slettet bruger
28. juni 2005 - 14:59 #7
har fået det til at virke med den jeg skrev, tak for hjælpen...
Hvad skulle jeg gøre uden exp.dk ? ;-)
hmortensen kommer du med et svar ?
Avatar billede hmortensen Nybegynder
28. juni 2005 - 15:03 #8
Har du styr på hvordan du skal trække dem ud så ?
Avatar billede Slettet bruger
28. juni 2005 - 15:23 #9
Ja det har jeg, men nu har jeg et problem:

tilfoej_nyhed.php:
-----------------
<?php require_once('../Connections/xtremegamers.php'); ?><?php
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
  $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;   
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
  $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  $insertSQL = sprintf("INSERT INTO nyhed (overskrift, synopsis, tekst, forfatter) VALUES (%s, %s, %s, %s)",
                      GetSQLValueString($_POST['overskrift'], "text"),
                      GetSQLValueString($_POST['synopsis'], "text"),
                      GetSQLValueString($_POST['tekst'], "text"),
                      GetSQLValueString($_POST['forfatter'], "text"));

  mysql_select_db($database_xtremegamers, $xtremegamers);
  $Result1 = mysql_query($insertSQL, $xtremegamers) or die(mysql_error());

  $insertGoTo = "ok.php";
  if (isset($_SERVER['QUERY_STRING'])) {
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
    $insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $insertGoTo));
}

mysql_select_db($database_xtremegamers, $xtremegamers);
$query_add_Nyhed = "SELECT * FROM nyhed";
$add_Nyhed = mysql_query($query_add_Nyhed, $xtremegamers) or die(mysql_error());
$row_add_Nyhed = mysql_fetch_assoc($add_Nyhed);
$totalRows_add_Nyhed = mysql_num_rows($add_Nyhed);
?>
<!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">
<title>[Xtreme Gamers] Dansk Battlefield 2 klan</title>
<style type="text/css">
<!--
body,td,th {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 11px;
    color: #000000;
}
body {
    background-color: #FFFFFF;
}
a {
    font-size: 11px;
    color: #000000;
}
a:link {
    text-decoration: none;
}
a:visited {
    text-decoration: none;
    color: #000000;
}
a:hover {
    text-decoration: none;
    color: #ACA743;
}
a:active {
    text-decoration: none;
    color: #000000;
}
-->
</style></head>

<body>
<p>Her kan du tilf&oslash;je en nyhed:</p>
<form name="form1" method="POST" action="<?php echo $editFormAction; ?>">
  <table width="400"  border="0" cellspacing="0" cellpadding="2">
    <tr>
      <td width="118">Overskrift</td>
      <td width="274"><input name="overskrift" type="text" id="overskrift" size="40"></td>
    </tr>
    <tr>
      <td>Synopsis</td>
      <td><textarea name="synopsis" cols="40" rows="6" id="synopsis"></textarea></td>
    </tr>
    <tr>
      <td>Tekst</td>
      <td><textarea name="tekst" cols="40" rows="6" id="tekst"></textarea></td>
    </tr>
    <tr>
      <td>Forfatter</td>
      <td><input name="forfatter" type="text" id="forfatter" size="40"></td>
    </tr>
    <tr>
      <td><input type="submit" name="Submit" value="Udf&oslash;r">
      <input type="reset" name="Reset" value="Nulstil"></td>
      <td>&nbsp;</td>
    </tr>
  </table>
    <input type="hidden" name="MM_insert" value="form1">
</form>
<p>&nbsp; </p>
</body>
</html>
<?php
mysql_free_result($add_Nyhed);
?>

Hvordan skal jeg få den til at give nyhed_id sin værdi ?
Avatar billede hmortensen Nybegynder
28. juni 2005 - 15:31 #10
Det skal du gøre på den side hvor kommentaren skrives.
Når du vælger hvilken nyhed du vil skrive en kommentar til, sender du dens id med og indsætter i kommentar tabellen i nyhed_id feltet.
Avatar billede Slettet bruger
28. juni 2005 - 19:09 #11
Jeg har det på en og samme side...
Avatar billede hmortensen Nybegynder
28. juni 2005 - 22:06 #12
Den side du viser her, er til at indsætte nyheder. Du må have en anden side til indsættelse af kommentare
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