Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[MYSQL] Select max met WHERE conditie.

Pagina: 1
Acties:
  • 1.199 views sinds 30-01-2008
  • Reageer

  • poepkop
  • Registratie: Juni 2005
  • Laatst online: 19-04-2021
Ik ben op het moment bezig met een fotoboek voor mijn vereniging te bouwen op basis van mysql. Ik wil voor ieder team een fotoboek aanbieden, maar ik wil ook dat je alle foto's in het fotoboek kan bekijken van alle teams. Tot zover geen problemen, tot ik de volgende en vorige knop ging maken...

Dit is mijn code voor de volgende knop:

code:
1
2
3
4
5
6
7
8
9
10
11
<?
   // maximale id bepalen
   $resultmax = mysql_query('SELECT MAX( id ) AS id FROM fotoboek');
   $max = mysql_fetch_array($resultmax);

if ($foto_id < $max['id']){
    $resultvolgende = mysql_query("SELECT * FROM fotoboek WHERE id > $foto_id ORDER BY id ASC    LIMIT 1");
    $volgende = mysql_fetch_array($resultvolgende);
?>
<a href="index.php?page=fotoboek_foto&amp;foto_id=<?=$volgende['id']?>">volgende  foto<br /></a>
<? } ?>


Alleen het probleem is dat de volgende en vorige knop nu voor het gehele fotoboek geld en niet voor het team. Dus ik dacht slim te zijn en gewoon simpel WHERE team = heren5 toe te voegen, maar dan krijg ik dus een error. zo dus:
code:
1
$resultmax = mysql_query('SELECT MAX( id ) AS id FROM fotoboek WHERE team = heren5');

Eerlijk gezegt ben ik even op en weet ik het echt niet meer, ik ben pas een jaartje bezig met php dus ik heb ook niet zo veel ervaring. Kan iemand mij helpen?

Athlon X8 3,6ghz 15000+ | 4 x 4GB PC 21000 | 2 x 4TB... < das pas patsen :-)


  • GlowMouse
  • Registratie: November 2002
  • Niet online
Bij de query
SQL:
1
SELECT * FROM fotoboek WHERE team = heren5

krijg je waarschijnlijk ook al een foutmelding. Dat komt omdat heren5 waarschijnlijk geen kolomnaam is, terwijl je hem wel als zodanig gebruikt. Wil je letterlijk 'heren5' als team hebben, moet je dat tussen quotes zetten.

  • poepkop
  • Registratie: Juni 2005
  • Laatst online: 19-04-2021
Dat had ik dus al geprobeerd:
code:
1
mysql_query('SELECT MAX( id ) AS id FROM fotoboek WHERE team = 'heren5'')


Maar gaf een syntax error... Maar ik ben er achter wat het probleem is, ik heb dus single quotes gebruikt ipv double quotes, (' ipv (" dus. Erg stom van me, maar ik heb het scriptje ook maar van iemand anders overgenomen waardoor het totaal niet opgevallen was.

Toch begrijp ik iets niet, soms gebruik ik namelijk WHERE team = heren5 zonder de quotes en dan werkt het wel!? Maar dat is aan mezelf om uit te vinden...

In ieder geval bedankt!

Athlon X8 3,6ghz 15000+ | 4 x 4GB PC 21000 | 2 x 4TB... < das pas patsen :-)


  • GlowMouse
  • Registratie: November 2002
  • Niet online
poepkop schreef op woensdag 16 januari 2008 @ 19:13:
Dat had ik dus al geprobeerd:
code:
1
mysql_query('SELECT MAX( id ) AS id FROM fotoboek WHERE team = 'heren5'')


Maar gaf een syntax error... Maar ik ben er achter wat het probleem is, ik heb dus single quotes gebruikt ipv double quotes, (' ipv (" dus. Erg stom van me, maar ik heb het scriptje ook maar van iemand anders overgenomen waardoor het totaal niet opgevallen was.
Dat heeft er meer mee te maken dat je niet goed met PHP overweg kunt dan dat MySQL problemen oplevert. Ik kan je aanraden dit stukje eens door te lezen.

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
poepkop schreef op woensdag 16 januari 2008 @ 19:13:
... Maar ik ben er achter wat het probleem is, ik heb dus single quotes gebruikt ipv double quotes, (' ipv (" dus. Erg stom van me, maar ik heb het scriptje ook maar van iemand anders overgenomen waardoor het totaal niet opgevallen was.
Slecht excuus, met een editor met syntax highlighting spot je een dergelijke fout direct. :)
Dat geldt tevens voor code op het fourm, mits je tenminste [php]...[/php] tags gebruikt zodat de PHP highlighter werkt. \o/

En het lijkt mij dat je die where clause ook aan die andere query wil toevoegen. ;) En als je alleen maar de `id` kolom gebruikt, is het netter om alleen die kolom te selecteren...

[ Voor 13% gewijzigd door Voutloos op 17-01-2008 08:03 ]

{signature}