Gå til innhold

Får merkelig errorbeskjed ved bruk av UNION


Anbefalte innlegg

Heisann folkens :)

 

Jeg sitter her og programmerer en side som skal hente informasjon om raden med nåværende id, forrige id og neste id.. Måten jeg prøver å gjøre det på er slik:

 


$idtofind = $_GET['id'];

if (!is_numeric($idtofind) || $idtofind < 0)
{
   $idtofind = 3;
}

$findthree = "SELECT MAX(id) FROM euroclass_images WHERE id < $idtofind UNION 
              SELECT * FROM euroclass_images WHERE id = '$idtofind' UNION 
              SELECT MIN(id) FROM euroclass_images WHERE id > $idtofind";

$threeimgpages = mysql_query($findthree);

 

Dette burde jo være ganske straightforward, men tydeligvis ikke...

Jeg får erroren:

#1222 - The used SELECT statements have a different number of columns

 

Noen som vet hva som kan være problemet her?

 

På forhånd takk :)

Jon

Lenke til kommentar
Videoannonse
Annonse

Hint: Jeg regner med at du legger til håndtering av null dersom $idtofind er den største eller minste id?

 

Edit: Og hvis du vil ha det som tre kolonner isteden:

SELECT
 (SELECT max(id) 
   FROM euroclass_images AS i /* inner */
   WHERE i.id < o.id) AS less,
 o.id AS equal,
 (SELECT min(id)
   FROM euroclass_images AS i /* inner */
   WHERE i.id > o.id) AS greater
FROM
 euroclass_images AS o /* outer */
WHERE
 o.id = $idtofind

Endret av roac
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...