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
Als ik het goed begrijp ga je straks 40 query's maken; voor elke rij 1?! :s

Begin nog eens bij het begin; ik begrijp het namelijk nog steeds niet.
"Top-40-items uit de database weergeven" en
"Nu wil ik graag dat alles goed word ingevoerd."

Wat wil je?? Wil je invoeren, updaten of tonen (/selecteren)?

Als je 1 record wilt selecteren gebruik je een WHERE in je SELECT-query.
Wil je informatie van meerdere records per record wilt weergeven: gebruik een while-lus om te echoƫn.

Waarom zou je mysql_fetch_array gebruiken en geen mysql_fetch_assoc?
Maar het klopt niet wat er staat.
Ik krijg hier allemaal dingen om op volgorde te zetten.
Maar ik moet zoiets hebben dat ik kan bepalen waar ik wat van wat id wil.
Zoals je al in mijn vorige post ziet.

Ik wil graag tonen.
Dus als ik bijvoorbeeld .$row1[song_image] doe en ergens anders .$row2[song_image] dat dan row1 bijvoorbeeld bij id 1 hoort en row2 bij id2 enzovoort
Obelix en Idefix op 07/08/2012 18:48:34

Begin nog eens bij het begin; ik begrijp het namelijk nog steeds niet.
"Top-40-items uit de database weergeven" en
"Nu wil ik graag dat alles goed word ingevoerd."

Wat wil je?? Wil je invoeren, updaten of tonen (/selecteren)?
Dit is wat jij wilt en vooral nodig hebt.
Kijk ik heb het niet zo gedaan dat je maar 1 ding tussen <div> en </div> hebt en dat zich 5 keer herhaalt met de id's op volgorde.
Ik heb gewoon 5 keer een ding tussen <div> en </div> en daartussenin staat ook nog eens een <div> en </div>.
Dus het makkelijkst is zoals ik al de hele tijd zeg maar niet weet hoe dit meot of kan:
row1 kijkt bij alles met id 1,
row2 kijkt bij alles met id 2,
enz.

Is dit mogelijk en zo ja hoe doe je dit dan?
Sorry dat ik het zeg, maar voor mijn gevoel heb je oogkleppen op.
Je hebt 1 specifiek iets voor ogen, waar je onvolledig/onduidelijk in bent (jij vindt misschien van niet, maar dan verwijs ik naar zinnen als "Top-40-items uit de database weergeven" en "Nu wil ik graag dat alles goed word ingevoerd." --> met elkaar in tegenspraak).

Je herhaalt daarna (bijna) alleen maar eerdere teksten, die kennelijk niet duidelijk zijn, maar wel nodig om je te kunnen helpen.

Daarnaast lijkt het er op dat je enige kennis ontbreekt. Sluit me aan bij de tip van Write Down

Zelfs die <div><div></div></div> kun je opnemen in een while-lus.

Maak lekker telkens een query aan en voer die uit. Vraag daarbij met een WHERE 1 item op en doe er mee wat je wilt. Als daarmee jouw vraag opgelost is...
Ja kijk nu komen we eindelijk ergens.
Ik ben ook nog maar een beginner in dingen uit je database halen.
Maar het is me gelukt. Het enigste wat ik hoefde te weten was hoe je dat where deed.
Wat jij mij net vertelde.
Dus nu heb ik dit gedaan:
$query = mysql_query("SELECT * FROM top40 WHERE id = '1'");
$query2 = mysql_query("SELECT * FROM top40 WHERE id = '2'");
$row = mysql_fetch_array($query) ;
$row2 = mysql_fetch_array($query2) ;

Erg bedankt iedereen.
Als iemand hier nog iets aan wil verbeteren of heeft toe te voegen mag dat altijd.

Groetjes

Dennis
Offtopic
Dat het traag vooruit gaat, dat ligt eerder aan jou dan aan de mensen hier op het forum. Je geeft het zelf al aan, je bent een beginner. Neem dan wat tutorials door. Dat is net het geweldige aan PHP, er is voldoende materiaal beschikbaar, zelfs in het Nederlands.

Ontopic

Bekijk zeker en vast eens de tutorial die ik in mijn vorig bericht al aangaf. Eveneens vind je op dezelfde website een algemene beginners handleiding voor PHP terug. Bekijk die zeker ook eens!

Verder hoop ik dat dit dan ook je enige queries zijn, dat je niet verder gaat tot 40. Maar toch, dit kan je perfect veel mooier oplossen. De oplossing die je zelf zeker al had moet kunnen vinden is de volgende:


$query = 'SELECT * FROM top40 WHERE id = 1 OR id = 2';


Ik raad je overigens aan is goed na te denken of je die wildcard (*) al dan niet nodig hebt. Wanneer je niet alle velden nodig hebt, dan gebruik je dit beter niet. Dan som je de verschillende velden op. Verder kan je beter single quotes gebruiken. Nu zitten er nog geen variabelen in je queries, maar eens je zo ver bent, zijn single quotes naar mijn mening een must. Overigens raad ik in het algemeen sowieso aan om single quotes te gebruiken (dus bij echo en dergelijke).

Verder zoals hierboven al is gezegd, kan je misschien beter mysql_fetch_assoc gebruiken. Als ik nog een stapje verder ga, kan je beter geen mysql_ functies gebruiken. Deze gaat verdwijnen in de volgende PHP versie. Google eens naar mysqli of naar PDO. Dit zijn mooie alternatieven. Mijn voorkeur gaat uit naar PDO, maar dit is ook meer object geƶrienteerd.

Ik gaf het verder al aan dat de query nog voor verbetering mogelijk is. Wat je eigenlijk wil is een beperkt aantal rijen selecteren. Daarvoor kan je de WHERE clausule gebruiken, maar er is iets beter... Namelijk de LIMIT clausule. Hierbij kan je aangeven dat je bijvoorbeeld de eerste 5 rijen wil selecteren. Of dat je de rijen vanaf rij 5 tot rij 100 wilt selecteren. (5, 95)


$query = 'SELECT * FROM top40 LIMIT 5'; //selecteer de eerste 5 records
$query = 'SELECT * FROM top40 LIMIT 5, 5'; //selecteer vanaf record 5, 5 rijen


Reageren