Avatar billede tobrukDk Novice
07. marts 2012 - 14:52 Der er 1 kommentar og
1 løsning

INNER JOIN problemer med frem vise indhold på siden..

Hej


Lige nu sidder jeg virkelig og prøve få det til at virker lige nu men det er sådan at man er inde på admin_indhold.php der få man vist alt som ligger ind i database table som er "Books", men så har jeg en "menu" som hedder genre og det er sådan at hvis den har id 2 så den som har en fk_genre 2 også der skulle den kun blive vist indholde af. så hvis jeg klik på menu id 1 så skal den kun vise dem som har fk_genre kun..


det her er admin_indhold.php Indhold


<?php
    $sql = "SELECT * FROM books INNER JOIN genre ON genre.genre_id=books.FK_genre";
    $result = mysql_query($sql);
    $num_rows = mysql_num_rows($result);
    while($row = mysql_fetch_array($result))
    {
    ?>
        <h1><?php echo $row['titel_indhold'];?></h1>
        <ul>
            <li><a href="deleteindhold.php?id=<?php echo $row['id'];?>">Delete</a></li>
            <li><a href="updater.php?id=<?php echo $row['id'];?>">Updater</a></li>
        </ul>
        <ul>
            <li><?php echo $row['forfatter'];?></li>
            <li><?php echo date("d-M-Y", strtotime($row['dato']));?></li>
        </ul>
        <p><?php echo $row['tekst'];?></p>
       
    <?php
    }
    ?>   




Det her er admin_indhold.php Menu side


<div id="box2">
<?php
$result = mysql_query("SELECT * FROM  `genre` ORDER BY  `genre`.`Titel` DESC");
$num_rows = mysql_num_rows($result);
                        if ($num_rows == 0) {
                                echo "Der ingen Bruger lige nu";   
                }       
        while($row = mysql_fetch_array($result))
                {
?>
    <div id="boxinfo">
    <h2><a href="bookinfo.php?books_id=<?php echo $row['genre_id'];?>"><?php echo $row['Titel'];?></a></h2>
    <p><a href="bookinfo.php?books_id=<?php echo $row['genre_id'];?>"><?php echo $row['beskrivelse'];?></a></p>
    <hr>
    </div>
   
    <?php
                }
    ?>
    <li><a href="admin.php">admin</a></li>
</div>


så lige snart man har klik på id 1 titel og beskrivelse så kommer over til bookinfo.php som frem viser indhold ud på siden :)


<?php

$mysql_hostname = "localhost";
$mysql_user = "root";
$mysql_password = "";
$mysql_database = "uge10_opgave";


$con = mysql_connect($mysql_hostname, $mysql_user, $mysql_password) or die("Could not connect database");
mysql_select_db($mysql_database, $con) or die("Could not select database");

// Prøv med 'latin1' hvis dette ikke virker.
  mysql_set_charset('utf8');
 
?>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Bog-taber</title>
<style type="text/css">
body {
    background:#999;
    font-family:"Courier New", Courier, monospace;
    font-size:12px;
    margin:0 auto;
}
#box {
    width:700px;
    background:#CCC;
    padding:2px;
    float:left;
    min-height:400px;
}
#box2 {
    width:200px;
    background:#333;
    padding:2px;
    float:left;
    min-height:400px;
}
h2 {
    font-size: 12px;
}
h2 a {
    text-decoration:none;
    color:#FFF;   
}
p a {
    text-decoration:none;
    color:#FFF;
}
#boxinfo {
    background:#333333;
    padding:5px;
    margin:5px;
    text-align:center;
}
#boxinfo:hover {
    background:#666;
    padding:5px;
    margin:5px;
    text-align:center;
   
    border-radius:5px;
    -moz-border-radius:5px;
    -webkit-border-radius:5px;
}
ul li {
    display:inline;
    margin-left: 15px;
    color: #666;
}
p {
    margin: 10px;
}
</style>
</head>
<body>


<div id="box">
    <?php
    if(isset ($_GET['books_id'])){
    $sql = "SELECT * FROM books INNER JOIN genre ON genre.genre_id=books.FK_genre WHERE id = $_GET[books_id]";
    $result = mysql_query($sql);
    $num_rows = mysql_num_rows($result);
    while($row = mysql_fetch_array($result))
    {
    ?>
        <h1><?php echo $row['titel_indhold'];?></h1>
        <ul>
            <li><?php echo $row['forfatter'];?></li>
            <li><?php echo date("d-M-Y", strtotime($row['dato']));?></li>
        </ul>
        <p><?php echo $row['tekst'];?></p>
       
    <?php
    }
    }
    ?>   
</div>
   
   
   
<div id="box2">
<?php
$result = mysql_query("SELECT * FROM  `genre` ORDER BY  `genre`.`Titel` DESC");
$num_rows = mysql_num_rows($result);
                        if ($num_rows == 0) {
                                echo "Der ingen Bruger lige nu";   
                }       
        while($row = mysql_fetch_array($result))
                {
?>
    <div id="boxinfo">
    <h2><a href="bookinfo.php?books_id=<?php echo $row['genre_id'];?>"><?php echo $row['Titel'];?></a></h2>
    <p><a href="bookinfo.php?books_id=<?php echo $row['genre_id'];?>"><?php echo $row['beskrivelse'];?></a></p>
    <hr>
    </div>
   
    <?php
                }
    ?>
    <li><a href="admin.php">admin</a></li>
</div>

</body>
</html>
07. marts 2012 - 15:13 #1
Det ser ud til, at en genre's nummer står i genretabellen i feltet genre_id.  Så når du har valgt en genre og fået genrenummeret i $_GET['books_id'], så må din query skulle være:

$sql = "SELECT * FROM books INNER JOIN genre ON genre.genre_id=books.FK_genre WHERE genre_id = $_GET[books_id]";

Altså 'WHERE genre_id....' ikke blot 'WHERE id..'
Avatar billede tobrukDk Novice
07. marts 2012 - 15:43 #2
Det var en hurtigt samtale :) er det ikke bare bedste at jeg kun gøre sådan der "$_GET[books_id]"
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