webForumDet fria alternativet

krånglade join sats

7 svar · 524 visningar · startad av Emil W

Emil WMedlem sedan mars 2009512 inlägg
#1

Jag försöker hämta ut inlägg som stämmer med posten i tråd taballen och forum inlägg tabellen kollar så att hämtar ut rätt inlägg till rätt tråd
jag försöker kolla så att id från tråd tabellen och forum inlägg stämmer med t_id

$ut = "SELECT a.id,a.katid,a.rubrik,a.namn,a.texter,a.tid, b.id,b.t_id,b.namn,b.texter,b.tid, FROM tradar AS a JOIN forum_inlagg AS b ON a.id = b.t_id WHERE id='$id'" or die (mysql_error());
$visa = mysql_query($ut);
metalboyMedlem sedan jan. 2005953 inlägg
#2

or die(mysql_error()) ska ligga efter anropet till mysql_query().

Emil WMedlem sedan mars 2009512 inlägg
#3

jag glömde säga att jag får detta felmeddelande

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp\www\visatrad.php on line 45

EDIT: jag la till (mysql_error());

får detta felmeddelande
Parse error: parse error in C:\wamp\www\visatrad.php on line 42

metalboyMedlem sedan jan. 2005953 inlägg
#4

Och hur ser din kod ut nu då?

Emil WMedlem sedan mars 2009512 inlägg
#5

Här kommer koden

<?php
session_start();
?>
<html>
<head>
<title>allforum.nu</title>
<link href="forum.css" rel="stylesheet" type="text/css">
</head>
<body>
<div class="topp">
<img src="logo_forum_jul.png">
</div>
<div class="livebox"></div>
</div>
<div class="meny"><a href="forum.php?loggaut=">Logga ut</a></div>

<?php
function bbcode($text =""){
$text = preg_replace("'\[BR\](.*?)'is","<br>", $text);
return $text;
}

if(!isset($_SESSION['sess_user']))
{
header("Location:forum.php");
exit;
}
$server = "*************";
$user = "****************";
$pass = "***********";

$con = @mysql_connect($server,$user,$pass);
if(!$con)
{
die('fel' . mysql_error());
}
mysql_select_db("****************", $con);

$id = intval($_GET['id']);

$ut = "SELECT a.id,a.katid,a.rubrik,a.namn,a.texter,a.tid, b.id,b.t_id,b.namn,b.texter,b.tid, FROM tradar AS a JOIN forum_inlagg AS b ON a.id = b.t_id WHERE id='$id'"
$visa = mysql_query($ut); or die (mysql_error())

while($row = mysql_fetch_array($visa))
{
echo "<center><br><h2>".bbcode(htmlspecialchars($row['rubrik']))."</h2></center>";
echo "<div class='inlagg_box'>";
echo "<font size=\"2px\">Postad av ".bbcode(htmlspecialchars($row['namn']))." ".bbcode(htmlspecialchars($row['tid']))."</font>";
echo "<hr>";
echo bbcode(htmlspecialchars($row['texter']));
echo "</div>";

}
?>
<?php
$server = "*************'";
$user = "**************";
$pass = "*********";

$con = @mysql_connect($server,$user,$pass);
if(!$con)
{
die('fel' . mysql_error());
}
mysql_select_db("***************", $con);

$id = intval($_GET['id']);

$sql = "SELECT last FROM tradar WHERE id='$id'";
$visas = mysql_query($sql);
$lock = mysql_result($visas, 0, 'last');

if($lock == 1){
echo "<br><center><b>Tråden är låst</b></center><br>";
}
else{
echo "<div class=\"forum_form\">";
echo "<br>";
echo "<form method=\"post\" action=\"skickatrad.php?id=$id \">";
echo "<table border=\"0\">";
echo "<tr><td colspan=\"2\" align=\"center\">Svara på tråden</td></tr>";
echo "<tr><td>Meddelande:</td><td><textarea cols=\"35\" rows=\"10\" name=\"text\"></textarea></td></tr>";
echo "<tr><td colspan=\"2\" align=\"right\"><input type=\"submit\" name=\"skickatrad\" value=\"Skicka\"></td></tr>";
echo "</table>";
echo "</form>";
echo "</div>";
}
?>
<a href="javascript:history.go(-1)">Tillbaka</a>
</body>
</html>
metalboyMedlem sedan jan. 2005953 inlägg
#6

Du har missat semikolon i slutet av den här raden:

$ut = "SELECT a.id,a.katid,a.rubrik,a.namn,a.texter,a.tid, b.id,b.t_id,b.namn,b.texter,b.tid, FROM tradar AS a JOIN forum_inlagg AS b ON a.id = b.t_id WHERE id='$id'"

och semikolonet på den här raden

$visa = mysql_query($ut); or die (mysql_error())

sitter fel. Flytta semikolonet till slutet av raden.

Emil WMedlem sedan mars 2009512 inlägg
#7

Han visar inte tråd inläggen.

nitro2k01Medlem sedan aug. 20039 342 inlägg
#8
$ut = "SELECT a.id,a.katid,a.rubrik,a.namn,a.texter,a.tid, b.id,b.t_id,b.namn,b.texter,b.tid, FROM tradar AS a JOIN forum_inlagg AS b ON a.id = b.t_id WHERE a.id='$id'";
($visa = mysql_query($ut)) or die (mysql_error());

Eftersom både tradar och forum_inlagg har kolumner som heter id måste du välja vilket id du vill använda, troligen a.id i det här fallet. Dessutom måste nästa rad se lite annorlunda ut. Eller så kan du behålla rad nr 2 som den var innan.

Kod enligt ovan.

135 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)