$sql = "select lankar.*, lankarkategorier.kategori from lankar, lankarkategorier
where lankar.kategori = lankarkategori.id";
Något sådant här kanske?
8 svar · 292 visningar · startad av Leijon
Ursäkta den något dåligt formulerade rubriken men jag behöver hjälp följande problem (förmodligen ganska basic):
I min MySQL-databas har jag två tabeller, en som heter Lankar och en vid namn LankarKategorier .
I tabellen Lankar har jag en kolumn som heter Kategori . Där ligger ID-numret från respektive kategori i tabellen LankarKategorier .
När jag sedan presenterar länkarna på sidan med kategori kommer bara ID-numret upp (förstås, eftersom det är posten i databasen).
Jag vill istället att kategorin ska hämtas från LankarKategorier .
Hur gör jag?
$sql = "select lankar.*, lankarkategorier.kategori from lankar, lankarkategorier
where lankar.kategori = lankarkategori.id";
Något sådant här kanske?
Låter bra, men hur ska jag implementera detta?
Kör Dreamweaver MX då jag inte direkt är någon SQL- eller PHP-guru...
Min kod för att skriva ut länkarna ser ut så här:
<?php do { ?>
<tr bgcolor="#F7F7F7">
<td>> <a href="<?php echo $row_rsLankar['Link']; ?>" target="_blank"><?php echo $row_rsLankar['Namn']; ?></a> - <font class="Lankkategori"> <?php echo $row_rsLankar['Kategori']; ?> </font></td>
</tr>
<?php } while ($row_rsLankar = mysql_fetch_assoc($rsLankar)); ?>
Och SQL-satsen ser ut som följer:
mysql_select_db($database_Mindatabas, $Mindatabas);
$query_rsLankar = "SELECT * FROM lankar ORDER BY id DESC";
$query_limit_rsLankar = sprintf("%s LIMIT %d, %d", $query_rsLankar, $startRow_rsLankar, $maxRows_rsLankar);
$rsLankar = mysql_query($query_limit_rsLankar, $Mindatabas) or die(mysql_error());
$row_rsLankar = mysql_fetch_assoc($rsLankar);
if (isset($HTTP_GET_VARS['totalRows_rsLankar'])) {
$totalRows_rsLankar = $HTTP_GET_VARS['totalRows_rsLankar'];
} else {
$all_rsLankar = mysql_query($query_rsLankar);
$totalRows_rsLankar = mysql_num_rows($all_rsLankar);
}
$totalPages_rsLankar = ceil($totalRows_rsLankar/$maxRows_rsLankar)-1;
mysql_select_db($database_Mindatabas, $Mindatabas);
$query_rsLankarKategorier = "SELECT * FROM lankarkategorier";
$rsLankarKategorier = mysql_query($query_rsLankarKategorier, $Mindatabas) or die(mysql_error());
$row_rsLankarKategorier = mysql_fetch_assoc($rsLankarKategorier);
$totalRows_rsLankarKategorier = mysql_num_rows($rsLankarKategorier);
Är det ingen som vet?
Jo, jag vet att Dreamweaver inte är the best way to go... :P
Men just nu är mina kunskaper inte tillräckligt stora för att jag ska kunna göra det jag vill utan det.
Så, hur ska jag fixa ovanstående?
Kom igen nu, alla Sveriges php-gurus, visa vad ni går för! ;)
Jag tycker att Dreamweaver är mycket bra att ha men inte till att skriva PHP med.
Koden som DW gör för mySQL är ganska jobbig att hålla på med, går att göra mycket lättare själv. Dock är DWs kod gjord för att passa på så många ställen som möjligt.
Snälla, jag behöver verkligen hjälp med det här.
Är det INGEN som klarar detta?
$get_links = mysql_query("SELECT
LankarKategorier.kategori AS CAT_NAME,
Lankar.kategori AS CAT_ID
FROM Lankar
INNER JOIN LankarKategorier ON Lankar.id = LankarKategorier.id
ORDER BY Lankar.date DESC LIMIT 5") or die (mysql_error());
while ($link = mysql_fetch_array($get_links)) {
echo "<a href=\"/links.php?id=" . $link['CAT_ID'] . "\">" . $link['CAT_NAME'] . "</a>";
}
..tror jag