Avatar billede skaft Nybegynder
27. juli 2003 - 21:00 Der er 45 kommentarer og
1 løsning

Oprettelse af basalt og enkelt forum

Nu tog jeg mig endelig sammen og fandt en rigtig god artikel:
http://www.php-script.dk/index.asp?mode=Artikler&id=29

Det hele var beskrevet meget godt og det gik såmænd også fint, lige pånær i vis_traad.php

#############################################

########## kode til vis_traad.php ###########

<?php
$id = $_GET["id"];
if(!$id){
echo "intet id angivet";
exit;
}
/* Sørger for at der er angivet et id */
include("db_con.php");
/* Connecter til MySQL*/
$vis_traad = mysql_query("SELECT * FROM traade where id = '$id' limit 1");
while ($row = mysql_fetch_array($vis_traad)){
$navn = htmlentities($row["navn"]);
$emne = htmlentities($row["emne"]);
$post = htmlentities(nl2br($row["post"]));
/* Gør det muligt at lave linjeskift og at bruge html tegn som < og > */
echo "<b>".$emne."</b><br />";
echo $post;
echo "<br />";
echo "Postet af: ".$navn."<br /><br />";
/* Udskriver det tråden */
}
/* Sørger for at der er angivet et id */
include("db_con.php");
/* Connecter til MySQL*/
$vis_kommentar = mysql_query("SELECT * FROM kommentarer where kommentarid = '$id'");
while ($row = mysql_fetch_array($vis_kommentar)){
$navn = htmlentities($row["navn"]);
$emne = htmlentities($row["emne"]);
$post = htmlentities(nl2br($row["post"]));
/* Gør det muligt at lave linjeskift og at bruge html tegn som < og > */
echo $post;
echo "<br />";
echo "Postet af: ".$navn."<br /><br />";
/* Udskriver det kommentaren */
}
mysql_close();
?>

#############################################

Fejlmeldingen er:
Warning: Supplied argument is not a valid MySQL result resource in /var/www/hotels/1go/clangangsta/html/vis_traad.php on line 27

For mig at se må det være fordi at vis_kommentar.php mangler.
Jeg er endnu ikke skilled nok til selv at designe vis_kommentar.php. Frustreret har jeg sendt en flok mails efter artikelskriveren, men han besvare ikke, måske bruger han ikke længere den mailadresse.

Så det er her at I kommer ind i billedet.

###### Opgaven #######

Lav et forslag til hvordan vis_kommentar.php skulle se ud og vær venlig at sætte en <!-- Derfor --> ved linjerne så jeg kan se hvad I laver, jeg er nemlig interesseret i at lære noget af det også :)

######################
Lav et bud på hvordan vis_kommentar.php burde se ud for at de virker :)

// Vær venlig at lave en <!-- derfor --> ved linjerne så jeg kan se hvad i laver, jeg er nemlig interesseret i også at lære noget :) \\

############# Afsluttende bemærkning #########

De 200 points tilfalder den/de der kommer med det hurtigste og korrekte svar, god fornøjelse :)

##############################################
Avatar billede schaefner Juniormester
27. juli 2003 - 21:08 #1
Prøv:
$vis_kommentar = mysql_query("SELECT * FROM kommentarer where kommentarid = $id") or die(mysql_error());

eller kig på: http://script.dk/sourcecode.jsp?resourceId=807
Avatar billede skaft Nybegynder
27. juli 2003 - 21:20 #2
det løste lidt at problemet vel..men

http://www.clangangsta.1go.dk/vis_traad.php?id=1 <-- så kom der en fejl jeg aldrig har set før :|
Avatar billede ahv Nybegynder
27. juli 2003 - 21:24 #3
Unknown column 'kommentarid' in 'where clause'

Betyder at du ikke har noget felt i din tabel kommentarer der hedder kommentarid, prøv at tjekke din tabel efter måske er det stavet med stort K eller andet!
Avatar billede ahv Nybegynder
27. juli 2003 - 21:26 #4
Jeg kan ikke rigtig se hvor man kan hente tabellerne til dette script. Men hvis du selv har lavet dem så mangler du altså det kommentarid felt i tabellen kommentarer, ellers har du måske stavet det forkert/skrevet det anderledes.

Tricket i dette felt er at den jo kun skal hive de kommentarer ude der hører til den respektive tråd.
Avatar billede skaft Nybegynder
27. juli 2003 - 21:31 #5
Det er jeg ganske klar over. Men da jeg aldrig selv har lavet et funktionelt forum før kan ikke ikke vide bedre end hvad jeg læser i den tuturial som jeg troede var god, men som åbentbart er meget mangelfuld.

Ja, jeg har selv oprettet tabellerne efter hvad jeg kunne læse i tuturialen.

Jeg må vel se mig om efter en ny tuturial ser det ud til...
Avatar billede ahv Nybegynder
27. juli 2003 - 21:32 #6
Det behøver du nu ikke helt, det ser ud til det er det eneste du mangler.

Kan du ikke poste din tabelstruktur her så kan jeg tilføje det sidste felt for dig.
Avatar billede skaft Nybegynder
27. juli 2003 - 21:36 #7
#
# Struktur dump for tabellen `traade`
#

CREATE TABLE traade (
  id int(11) NOT NULL auto_increment,
  navn tinytext NOT NULL,
  emne tinytext NOT NULL,
  post text NOT NULL,
  PRIMARY KEY  (id)
) TYPE=MyISAM;

og

#
# Struktur dump for tabellen `kommentarer`
#

CREATE TABLE kommentarer (
  id int(11) NOT NULL auto_increment,
  navn tinytext NOT NULL,
  emne tinytext NOT NULL,
  post text NOT NULL,
  PRIMARY KEY  (id)
) TYPE=MyISAM;
Avatar billede ahv Nybegynder
27. juli 2003 - 21:36 #8
CREATE TABLE kommentarer (
  id int(11) NOT NULL auto_increment,
  navn tinytext NOT NULL,
  emne tinytext NOT NULL,
  post text NOT NULL,
  kommentarid int(11) NOT NULL,
  PRIMARY KEY  (id)
) TYPE=MyISAM;
Avatar billede ahv Nybegynder
27. juli 2003 - 21:37 #9
Så er det bare at hukse og kdoe dem sammen, så de kommentarer der hører til traaden med id 1 for kommentarid 1 osv.
Avatar billede skaft Nybegynder
28. juli 2003 - 13:04 #10
www.clangangsta.1go.dk/forum

Jah så virker det..bare en ting..jeg har probs med det væsentlige..at kunne kommentere indlæg. Jeg antog at jeg burde gemme "masterens" id i en session i vis_traad.php og så finde den i kommenter.php ...dette virker ikke :(

Kode, kommenter.php:
<?php

session_start(); //Starter session



if(!isset($ok)){
$ok="nope";
}
if ($ok=="yep") { // submitknappen er blevet trykket på.
    $db = mysql_connect("localhost","free11958","abesnude");
    mysql_select_db("free11958",$db);
$post = str_replace("\n","<BR>",$post);




    mysql_query("insert into kommentarer (id, navn, emne, post) values ('$idde', '$navn','$emne','$post')");
?>
<BODY align"center">



<?
} else {
?>
<form method="post" action="<? echo "$PHP_SELF";?>">

<TABLE WIDTH="400" HEIGHT="400" BORDER="0" BGCOLOR="#FFFFFF">
<TR>
<TD VALIGN="top" ALIGN="center" STYLE="outline-color:#000000;font-family:Verdana, Arial, Helvetica, sans-serif;font-size:11;"><P CLASS="tekst2"><b>Navn:</b></P></TD></tr><tr><TD ALIGN="center"><INPUT TYPE="text" SIZE="30" NAME="navn"></TD>

</TR><TR VALIGN="top" ALIGN="center">
<TD STYLE="outline-color:#000000;font-family:Verdana, Arial, Helvetica, sans-serif;font-size:11;"><P CLASS="tekst2"><b>Emne:</b></P></TD></TR><TR><TD ALIGN="center"><INPUT TYPE="text" SIZE="30" NAME="emne"></TD>
<TR ALIGN="center">
<TD STYLE="outline-color:#000000;font-family:Verdana, Arial, Helvetica, sans-serif;font-size:11;"><b>Debat:</b></P></TD></TR>
<TR ALIGN="center"><TD ROWSPAN=2 STYLE="outline-color:#000000;font-family:Verdana, Arial, Helvetica, sans-serif;font-size:11;"><TEXTAREA WRAP="physical" ROWS="6" COLS="28" NAME="post"></TEXTAREA><br></TD></TR>

<? echo $_SESSION['var'];  ?>

<TR ALIGN="center">
<input type="hidden" name="ok" value="yep"></TR>


    <TR>
        <TD ALIGN="center"><input type="submit" value="Send"></TD>
    </TR>

<?
}
?>

og vis_traad.php:
<?php
session_start(); //Starter session
?>
<HTML>
<BODY STYLE="outline-color:#000000;font-family:Verdana, Arial, Helvetica, sans-serif;font-size:11;">

<?php
$id = $_GET["id"];
if(!$id){
echo "intet id angivet";
exit;
}
/* Sørger for at der er angivet et id */
include("db_con.php");
/* Connecter til MySQL*/
$vis_traad = mysql_query("SELECT * FROM traade where id = '$id' limit 1");
while ($row = mysql_fetch_array($vis_traad)){
$navn = htmlentities($row["navn"]);
$emne = htmlentities($row["emne"]);
$post = htmlentities(nl2br($row["post"]));
/* Gør det muligt at lave linjeskift og at bruge html tegn som < og > */
echo "<b>Emne: </b>".$emne."<br />";
echo "<b>Debat: </b><br>".$post."<br />";
echo "<br />";
echo "Postet af: ".$navn."<br /><br />";

$ha = "echo "$data[0]";";
$_SESSION['var'] = "$ha";
/* Udskriver det tråden */
}

$vis_kommentar = mysql_query("SELECT * FROM kommentarer where id = '$id'");
while ($row = mysql_fetch_array($vis_kommentar)){
$navn = htmlentities($row["navn"]);
$emne = htmlentities($row["emne"]);
$post = htmlentities(nl2br($row["post"]));
/* Gør det muligt at lave linjeskift og at bruge html tegn som < og > */
echo $post;
echo "<br />";
echo "Postet af: ".$navn."<br /><br />";
/* Udskriver det kommentaren */
}
mysql_close();
?>
<br>
<br>

- - - - - - - - - - - - - - - - - - - - - - - - - -<br>
<A HREF="opret_traad.php">Opret ny tråd</A> - <A HREF="forum.php">Tilbage</A> - <A HREF="kommenter.php">Kommentér</A>
</BODY>
</HTML>

Hvad gør jeg galt ? :(
Avatar billede ahv Nybegynder
28. juli 2003 - 13:06 #11
Hvor har du din insert til kommentarer?
Avatar billede skaft Nybegynder
28. juli 2003 - 13:09 #12
Jamen det er ikke...lige nu i hvert fald, du skal se på.
Se på den session jeg sætter i vis_traad.php:
$ha = "echo "$data[0]";";
$_SESSION['var'] = "$ha";

og at jeg gerne vil have den til bare at skrive den i kommenter.php:<? echo $_SESSION['var'];  ?>
Avatar billede ahv Nybegynder
28. juli 2003 - 13:10 #13
$_SESSION['var'] = $data[0];
Avatar billede skaft Nybegynder
28. juli 2003 - 13:15 #14
<? id$ = $_SESSION['var']; ?> <-- hvordan burde den så se ud...?
Avatar billede ahv Nybegynder
28. juli 2003 - 13:16 #15
<? $id = $_SESSION['var']; ?>
Avatar billede skaft Nybegynder
28. juli 2003 - 13:16 #16
DOH!!!!
Avatar billede skaft Nybegynder
28. juli 2003 - 13:24 #17
har ændret i kommentarid linje:
mysql_query("insert into kommentarer (id, navn, emne, post) values ('$idde', '$navn','$emne','$post')");
?>

til linje:
mysql_query("insert into kommentarer (kommentarid, navn, emne, post) values ('$id', '$navn','$emne','$post')");
?>

og sat linjen: <? $id = $_SESSION['var']; ?>

Hvorfor sætter den ikke det respektive id ind i databasen?
Avatar billede ahv Nybegynder
28. juli 2003 - 13:25 #18
Har du sikret dig at $_SESSION['var'] indeholder noget?
Avatar billede skaft Nybegynder
28. juli 2003 - 13:27 #19
i vis_traad.php står der en linje:
$_SESSION['var'] = $data[0];

Den burde indeholde id'et.
Avatar billede ahv Nybegynder
28. juli 2003 - 13:28 #20
prøve at echo den på kommentar siden :)
Avatar billede skaft Nybegynder
28. juli 2003 - 13:33 #21
indsatte kode:
<? echo $_SESSION['var']; ?>

http://www.clangangsta.1go.dk/kommenter.php

- Der sker intet...

Er der andre måder at rykke master-id'et med sig til kommenter.php ?
Avatar billede ahv Nybegynder
28. juli 2003 - 13:35 #22
Prøv at registrer din session i vis_traade med ->
$var = $data[0];
session_register("var");

og på kommentar siden laver du så blot ->

$id = $var;
Avatar billede skaft Nybegynder
28. juli 2003 - 13:40 #23
den holder sig stadig til sin standardværdi (0) :(
Avatar billede ahv Nybegynder
28. juli 2003 - 13:47 #24
<A HREF="opret_traad.php">Opret ny tråd</A> - <A HREF="forum.php">Tilbage</A> - <A HREF="kommenter.php?id=<?php echo $id; ?>">Kommentér</A>

På den måde du så for id'et -> $id = $_GET['id'];

Prøv evt. at indsætte med ->

mysql_query("insert into kommentarer (navn, emne, post, kommentarid) values ('$navn','$emne','$post','$id')");
Avatar billede skaft Nybegynder
28. juli 2003 - 13:57 #25
Hmm...
I databasen ser jeg lige at kommentare tabellen også har et feldt "id", og der er auto increase osv på så der er 1-7. Nu oprettede jeg så for sjov lige en ny tråd og der kan man så se at kommentaren med id = 2 blev added til og derfor vil næste tråd naturligvis for kommentar med id = 3.

Pointen er om ikke bør slette det der id-feldt?

PS:
Indsatte <A HREF="opret_traad.php">Opret ny tråd</A> - <A HREF="forum.php">Tilbage</A> - <A HREF="kommenter.php?id=<?php echo $id; ?>">Kommentér</A> i kommentare.php, indsatte $id = $_GET['id']; istedet for den der session i kommentare.php og indsatte også mysql_query("insert into kommentarer (navn, emne, post, kommentarid) values ('$navn','$emne','$post','$id')"); i kommentare.php hvorfor jeg forsøgte at besvare en post, men den addede blot en mere i tabellen kommentare med id = 7 og kommentarid = 0 ...

:(
Avatar billede ahv Nybegynder
28. juli 2003 - 13:58 #26
Nej, du må endelige ikke slette det id felt, det er pga. det det hele fungere ;o)
Avatar billede skaft Nybegynder
28. juli 2003 - 13:59 #27
hehe k, men...men..hvadså!? :D
Avatar billede ahv Nybegynder
28. juli 2003 - 14:01 #28
Den kode jeg postede 13:57 når du går ind i kommenter hvad står der så i URL'en?
Avatar billede skaft Nybegynder
28. juli 2003 - 14:02 #29
Avatar billede skaft Nybegynder
28. juli 2003 - 14:03 #30
arghj! kom til at trykke afvis på din besvarelse...er der mulighed for at give dig point alligevel?
Avatar billede ahv Nybegynder
28. juli 2003 - 14:04 #31
:o)
Avatar billede skaft Nybegynder
28. juli 2003 - 14:04 #32
hehe, det var det så ;o)
Avatar billede skaft Nybegynder
28. juli 2003 - 14:05 #33
men asso...i urlbaren indrømmer den ærligt at id=1 ? :-o
Avatar billede ahv Nybegynder
28. juli 2003 - 14:08 #34
<?php
$id = $_GET['id'];

if(!isset($ok)){
$ok="nope";
}
if ($ok=="yep") { // submitknappen er blevet trykket på.
    $db = mysql_connect("localhost","free11958","abesnude");
    mysql_select_db("free11958",$db);
$post = str_replace("\n","<BR>",$post);

mysql_query("insert into kommentarer (navn, emne, post) values ('$navn','$emne','$post','$id')");
?>
<BODY align"center">



<?
} else {
?>
<form method="post" action="<? echo "$PHP_SELF?id=$id";?>">

<TABLE WIDTH="400" HEIGHT="400" BORDER="0" BGCOLOR="#FFFFFF">
<TR>
<TD VALIGN="top" ALIGN="center" STYLE="outline-color:#000000;font-family:Verdana, Arial, Helvetica, sans-serif;font-size:11;"><P CLASS="tekst2"><b>Navn:</b></P></TD></tr><tr><TD ALIGN="center"><INPUT TYPE="text" SIZE="30" NAME="navn"></TD>

</TR><TR VALIGN="top" ALIGN="center">
<TD STYLE="outline-color:#000000;font-family:Verdana, Arial, Helvetica, sans-serif;font-size:11;"><P CLASS="tekst2"><b>Emne:</b></P></TD></TR><TR><TD ALIGN="center"><INPUT TYPE="text" SIZE="30" NAME="emne"></TD>
<TR ALIGN="center">
<TD STYLE="outline-color:#000000;font-family:Verdana, Arial, Helvetica, sans-serif;font-size:11;"><b>Debat:</b></P></TD></TR>
<TR ALIGN="center"><TD ROWSPAN=2 STYLE="outline-color:#000000;font-family:Verdana, Arial, Helvetica, sans-serif;font-size:11;"><TEXTAREA WRAP="physical" ROWS="6" COLS="28" NAME="post"></TEXTAREA><br></TD></TR>

<TR ALIGN="center">
<input type="hidden" name="ok" value="yep"></TR>


    <TR>
        <TD ALIGN="center"><input type="submit" value="Send"></TD>
    </TR>

<?
}
?>
Avatar billede skaft Nybegynder
28. juli 2003 - 14:10 #35
Stadig ikke :-\
Avatar billede ahv Nybegynder
28. juli 2003 - 14:11 #36
Hov ->

mysql_query("insert into kommentarer (navn, emne, post,kommentarid) values ('$navn','$emne','$post','$id')");
Avatar billede skaft Nybegynder
28. juli 2003 - 14:13 #37
Orh ja..fremgang..nu hedder den id= 1 kommentarid = 1 :o)

Men den viser sig stadig ikke under kommentare hos indlæget med id=1 fordi at den åbentbart kun tar imod id=1 (som er 9) og ikke kommentarid=1
:o(
Avatar billede ahv Nybegynder
28. juli 2003 - 14:15 #38
Bare så jeg er med så virker, kommenter siden nu? Og nu mangler vi at få vist kommentatrerne på vis_traade.php?
Avatar billede skaft Nybegynder
28. juli 2003 - 14:16 #39
Yup :oD
Avatar billede ahv Nybegynder
28. juli 2003 - 14:17 #40
<HTML>
<BODY STYLE="outline-color:#000000;font-family:Verdana, Arial, Helvetica, sans-serif;font-size:11;">

<?php
$id = $_GET["id"];
if(!$id){
    echo "intet id angivet";
    exit;
}
/* Sørger for at der er angivet et id */
include("db_con.php");
/* Connecter til MySQL*/
$vis_traad = mysql_query("SELECT * FROM traade where id = '$id' limit 1");
while ($row = mysql_fetch_array($vis_traad)){
    $navn = htmlentities($row["navn"]);
    $emne = htmlentities($row["emne"]);
    $post = htmlentities(nl2br($row["post"]));
    /* Gør det muligt at lave linjeskift og at bruge html tegn som < og > */
    echo "<b>Emne: </b>".$emne."<br />";
    echo "<b>Debat: </b><br>".$post."<br />";
    echo "<br />";
    echo "Postet af: ".$navn."<br /><br />";
    /* Udskriver det tråden */
}

$vis_kommentar = mysql_query("SELECT * FROM kommentarer where kommentarid = '$id'");
while ($row = mysql_fetch_array($vis_kommentar)){
    $navn = htmlentities($row["navn"]);
    $emne = htmlentities($row["emne"]);
    $post = htmlentities(nl2br($row["post"]));
    /* Gør det muligt at lave linjeskift og at bruge html tegn som < og > */
    echo $post;
    echo "<br />";
    echo "Postet af: ".$navn."<br /><br />";
    /* Udskriver det kommentaren */
}
mysql_close();
?>
<br>
<br>

- - - - - - - - - - - - - - - - - - - - - - - - - -<br>
<A HREF="opret_traad.php">Opret ny tråd</A> - <A HREF="forum.php">Tilbage</A> - <A HREF="kommenter.php?id=<?php echo $id; ?>">Kommentér</A>
</BODY>
</HTML>
Avatar billede skaft Nybegynder
28. juli 2003 - 14:19 #41
oh yeah
Avatar billede ahv Nybegynder
28. juli 2003 - 14:20 #42
:o)
Avatar billede skaft Nybegynder
28. juli 2003 - 14:20 #43
Mange tak skal du have for din hjælp. Du har så sandelig fortjent dine points :)
Avatar billede skaft Nybegynder
28. juli 2003 - 14:20 #44
var problemet bare at session ikke virker optimalt på mit site eller?
Avatar billede ahv Nybegynder
28. juli 2003 - 14:21 #45
Thjaa, også at der generalt var lidt mangler.
Avatar billede skaft Nybegynder
28. juli 2003 - 14:22 #46
hehe
Altså en pænt mangelfuld artikel jeg der fandt...

I will send my regards to the author >P
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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