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?
dit is te realiseren, alleen kom nu even niet op de query...
als niemand me voor is, post ik hem vandaag nog

Ik ben opzich een beginner in PHP, maar ik zou het zo opgelost hebben. Het kan sneller maar dat moet je niet aan mijn vragen:P Maar dan ben je in ieder geval uit de brand:)

Het volgende zou je moeten doen..

In je while maak je een connectie met die andere tabel en daar vraag je het id op van je $row['id'] en als goed is heb je dan de gegevens.. Zoiets wordt de query dan.

<?php
$select_info = mysql_query("SELECT * FROM persoon WHERE id='".intval($row['id'])."'");
?>
Dat zet je dus na je while loop

SELECT 
 f.id AS film_id, 
 f.titel AS titel,
 b.karakternaam AS karakternaam
FROM 
 bezetting AS b
JOIN 
 film AS f
ON
 b.film_id = f.id
WHERE b.persoonid='" . $_GET['id'] . "'");
Sorry dat ik gisteren niet meer gereageerd heb, had het erg druk. Maar goed...

@Niels: Je begrijpt niet wat ik wil ben ik bang.

@Lauren: Ik heb dit gebruikt en dus zo verwerkt:

<?php

include 'config.php';

mysql_select_db("data", $con);

$result = mysql_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'] . "'");

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

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

}

mysql_close($con);
?>

Echter werkt het niet. en krijg ik een error! Namelijk:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/scarafax/domains/scarafax.com/public_html/dataadmin/test2.php on line 19

Ik snap dit niet! Kan iemand mij uitleggen wat hiermee bedoelt word en hoe ik het kan oplossen?
Je query blijkt niet juist te zijn. Maak dit er even van om te debuggen en post dan de error:

<?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());
?>
Gedaan. Bij deze de error:

Fatal error: Call to undefined function msyql_error() in /home/scarafax/domains/scarafax.com/public_html/dataadmin/test2.php on line 17
...dat is een typfout... het moet zijn mysql_error()... de post hierboven zal ik iets editen.
De error heb ik in ieder geval weggewerkt. Ik had:

b.testfilm = f.id

en dat moest zijn:

b.testfilmid = f.id

En nu is de error weg. Excuses hiervoor. Echter weergeeft hij niets verder... terwijl de database vol staat met info.
De error is wel weg, maar je kreeg geen mysql error omdat je de functie verkeerd had getypt:
msyql_error(); moet zijn mysql_error();
Weet ik, maar goed nu geen error meer dus (had het al veranderd die msyql en mysql. Maar hij weergeeft dus gewoon niets, terwijl de database vol staat met info?!?!

Reageren