Goedendag mensen, ik heb even een vraag. Ik heb 3 databases:

persoon
-id
-naam

film
-id
-titel

bezetting
-persoonid
-testfilmid
-karakter

Nu komt het volgende ik roep op de pagina persoon.php alle gegevens uit de tabel 'persoon' aan via ?id= en $_GET['id']. Dit werkt gewoon naar behoren. Nu komt het volgende. Nu wil ik alle films laten zien waar de persoon inzit. Dit gebeurt uiteraard via het tabel 'bezetting'.

Momenteel gebruik ik deze code (ik gebruik if omdat niet alle personen in een film spelen):

<ol>

<?php

include 'config.php';

mysql_select_db("databasenaam", $con);

$result = mysql_query("SELECT filmid, karakternaam, FROM bezetting WHERE persoonid='" . $_GET['id'] . "'");

while($row = mysql_fetch_array($result))
{
 
if($row[persoonid])
{
echo '<li>' . $row["filmid"] . ' - ' . $row["karakternaam"] . '<br>';
} 

}

mysql_close($con);
?>

</ol>


Nu laat hij dus het filmid nummer zien. Echter wil ik dat hij de filmtitel laat zien! Ik heb een vermoeden dat dit met INNER JOIN werkt? Of zit ik dan helemaal fout? Ik loop helemaal vast. Tevens heb ik nog 1 vraag... Ik wil tevens dat als een persoon in een film gespeeld heeft, er "Films:" bovenaan het lijstje komt. Hoe doe ik dit? Wederom met een IF? Ik hoop dat jullie mijn beide vragen begrijpen...

Wie kan me verder helpen?

<?php
$query = '
  SELECT 
    f.id AS film_id, 
    f.titel AS titel,
    b.karakter AS karakter
  FROM 
    bezetting AS b
  JOIN 
    testfilm AS f
  ON
    b.testfilm = f.id
  WHERE 
   b.persoonid="'. $_GET['id'] .'"';

$result = mysql_query($query) or die($query.'<br>'.mysyql_error());

while($row = mysql_fetch_array($result)) {

  echo '<li><a href=film.php?id=' . $row["film_id"] . '>' . $row["titel"] . '</a> - ' . $row["karakter"] . '<br>';

?> 


Dit zou moeten werken...
Dat werkt inderdaad, echter moet ik nu nog de tekst "Films:" weergeven INDIEN er dus gegevens in b.testfilmid. Hoe krijg ik dat voor elkaar?

Dus dat er alleen


===
Films:

hier de lijst
===

(de tekst Films:) word geweergeeft indien er dus films zijn met de persoon in de hoofdrol. Ik had het eerst zo gedaan:

while($row = mysql_fetch_array($result))
{

if($row[b.persoonid])
echo 'Films:';
{
echo '<li><a href=film.php?id=' . $row["film_id"] . '>' . $row["titel"] . '</a> - ' . $row["karakter"] . '<br>';
} 

}

echter als ik dit zo doe weergeeft hij op elke rij "Films:" terwijl ik het maar 1x wil bovenaan het lijstje. Wie weet de oplossing hiervoor? Een IF in een IF?
je

echo 'Films:';

boven de loop zetten...

<?php
$query = '
  SELECT 
    f.id AS film_id, 
    f.titel AS titel,
    b.karakter AS karakter
  FROM 
    bezetting AS b
  JOIN 
    testfilm AS f
  ON
    b.testfilm = f.id
  WHERE 
   b.persoonid="'. $_GET['id'] .'"';

$result = mysql_query($query) or die($query.'<br>'.mysyql_error());

if(mysql_num_rows($result) > 0) {
  
  echo '<h2>Films</h2>';
  echo '<ul>';

  while($row = mysql_fetch_array($result)) {
    echo '<li><a href="film.php?id=' . $row["film_id"] . '">' . $row["titel"] . '</a> - ' . $row["karakter"] . '</li>';
  }

  echo '</ul>';

}
?> 


Slordigheidje .... regel 16 => mysyql_error()

Reageren