hey mensen ik wil graag een stamboom systeem maken voor onze familie, ik heb de database al aangemaakt en dit is het script om te verkenen, alleen ik krijg de foutmeldingen:
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in H:\server1\xampp\htdocs\stamboom\index.php on line 56

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in H:\server1\xampp\htdocs\stamboom\index.php on line 93

het is me duidelijk dat het licht aan de fetchobject en restult, en ik denk dat dit komt om dat ik twee keer deze ombjecten gebruik, maar dit moet toch kunnen? wie ziet de fout en weet de oplossing voor dit probleem? bedankt tim

script:

<?
echo "<table border=\"1\"><tr>";
echo "<tr><td>Ouder</td></tr>";
echo "<td>generatie</td><td>naam</td><td>beroep</td><td>getrouwd</td><td>kinderen</td><td>geborte datum</td><td>sterf datum</td>";

$lastgen =$_GET[gen]-1;
mysql_connect("localhost", "root", "wachtwoord");
mysql_select_db("database");
$result = mysql_query("select * from stamboom WHERE generatie = '$lastgen' AND naam = '$_GET[ouder]' ");
while ($row = mysql_fetch_object($result)) {
		echo "<tr>";
    echo "<td>";
		echo $row->generatie;
		echo "</td>";
    echo "<td>";
		echo "<a href=\"index.php?gen=".$lastgen."&ouder=";
		echo $row->ouder;
		echo ">";
		echo $row->naam;
		echo "</a>";
		echo "</td>";
		echo "<td>";
		echo $row->beroep;
		echo "</td>";
		echo "<td>";
		echo $row->getrouwd;
		echo "</td>";
		echo "<td>";
		echo $row->kinderen;
		echo "</td>";
		echo "<td>";
		echo $row->geboortedag;
		echo " / ";
		echo $row->geboortemaand;
		echo " / ";
		echo $row->geboortejaar;
		echo "</td>";
		echo "<td>";
		echo $row->sterfdag;
		echo " / ";
		echo $row->sterfmaand;
		echo " / ";
		echo $row->sterfjaar;
		echo "</td>";
		echo "</tr>";
}
mysql_free_result($result);

echo "<tr><td>Kind</td></tr>";
echo "<tr><td>generatie</td><td>naam</td><td>beroep</td><td>getrouwd</td><td>kinderen</td><td>geborte datum</td><td>sterf datum</td><br></tr>";

$nextgen = 1 + $_GET[gen];
mysql_connect("localhost", "root", "wachtwoord");
mysql_select_db("database");
$result2 = mysql_query("select * from stamboom WHERE generatie = '$_GET[gen]' AND ouder = '$_GET[ouder]' ");
while ($row = mysql_fetch_object($result2)) {
		echo "<tr>";
    echo "<td>";
		echo $row->generatie;
		echo "</td>";
    echo "<td>";
		echo "<a href=\"index.php?gen=".$nextgen."&ouder=";
		echo $row->naam;
		echo ">";
		echo $row->naam;
		echo "</a>";
		echo "</td>";
		echo "<td>";
		echo $row->beroep;
		echo "</td>";
		echo "<td>";
		echo $row->getrouwd;
		echo "</td>";
		echo "<td>";
		echo $row->kinderen;
		echo "</td>";
		echo "<td>";
		echo $row->geboortedag;
		echo " / ";
		echo $row->geboortemaand;
		echo " / ";
		echo $row->geboortejaar;
		echo "</td>";
		echo "<td>";
		echo $row->sterfdag;
		echo " / ";
		echo $row->sterfmaand;
		echo " / ";
		echo $row->sterfjaar;
		echo "</td>";
		echo "</tr>";
}
mysql_free_result($result2);
?>
Eerste error heeft te maken met dat je sql query is mislukt
huh, raar nu is die error weg, alleen laat hij de helft zien :S

edit:

mischien is dat de oplossing: een link naar de ouder in een mysql_fetch_object, dus gewoon een achtste kolom goed idee?
Opmerking:
DAMN! Hoeveel echo's heb je wel niet O_o. Dat kun je best wel samenpakken...
ja klopt alleen ik ben een noob dus dan mag je veel echos maken :P

edit:

ja tis gelukt!


<?
echo "<table border=\"1\"><tr>";
echo "<tr><td>generatie</td><td>naam</td><td>beroep</td><td>getrouwd</td><td>kinderen</td><td>geborte datum</td><td>sterf datum</td><td>ouder uit stamboom</td><br></tr>";

$nextgen = $_GET[gen] +1;
$lastgen = $_GET[gen] -1;
mysql_connect("localhost", "root", "wachtwoord");
mysql_select_db("database");
$result = mysql_query("select * from stamboom WHERE generatie = '$_GET[gen]' AND ouder = '$_GET[ouder]' ");
while ($row = mysql_fetch_object($result)) {
		echo "<tr>";
    echo "<td>";
		echo $row->generatie;
		echo "</td>";
    echo "<td>";
		echo "<a href=\"index.php?gen=".$nextgen."&ouder=";
		echo $row->naam;
		echo "\">";
		echo $row->naam;
		echo "</a>";
		echo "</td>";
		echo "<td>";
		echo $row->beroep;
		echo "</td>";
		echo "<td>";
		echo $row->getrouwd;
		echo "</td>";
		echo "<td>";
		echo $row->kinderen;
		echo "</td>";
		echo "<td>";
		echo $row->geboortedag;
		echo " / ";
		echo $row->geboortemaand;
		echo " / ";
		echo $row->geboortejaar;
		echo "</td>";
		echo "<td>";
		echo $row->sterfdag;
		echo " / ";
		echo $row->sterfmaand;
		echo " / ";
		echo $row->sterfjaar;
		echo "</td>";
		echo "<td>";
		echo "<a href=\"index.php?gen=".$lastgen."&ouder=";
		echo $row->grootouder;
		echo "\">";
		echo $row->Ouder;
		echo "</a>";
		echo "<td>";
		echo "</td>";
		echo "</tr>";
}
mysql_free_result($result);
?>
tim schreef op 29.06.2007 14:17
ja klopt alleen ik ben een noob dus dan mag je veel echos maken :P
Hmm, het komt je overzichtelijkheid niet echt ten goede. Leer het je meteen goed aan en neem heb gewoon samen.
<?php
while ($row = mysql_fetch_object($result))
{
echo '<tr>';
echo '<td>'.$row->generatie.'</td>';
echo '<td><a href="index.php?gen='.$nextgen.'&ouder='.$row->naam.'">'.$row->naam.'</a></td>';
echo '<td>'.$row->beroep.'</td>';
echo '<td>'.$row->getrouwd.'</td>';
echo '<td>'.$row->kinderen.'</td>';
echo '<td>'.echo $row->geboortedag.' / '.$row->geboortemaand.' / '.$row->geboortejaar.'</td>';
echo '<td>'.$row->sterfdag.' / '.$row->sterfmaand.' / '.$row->sterfjaar.'</td>';
echo '<td><a href="index.php?gen='.$lastgen.'&ouder='.$row->grootouder.'">'.$row->Ouder.'</a></td>';
echo '</tr>';
}
?>
Zeg nou zelf, dit ziet er een stuk overzichtelijker uit!

Zie ook dat ik enkele quotes heb gebruikt zodat je de dubbele quotes van de HTML niet hoeft te escapen.

Daarnaast moet je ook even kijken naar de database, want ik krijg het vermoeden dat je van de geboorte en sterfdata de dag, maand en het jaar apart opslaat. En dat is niet niet juist, hiervoor gebruik je namelijk gewoon een DATE veld waarin je de complete datum opslaat!

Reageren