Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Koppla ihop 2 tabeller

Postades av 2009-02-15 21:34:36 - Anders Hall, i forum php, Tråden har 3 Kommentarer och lästs av 1740 personer

Håller på med ett blogg-projekt som jag har kört fast på. Vill koppla ihop mina inlägg med rätt kommentarer, eller rättare sagt rätt kommentarer till rätt inlägg.
Som det är nu så kommer alla kommentarer fram när jag visar första sidan och vill visa hur många kommentarer som varje inlägg har.
Alltså vill ja ha "Inlägg"---> 2 kommentarer kopplat till rätt inlägg.

Inläggen postas som de ska och lika dant med kommentarer, men kopplingen mellan dessa får jag inte ihop.

Posta inlägg.

<?php

require_once('CHTMLPage.php');

$title = "PTemplate1Columns";
$style = "1-kolumns.css";

$page = new CHTMLPage($style);
$page->printHTMLHeader('Fooglers blogg idag den ' . date(DATE_RFC822));

if (isset($_POST['submit'])) {

// Create a new database object, we are using the MySQLi-extension.
//
// 
$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE);

if (mysqli_connect_errno()) {
   echo "Connect failed: ".mysqli_connect_error()."<br>";
}  
  $rubrik= $_POST['rubrik'];
    $text = $_POST['text'];
    $forfattare = $_POST['forfattare'];
    $datum = date('Y-m-d H-i-s');

  $query = "INSERT INTO blogg SET rubrik='$rubrik ', text='$text' , forfattare='$forfattare' , datum='$datum'" or die(mysqli_error());
  
  $result = $mysqli->query($query, MYSQLI_USE_RESULT); 
  $result = array($result);
  
  if ($mysqli->error) {
    try {   
        throw new Exception("MySQL error $mysqli->error <br> Query:<br> $query", $msqli->errno);   
    } catch(Exception $e ) {
        echo "Error No: ".$e->getCode(). " - ". $e->getMessage() . "<br >";
        echo nl2br($e->getTraceAsString());
    }
}
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

  $mysqli->close();

 }
?>
<?php
$html = <<<EOD
       
    <form method="post" action="?p=post" name="matain" onSubmit="return skicka_OnClick();">
 
 <p>
   Rubrik:<br>
    <input type="text" name="rubrik" id="title" size="25" />
   </p> 
     Text:<br>
    <textarea name="text" rows="5" cols="30"></textarea>
   </p>
   <p>
     Författare:<br>
    <input type="text" name="forfattare"  id="forfattare" size="25" />
   </p>
   <p>
      <input type="submit" name="submit" value="Posta inlägg!" />
    </p>
    </form>  
<p>Tillbaka</p>
   
<script language="JavaScript">
   function skicka_OnClick() {
   var rubrik = document.matain.title.value;
   var text = document.matain.text.value;
   var forfattare = document.matain.forfattare.value;    
   if((rubrik.length != 0) && (text.length != 0) && (forfattare.length != 0)) {
     return true;
     } else {
     alert("Du glömde att fylla i Rubrik, Inlägg eller Författare");
     return false;
     }
 }
</script>

EOD;

$page->addPageBodyLeft($html);

// Print out the resulting page
 
$page->printPage($title);
?> 


Inlägg

<?php

require_once('CHTMLPage.php');

$title = "PTemplate1Columns";
$style = "1-kolumns.css";

$page = new CHTMLPage($style);

if (isset($_POST['submit'])) {

$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE);

if (mysqli_connect_error()) {
   echo "Connect failed: ".mysqli_connect_error()."<br>";
   //exit();
}  
  $titel= $_POST['titel'];
    $namn = $_POST['namn'];
    $innehall = $_POST['innehall'];
    $datum = date('Y-m-d H-i-s');
    $nid = $_GET['nid']; 
    $id = $_GET['id']; 
    
 $query = "INSERT INTO kommentarer SET nid='$nid', titel='$titel', namn='$namn', datum='$datum', innehall='$innehall'" or die(mysqli_error());

  $result = $mysqli->query($query, MYSQLI_USE_RESULT); 
  $result = array($result);

 if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

 $mysqli->close();
}

?>
<?php

$html = <<<EOD

<h2>Skriv en kommentar</h2>
<p>
<form method="post" action="?p=style1cols&nid=12" name="matain" onSubmit="return skicka_OnClick();">
 <p>
    Titel:<br>
    <input type="text" name="titel" id="titel" size="25" />
   </p> 
     Text:<br>
    <textarea name="innehall" rows="5" cols="30"></textarea>
   </p>
   <p>
    Namn:<br>
    <input type="text" name="namn"  id="namn" size="25" />
   </p> 
   <p>
      <input type="submit" name="submit" value="Kommentera!" />
    </p>
   </form>  
 <p>Läs nya meddelande</p>
 </p>  
<script language="JavaScript">
   function skicka_OnClick() {
   var titel = document.matain.titel.value;    
   var namn = document.matain.namn.value;
   var innehall = document.matain.innehall.value;
   if((titel.length != 0) && (innehall.length != 0) && (namn.length != 0)) {
     return true;
     } else {
     alert("Du glömde att skriva Inlägg eller Namn");
     return false;
     }
 }
</script>

EOD;

$page->addPageBodyLeft($html);

// Print out the resulting page
 
$page->printPage($title);

?> 

Och sidan som jag läser från, alltså första sidan.
<?php

require_once('CHTMLPage.php');

$page = new CHTMLPage();

$page->printHTMLHeader('Fooglers blogg idag den ' . date(DATE_RFC822));
$title = "PTemplate2Columns";
$style = "step14_twocolumns.css";


$page = new CHTMLPage($style);


$html = <<<EOD
Byt utseende
<h2>Senaste blogg-inl&auml;ggen</h2>

EOD;
$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE);

if (mysqli_connect_error()) {
   echo "Connect failed: ".mysqli_connect_error()."<br>";
   
}
$query = "SELECT * FROM blogg ORDER BY datum DESC;";

$res = $mysqli->query($query) 
                    or die("Could not query database");
                
if ($qkom = $mysqli->query("SELECT * FROM kommentarer ORDER BY datum DESC")) {

    /* determine number of rows result set */
    $count = $qkom->num_rows;

    

    /* close result set */
    $qkom->close();
}                
while($row = $res->fetch_object()) {
    $html .= <<< EOD
   <h2>$row->rubrik<br></h2>
    $row->text<br><br>
    $row->forfattare
    $row->datum<br>
    
<!--<p>Antal inl&auml;gg som visas: {$res->num_rows}</p> -->

<p>Antal kommentarer: ($count)\nKommentera\nLäs alla</p>

EOD;
}

$res->close();
$page->addPageBodyLeft($html);

$html = <<<EOD

<h4>Meny</h4>


EOD;
$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE);

if (mysqli_connect_error()) {
   echo "Connect failed: ".mysqli_connect_error()."<br>";
   //exit();
}
$query = "SELECT * FROM membersmembers;";

$res = $mysqli->query($query) 
                    or die("Could not query database");
if ($qkom = $mysqli->query("SELECT * FROM kommentarer ORDER BY datum DESC")) {

    /* determine number of rows result set */
    $count = $qkom->num_rows;

    

    /* close result set */
    $qkom->close();
}                
while($row = $res->fetch_object()) {
    $html .= <<< EOD
   <p><a href>$row->namnUser</a href></p>
    <p>$row->ansvarsomrade</p>
   
    


EOD;
}

$res->close();
$page->addPageBodyRight($html);


$page->printPage($title);

?> 

Och tabellerna som jag använder.

CREATE TABLE IF NOT EXISTS `blogg` (
`id` int(11) NOT NULL auto_increment,
`rubrik` varchar(300) NOT NULL default '',
`text` varchar(10000) NOT NULL default '',
`forfattare` varchar(50) NOT NULL default '',
`datum` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;



CREATE TABLE IF NOT EXISTS `kommentarer` (
`id` int(11) NOT NULL auto_increment,
`nid` int(11) NOT NULL default '0',
`titel` varchar(255) NOT NULL,
`namn` varchar(255) NOT NULL,
`datum` varchar(255) NOT NULL,
`innehall` text NOT NULL,
PRIMARY KEY (`id`),
KEY `nid` (`nid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;

Hur löser jag detta med att koppla rätt kommentar till rätt inlägg. Hoppas att jag inte är för luddig i min fråga.


Svara

Sv: Koppla ihop 2 tabeller

Postades av 2009-02-16 14:11:49 - Jonas Sjöblom

Hej om jag förstått det rätt måste du bygga om databasen lite.

I kommentartabellen behöver du en kolumn som heter något i stil med blog_id. När du skriver en kommentar till ett bloginlägg ska kommentaren få blog_id = det inläggets id.
Sen i selected gör du bara en where blog_id=[bloggens id]


Svara

Sv:Koppla ihop 2 tabeller

Postades av 2009-02-16 15:54:33 - Anders Hall

Vet inte om det blir rätt, men jag försökte använda nid till detta istället. Eller är jag ute på fel spår med detta.

Annars om jag lägger in som du sa, så får du gärna visa hur du menar och vad jag bör skriva detta i min kod. Har lite hjärnsläpp förtillfället.


Svara

Sv: Koppla ihop 2 tabeller

Postades av 2009-02-16 19:43:52 - Anders Hall

Vet fortfarande inte hur jag skriver för att koppla ihop dessa.
Som ni ser så försöker jag sätta nid i kod 2, men vet inte hur jag fångar och kopplar ihop detta med inlägg(blogg-inlägg).
Annars så har jag utskrift på första sidan med följande text:
Antal kommentarer: (5) Kommentera Läs alla

men som sagt detta hämtar alla kommentarer i databasen, och är inte kopplade till något specifikt inlägg.

Fråga mig inte varför jag har satt det så här, men va för att kunna få något värde alls. Men nu får jag ju 12 på alla kommentarer. Så ska det inte vara.
action="?p=style1cols&nid=12"


Svara

Nyligen

  • 19:38 Rekommendera något intressant
  • 19:13 Международная перевозка грузов
  • 00:01 DL Van Tuning | Exclusive Body Kit
  • 12:08 Indian casino
  • 04:14 Vad finns det för kratomalternativ
  • 14:16 Indian online casino
  • 14:15 Indian online casino
  • 08:28 Butiksskyltar: Hur upplever utbude

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 869
27 965
271 770
788
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies