Avatar billede si. Nybegynder
18. oktober 2007 - 08:33 Der er 9 kommentarer og
1 løsning

Hente fra 3 felter

Jeg har en opskrift side, som jeg prøver at ændre, så man kan tilknytte opskrifter til 3 kategorier.

Før var der i opskrift tabellen, en felt der hed categoryid - jeg har nu tilføjet 2 felter, categoryid1 og categoryid2.

Problemer er nu, at dataerne bliver lagt rigtig ind, i de forskellige tabeller - jeg har bare problemer med at få dem ud igen.

Her er scriptet som virker... til at hente fra categoryid
<?php

            $sql = "select * from " . CATEGORIES . " where maincategoryid = $maincategoryid order by category";

            $result = mysql_query($sql ,$db);

            if ($myrow = mysql_fetch_array($result)) {

                do {

                  $cat = $myrow["categoryid"];

                  $sql2 = "select count(recipeid) from " . RECIPES . " where categoryid = $cat and status = 'L'";
                  $result2 = mysql_query($sql2 ,$db);
                  $row = mysql_fetch_row($result2);
                  $recipecount = $row[0];

                  printf("<a href=list.php?pagenum=0&categoryid=%s><br><font face='Arial, Helvetica, sans-serif' size=3>%s (%s)</font></a>", $myrow["categoryid"], $myrow["category"], $recipecount);

                } while ($myrow = mysql_fetch_array($result));

            }

          ?>
-----------------------

Jeg har så makket lidt med denne linie
$sql2 = "select count(recipeid) from " . RECIPES . " where categoryid = $cat and status = 'L'";

Jeg har prøvet med and og or, men jeg må bare erkend mine evner åbenbart er mangelfuld.

Spørgsmålet er altså:
Hvordan skal scriptet være, for at man kan sige følgende.
categoryid = $cat and status = 'L'";
categoryid1 = $cat and status = 'L'";
categoryid2 = $cat and status = 'L'";

På forhånd tak!
Avatar billede michael_stim Ekspert
18. oktober 2007 - 08:36 #1
WHERE (categoryid = $cat AND status = 'L') OR (categoryid1 = $cat AND status = 'L') OR (categoryid2 = $cat AND status = 'L')

Er det sådan her du mener?
Avatar billede nielle Nybegynder
18. oktober 2007 - 08:47 #2
... ville nu skrive den på formen:

WHERE (categoryid = $cat OR categoryid1 = $cat OR categoryid2 = $cat) AND status = 'L'

Men det er et spørgsmål om individuel smag :^)
Avatar billede jakobdo Ekspert
18. oktober 2007 - 08:49 #3
Det kunne også forkortet lidt til:
WHERE status = 'L' AND (categoryid = $cat OR categoryid1 = $cat OR categoryid2 = $cat)
Avatar billede si. Nybegynder
18. oktober 2007 - 08:51 #4
Jeg vil have at den tjekker i de 3 felter om de har en id, som passer til.. $cat and status = 'L'

Jeg får nu følgende fejlmeldning:
Parse error: syntax error, unexpected T_STRING

Efter jeg satte din forslag sådant ind:

$sql2 = "select count(recipeid) from " . RECIPES .  "WHERE (categoryid = $cat AND status = 'L') OR (categoryid1 = $cat AND status = 'L') OR (categoryid2 = $cat AND status = 'L');
                  $result2 = mysql_query($sql2 ,$db);
                  $row = mysql_fetch_row($result2);
                  $recipecount = $row[0];
Avatar billede si. Nybegynder
18. oktober 2007 - 08:59 #5
I er sgu bare for seje, jeg endte med at bruge nielle's forslag.
At min første forsøg med michael stim's forslag fejlede, er garantert fordi jeg indsatte det forkert!

Læg alle 3 en svar.

Mage tak for hjælpen!
Avatar billede michael_stim Ekspert
18. oktober 2007 - 09:03 #6
Jeg samler ikke på point og jakobdo's og nielle er identiske (og bedre end mit ;o)).

PS. Du manglede et mellemrum mellem din variabel og WHERE i mit forslag.
Avatar billede jakobdo Ekspert
18. oktober 2007 - 09:07 #7
nielle var først, så han får pointene.
Avatar billede nielle Nybegynder
18. oktober 2007 - 09:07 #8
Egentlig sammenskrev jeg bare michael_stim's bud til en kortere form, så jeg springer over på denne her. Smid du bare selv et svar og tag dine point tilbage. Men tak for tilbudet. :^)
Avatar billede si. Nybegynder
18. oktober 2007 - 09:47 #9
Nu hvor jeg har udlovet 100 point, så ville jeg egentligt helst af med dem.
I forhold til min spørgelyst, så står de bare og hober sig op..

Men hvis ingen af jer lægger et svar, så gør jeg det selv i morgen.

Endnu en gang, mange tak til jer alle!
Avatar billede si. Nybegynder
19. oktober 2007 - 05:47 #10
Lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester