Ik wil een database maken met daarin de reviews die ik bezit. Ik heb daarvoor de code geschreven die je hieronder ziet, er zijn een paar probleempjes. Ik heb twee resultaten in de tabel staan op dit moment, er komt er maar 1 tevoorschijn. Verder wil ik dat er van de dvd's waarvan er een review op mijn site staat een link komt naar die review. Bestaat die review niet, dan geef ik de dvd de code 999999 bij het veld review in de database, als php 999999 aantreft zou hij '--' in de tabel moeten zetten, zo niet, dan de link naar de desbetreffende review. Ook dit werkt nog niet, de '--' wordt altijd weergegeven.

Hier wat er nu uit komt rollen: www.mc-online.info/dvd_collection.php
En hier de code:

<?php

$username="mconline";
$password="******";
$database="reviews";

mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die( "Unable to select database");

$vraag = "SELECT * FROM dvdcoll";
$result = mysql_query($vraag) or die('Error, query failed');

$num=mysql_numrows($result);

$title=mysql_result($result,$i,"title");
$director=mysql_result($result,$i,"director");
$type=mysql_result($result,$i,"type");
$discs=mysql_result($result,$i,"discs");
$review=mysql_result($result,$i,"review");
$imdbid=mysql_result($result,$i,"imdbid");

echo "<table width=100% BORDER=0>";
echo "<tr><TD>Title</TD><TD>Director(s)</TD><TD>Type</TD><TD>Discs</TD><TD>Review</TD><TD>IMDb</TR>";
$nr="0";
while ($row = mysql_fetch_array($result)) {
echo "<TR><TD>". $row['title']." </TD>";
echo "<TD>". $row['director']." </TD>";
echo "<TD>". $row['type']." </TD>";
echo "<TD>". $row['discs']." </TD>";

if ( $row['review'] = 999999 ) {
echo "<TD>--</TD>";
}
else {
echo "<TD><a href=reviews.php?page=". $row['review']. ">x</a></TD>";
}

echo "<TD><a href=http://www.imdb.com/title/tt";. $row['imdbid']. ">x</a></TD>";
}
echo "</table>";

?>

Iemand een idee wat ik fout doe? Alvast bedankt
Als eerste zou ik je zeggen dat je je wachtwoord en username uit je mysql moet halen :)

Als 2de vraag ik me af of hij het veld review wel goed binnenhaalt... misschien zou je dat eens kunnen echo'en om te kijken wat daar precies uit komt..

Volgens mij staat jouw while lus ook niet op de goede plaats of je mist een while lust, want je werkt nu maar 1 resultaat af... vandaar dat je ook maar 1 resultaat ziet.
<?php

$username="mconline";
$password="******";
$database="reviews";

mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die( "Unable to select database");

echo "<table width=100% BORDER=0>";
echo "<tr><TD>Title</TD><TD>Director(s)</TD><TD>Type</TD><TD>Discs</TD><TD>Review</TD><TD>IMDb</TR>";

$vraag = "SELECT * FROM dvdcoll";
$result = mysql_query($vraag) or die('Error, query failed');

$num=mysql_numrows($result);

$nr="0";
while ($row = mysql_fetch_array($result)) {
$title=mysql_result($result,$i,"title");
$director=mysql_result($result,$i,"director");
$type=mysql_result($result,$i,"type");
$discs=mysql_result($result,$i,"discs");
$review=mysql_result($result,$i,"review");
$imdbid=mysql_result($result,$i,"imdbid");
echo "<TR><TD>". $row['title']." </TD>";
echo "<TD>". $row['director']." </TD>";
echo "<TD>". $row['type']." </TD>";
echo "<TD>". $row['discs']." </TD>";

if ( $row['review'] = 999999 ) {
echo "<TD>--</TD>";
}
else {
echo "<TD><a href=reviews.php?page=". $row['review']. ">x</a></TD>";
}

echo "<TD><a href=http://www.imdb.com/title/tt";. $row['imdbid']. ">x</a></TD>";
}
echo "</table>";

?>
Bedankt voor die eerste tip, ben ik wel van plan te gaan doen, maar ik ben nogal lui dus voorlopig laat ik het zo, als alles werkt zal ik het veranderen.

Ik heb het even geprobeerd, hij haalt het veld review binnen, maar geeft bij Adaptation. 999999 terwijl die juist een link zou moeten geven, in de database staat er namelijk 50 bij Adaptation. in het veld review.
Ik zou iniedergeval eens gewoon proberen:

echo $row['review'];

Over de oneindige lijst: weet ik zo ook niet wat dat is :) Je hebt maar 2 dingen in je lijst staan of niet?

[edit]
Over de oneinde lijst, denk ik dat de while nu door blijft lopen
[/edit]

Ik zou iniedergeval eens gewoon proberen:
echo $row['review'];

Doet 'ie gewoon heb 'm nu even bij Discs gezet, kijk maar.


Over de oneindige lijst: weet ik zo ook niet wat dat is :) Je hebt maar 2 dingen in je lijst staan of niet?

Ja, 2 rijen in de tabel.


[edit]
Over de oneinde lijst, denk ik dat de while nu door blijft lopen
[/edit]

En is dat op te lossen?
$title=mysql_result($result,$i,"title");
$director=mysql_result($result,$i,"director");
$type=mysql_result($result,$i,"type");
$discs=mysql_result($result,$i,"discs");
$review=mysql_result($result,$i,"review");
$imdbid=mysql_result($result,$i,"imdbid");

Dat is volgens mij ook overbodig....
Ik heb er nu dit van gemaakt.

<?php

$username="mconline";
$password="******";
$database="reviews";

mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die( "Unable to select database");

$vraag = "SELECT * FROM dvdcoll";
$result = mysql_query($vraag) or die('Error, query failed');

$num=mysql_numrows($result);

if ( $num > 0 ) {
echo "<table width=100% border=0>";
echo "<tr><td><strong>Title</strong></td>
<td><strong>Director(s)</strong></td>
<td><strong>Type</strong></td>
<td><strong>Discs</strong></td>
<td><strong>Review</strong></td>
<td><strong>IMDb</strong></tr>";

$nr="0";
while ($row = mysql_fetch_array($result)) {

echo "<TR><TD>". $row['title']." </TD>";
echo "<TD>". $row['director']." </TD>";
echo "<TD>". $row['type']." </TD>";
echo "<TD>". $row['discs']." </TD>";

if ( $row['review'] = 999999 ) {
echo "<TD>--</TD>";
}
else {
echo "<TD><a href=reviews.php?page=". $row['review']. ">--></a></TD>";
}

echo "<TD><a href=http://www.imdb.com/title/tt";. $row['imdbid']. ">--></a></TD>";
}
echo "</table>";
}

?>

Even een ifje erin gezet om te zorgen dat hij niet oneindig door gaat. Alles werkt nu dus behalve die link die hij bij Review moet maken...
Inderdaad die if was nodig :P

Nu moet je wel doen:

if ( $row['review'] == 999999 ) {
hmm. ja, lijkt logisch, nu gedaan, maar 't werkt nog niet... :( gek wordt je ervan.

Reageren