Ik ben een top40 site aan het maken en ik kom bij een probleem.
ik ben nog niet zo goed met databases maar ik wil daar alles uit kunnen halen.
Nu heb ik dit stukje code:
<?php
$query = mysql_query("SELECT * FROM top40");
$row = mysql_fetch_array($query);

echo'
<p style="margin-left: 10px; margin-top: 5px; color: #FFFFFF; font-size: 14px; "><b><?php echo "Paginas: [1]"; ?></b><a href="top40-2.php" style="color: #FFFFFF;"><?php echo " 2"; ?></a><a href="top40-3.php" style="color: #FFFFFF;"><?php echo " 3"; ?></a><a href="top40-4.php" style="color: #FFFFFF;"><?php echo " 4"; ?></a><a href="top40-5.php" style="color: #FFFFFF;"><?php echo " 5"; ?></a></p>
<div id="top40background" style="margin-top: 10px;">
<img style="position: relative; margin-top: 13px; margin-left: 30px;" src='.$row['song_image'].' />
<div id="djsays" style="position: absolute; width: 140px; height: 5px; margin-top: -16px; margin-left: 29px;"><b></b><marquee style="float: right; width: 138px; color: #E244F4; margin-top: -3px;">Nieuw - Nieuw - Nieuw - Nieuw - Nieuw - Nieuw - Nieuw - Nieuw - Nieuw - </marquee></div>
<p style="margin-left: 190px; margin-top: -150px; color: #FFFFFF; font-size: 25px; ">'.$row['song_artist'].'</p><br>
<p style="margin-left: 190px; margin-top: -40px; color: #E244F4; font-size: 20px; ">'.$row['song_name'].'</p><br>
<p><a style="margin-left: 195px; margin-top: -10px; color: #FFFFFF; font-size: 15px;" href='.$row['song_linkvideo'].' target="_blank">Bekijk Video</a><a style="margin-left: 23px; margin-top: -10px; color: #FFFFFF; font-size: 15px; " href='.$row['song_linkartist'].' target="_blank">Artiest Info</a></p>
<object type="application/x-shockwave-flash" width="299" height="25" style="margin-left: 190px; margin-top: 0px;" data='.$row['song_songplayer'].'><param name="movie" value='.$row['song_songplayer'].' /><param name="wmode" value="transparent" /></object>
</div>

<div id="top40background2">
<img style="position: relative; margin-top: 13px; margin-left: 30px;" src="../Public/Images/BigAlbums/calvinharris_wellbecomingback.png" />
<div id="djsays" style="position: absolute; width: 140px; height: 5px; margin-top: -16px; margin-left: 29px;"><b></b><marquee style="float: right; width: 138px; color: #E244F4; margin-top: -3px;">Nieuw - Nieuw - Nieuw - Nieuw - Nieuw - Nieuw - Nieuw - Nieuw - Nieuw - </marquee></div>
<p style="margin-left: 190px; margin-top: -150px; color: #FFFFFF; font-size: 25px; " >'.$row['song_artist'].'</p><br>
<p style="margin-left: 190px; margin-top: -40px; color: #E244F4; font-size: 20px; " >'.$row['song_name'].'</p><br>
'
?>


Nu heb ik een tabel aangemaakt met id = 1 en dan de informatie.
Daar haalt hij alles uit. Maar ik nog een kolom aan met id = 2 dan krijg
ik bij het 2de gedeelte toch dezelfde informatie van id 1 en niet van id 2.
hoe kan ik het zo maken dat de ene .row kijkt bij id 1 en de andere .row kijkt bij id 2 enzo.
alvast bedankt
Je moet eens kijken naar:

<?php
while($row = mysql_fetch_assoc($query))
?>
Daarmee ga je de rijen af.
Met kolom bedoel je waarschijnlijk rij? Want anders doe je het niet goed.

Ook moet je je CSS uit de HTML halen.
En ga eens normaal inspringen. Dat scheelt 90% van de fouten en moeilijkheid.

<marquee> is geen geldige HTML meer.... gebruik het niet!

Gebruik in je html dubbele haakjes om waarden:
<img src="plaatje.jpg">

Opmaak anno 2012 gebeurt via css en niet meer inline.
hoe moet ik het dan doen als ik het zo heb lopen:
op pagina top40.php is het id 1 t/m 5.
en op pagina top40-2.php is het id 6 t/m 10 enzo?

en wat meot ik dan inplaats van <marque> doen?
Dit is jouw code, maar dan zonder inline-css en zonder onnodige HTML-tags.
Hiermee zou je verder moeten gaan:

<?php
$query = mysql_query("SELECT song_image, song_artist, song_name, song_songplayer FROM top40 ORDER BY id LIMIT 0, 2 DESC");
$info = mysql_fetch_array($query);
$rij1 = $info[0];
$rij2 = $info[1];

echo '
	<p>
		<strong>Paginas: [1]</strong>
		<a href="top40-2.php">2</a>
		<a href="top40-3.php">3</a>
		<a href="top40-4.php">4</a>
		<a href="top40-5.php">5</a>
	</p>
	
	<div id="top40background">
		<img src="'.$rij1['song_image'].'">
		<marquee>Nieuw - Nieuw - Nieuw - Nieuw - Nieuw - Nieuw - Nieuw - Nieuw - Nieuw - </marquee>
		<p>'.$rij1['song_artist'].'</p>
		<p>'.$rij1['song_name'].'</p>
		<p>
			<a href="'.$rij1['song_linkvideo'].' >Bekijk Video</a>
			<a href='.$rij1['song_linkartist'].' >Artiest Info</a>
		</p>
		<object type="application/x-shockwave-flash" data='.$rij1['song_songplayer'].'>
			<param name="movie" value='.$rij1['song_songplayer'].' />
			<param name="wmode" value="transparent" />
		</object>
	</div>

	<div id="top40background2">
		<img src="../Public/Images/BigAlbums/calvinharris_wellbecomingback.png">
		<div id="djsays">
			<marquee>Nieuw - Nieuw - Nieuw - Nieuw - Nieuw - Nieuw - Nieuw - Nieuw - Nieuw - </marquee>
		</div>
	<p>'.$rij2['song_artist'].'</p>
	<p>'.$rij2['song_name'].'</p>
';
?>



Dan nu de vraag.... je haalt alles op, maar wilt er maar 1 tonen?
Hoeveel rijen zijn het?
Aha...
Dan moet je met LIMIT werken in je SQL-query.
Ik heb net(10 sec geleden) mijn script hierboven gewijzigd.
Daarin staat al een limit.

Met de GET-parameters kan je nu opgeven hoeveel je selecteerd.
En wil je voor elke rij (elke hit uit de top 40) hetzelfde resultaat? Want dan doen we het anders.
Nu geeft hij maar 2 rijen (en die zijn verschillend).
nee er moeten er 5 op elke pagina
Zoiets had ik al verwacht.
Uit de losse pols, dus er kunnen best fouten in zitten:
<?php


// verkrijg pagina-nummer, niet opgegeven = 1
$start_page = isset($_GET['page']) ? intval($_GET['page'] : 1;

// bereken start-id
$aantal_rijen = 5;
$start_id = (($start_page * $aantal_rijen ) - 1);

// maak de query
$query = "
SELECT song_image, song_artist, song_name, song_songplayer
FROM top40
ORDER BY rang
LIMIT ".$start_id.", ".$aantal_rijen." DESC";

// voer query uit
$query = mysql_query($query);

// kijk of dat gelukt is
if($query === false)
{
echo 'Query is mislukt: '.$query;
}
else
{
// menuutje
echo '<nav>';
for($i = 1; $i < (40/$aantal_rijen); $i+$aantal_rijen)
{
$class = ($start_page == $i) ? 'actief' : 'gewoon';
echo '<a class="'.$class.'" href="top40.php?page='.$i.'">'.$i.'</a>';
}
echo '</nav>';

// afgaan van elk resultaat (zijn er maximaal $aantal_rijen )
while($row = mysql_fetch_assoc($query))
{
echo '
<div class="top40background">
<img src="'.$row['song_image'].'">
<marquee>Nieuw - Nieuw - Nieuw - Nieuw - Nieuw - Nieuw - Nieuw - Nieuw - Nieuw - </marquee>
<p>'.$row['song_artist'].'</p>
<p>'.$row['song_name'].'</p>
<p>
<a href="'.$row['song_linkvideo'].'>Bekijk Video</a>
<a href='.$row['song_linkartist'].'>Artiest Info</a>
</p>
<object type="application/x-shockwave-flash" data='.$row['song_songplayer'].'>
<param name="movie" value='.$row['song_songplayer'].' />
<param name="wmode" value="transparent" />
</object>
</div>
';
}
?>
Let op dat een ID altijd uniek moet zijn.
Let op de netheid van je HTML én PHP.
Extra controle's moeten er nog wel in. Maar dit is (waarschijnlijk) wel werkbaar.

[size=xsmall]Toevoeging op 04/08/2012 16:52:55:[/size]

En wil je meer lezen: http://www.phphulp.nl/php/forum/topic/paginanavigatie-werkt-niet/85993/last/

Dat is gewoon exact hetgeen je zoekt.
Eddy Erkelens op 04/08/2012 16:48:31

Dat is gewoon exact hetgeen je zoekt.

En het was niet eens een vacature ;-)

Reageren