webForumDet fria alternativet

STORA problem med "relationer"

4 svar · 380 visningar · startad av Guldstrand

GuldstrandMedlem sedan juli 20041 271 inlägg
#1

Jag har stora problem med att förstå "relationer".
Har försökt säkert 50 gånger, men jag får inte rätt på det. :(

Hur jag än gör, så lyckas jag få fram id:et utan problem, men istället för id:et, så vill jag visa namnet.

Jag har 2 tabeller, artister + genre_music

CREATE TABLE `artister` (
  `id` int(11) NOT NULL auto_increment,
  `musicid` int(10) NOT NULL default '0',
  `added` datetime NOT NULL default '0000-00-00 00:00:00',
  `anamn` varchar(80) NOT NULL default '',
  `fnamn` varchar(80) NOT NULL default '',
  `birthday` date NOT NULL default '0000-00-00',
  `formed` date NOT NULL default '0000-00-00',
  `medlemmar` varchar(100) NOT NULL default '',
  `land` int(11) NOT NULL default '0',
  `artist_foto` varchar(100) NOT NULL default '',
  `info` text NOT NULL,
  `kategori` tinyint(3) NOT NULL default '0',
  `webb` varchar(100) NOT NULL default '',
  `userid` int(10) NOT NULL default '0',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=218 ;
CREATE TABLE `genre_music` (
  `id` int(11) NOT NULL auto_increment,
  `genre` varchar(80) NOT NULL default '',
  `g_info` varchar(255) NOT NULL default '',
  `artist` varchar(50) NOT NULL default '',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=22 ;

Med andra ord, jag vill alltså hämna/visa artistens namn istället för id:et.
(Lite klurigt att förklara.)

Här är scriptet:

<?

if ($_GET['id'] == ""){
  //############ Sidnavigering start ##################
  $antal_inlagg = mysql_num_rows(mysql_query("Select * From genre_music"));
  $sida = $_GET["sida"]; 

  if (!isset($sida)) { $sida = 1; }
  $sidantal = ceil($antal_inlagg/$antal);
  $start = ($sida*$antal)-$antal;

  //############ Sidnavigering slut ##################

  $sql = mysql_query("Select * From genre_music Order By genre LIMIT $start, $antal") or die(mysql_error());?>

  <table width="<?=$width?>" align="center">
    
    <?
    if(mysql_num_rows($sql) == 0) {
    //if (mysql_affected_rows() == 0){
    ?>
    <tr>
      <td colspan="2">Information saknas.</td>
    </tr>
  <?php }else{
    while ($RS = mysql_fetch_array($sql)){?>
      <tr>
        <td>
		<a href="?id=<?=$RS['id'];?>"><?=$RS['genre'];?></a>
		</td></tr>
    <?php }?>
    <tr>
      <td style="border-top: 1px solid #2B60CD">
        <? //############ Sidnavigering start ##################
          if ($sida > 1){
            $sida1 = $sida-1;
            echo '<br><a href="?sida='.$sida1.'"><b>Bakåt</b></a> | ';
          }
          for ($i=1;$i<$sidantal+1;$i++){
            $e = $i;
            while (strlen($e) < strlen($sidantal)) { $e = "0".$e; }
              if ($sida == $i) { echo "<font color=\"#000000\">[<b>$e</b>]</font> "; } else { echo "<a href=\"?sida=$i\">$e</a> "; }
          }
          if ($sida <= $sidantal - 1){
            echo ' | <a href="?sida='.++$sida.'"><b>Framåt</b></a>';
          }
          //############ Sidnavigering slut ##################?>
      </td>
    </tr>
    <?php }?>
  </table>

<?

}elseif ($_GET['id'] != ""){ 

$sql = mysql_query("SELECT * FROM genre_music WHERE id ={$_GET['id']}") or die(mysql_error());

?>
  <table width="<?=$width?>" align="center">
  <?php if (mysql_affected_rows() == 0){?>
    <tr>
      <td>Information saknas.</td>
    </tr>
  <?php }else{
  $RS = mysql_fetch_array($sql);?>
    <tr>
      <?php if ($RS['ikoner'] != ""){?>
        <td valign="top"><img src="ikoner/<?=$RS['ikoner'];?>" border="2" width="100"></td>
      <?php }?>
      <td valign="top">
      <b>Genre/Kategori:</b> <?=$RS['genre'];?><br><br>

	  <?php if ($RS['artist'] != ""){?>
      <b>Artist(er) i denna kategori/genre:</b><br>
      <a href=artister.php?id=<?=$RS['artist'];?>><?=$RS['artist'];?></a><br><br>
	  <?php } ?>

      <?php if ($RS['g_info'] != ""){?>
      <hr>
	  <b>Extra:</b><br>
      <?=nl2br($RS['g_info']);?>
	  <?php } ?>
<br><br>

<br /><br />

</td></tr>
  <?php }?>
    <tr>
      <td><b><a href="javascript:history.go(-1)">« tillbaka</a></b></td>
    </tr>
  </table>
<?php }?>

Ber om ursäkt för att inlägget blev för långt. :r

NiklassonMedlem sedan nov. 2000857 inlägg
#2

Flyttas från PHP..

LarsGMedlem sedan dec. 200012 464 inlägg
#3

På vilket sätt ser du vilka artister som hör till vilken genre?

GuldstrandMedlem sedan juli 20041 271 inlägg
#4

LarsG skrev:

På vilket sätt ser du vilka artister som hör till vilken genre?

Just nu kör jag detta:

<?

}elseif ($_GET['id'] != ""){ 

$sql = mysql_query("SELECT * FROM genre_music WHERE id ={$_GET['id']}") or die(mysql_error());

?>
  <table width="<?=$width?>" align="center">
  <?php if (mysql_affected_rows() == 0){?>
    <tr>
      <td>Information saknas.</td>
    </tr>
  <?php }else{
  $RS = mysql_fetch_array($sql);?>
    <tr>
      <?php if ($RS['ikoner'] != ""){?>
        <td valign="top"><img src="ikoner/<?=$RS['ikoner'];?>" border="2" width="100"></td>
      <?php }?>
      <td valign="top">
      <b>Genre/Kategori:</b> <?=$RS['genre'];?><br><br>

	  <?php if ($RS['artist'] != ""){?>
      <b>Artist(er) i denna kategori/genre:</b><br>
      <a href=artister.php?id=<?=$RS['artist'];?>><?=$RS['artist'];?></a><br><br>
	  <?php } ?>

      <?php if ($RS['g_info'] != ""){?>
      <hr>
	  <b>Extra:</b><br>
      <?=nl2br($RS['g_info']);?>
	  <?php } ?>

..så id:et visas utan problem, men jag vill byta id:et mot artistens namn istället. Hur gör jag det?

LarsGMedlem sedan dec. 200012 464 inlägg
#5

Det jag undrar är villen kolumn i din tabell som anger genre för en artist och hur data i den kolumnen ser ut. Dvs ge exempel på datainnehåll och vilket resultat du vill ha ut.

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