Kom ihåg mig?
Home Menu

Menu


Mysql sök fråga

Ämnesverktyg Visningsalternativ
Oläst 2010-08-31, 09:20 #1
Fia Fia är inte uppkopplad
Medlem
 
Reg.datum: May 2007
Inlägg: 87
Fia Fia är inte uppkopplad
Medlem
 
Reg.datum: May 2007
Inlägg: 87
Standard Mysql sök fråga

Jag försöker hämta information från 1 table basserat på sökning i 3 tabeller det går bra så långt att bara recepten med det sökord jag har angivit dyker upp och den visar också bara de recept där dela=1 men när det sen kommer till altId ignoreras det helt, den visar recepten från alla alternativ och inte bara det alternativ jag har angett. Vad gör jag för fel? och hur gör man om man har flera altId.Kan man lägga ihop resultatet från flera sökningar till en när man loppar igenom altId arrayen? Jag har gett mig in på lite överkurs här för mig men det är ju så man lär sig.

tblRecept:allmän receptinformation
tblIngrediens: InId, recId, Ingrediens
tblReceptalt: recaltId, recId, altId

SELECT DISTINCT tblRecept. *
FROM (
(
tblRecept
INNER JOIN tblReceptalt ON tblRecept.recId = tblReceptalt.recId)
INNER JOIN tblIngrediens ON tblRecept.recId = tblIngrediens.recId)
WHERE tblRecept.beskrivning LIKE '%".$sok."%'
OR tblIngrediens.ingrediens LIKE '%".$sok."%'
OR tblRecept.recnamn LIKE '%".$sok."%'
AND tblRecept.dela =1
AND tblReceptalt.altId ='".$val."'
ORDER BY tid DESC
LIMIT 0,16
Fia är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-08-31, 09:34 #2
Fia Fia är inte uppkopplad
Medlem
 
Reg.datum: May 2007
Inlägg: 87
Fia Fia är inte uppkopplad
Medlem
 
Reg.datum: May 2007
Inlägg: 87
Japp en parantes runt OR frågorna löste problemet. Jag som har slitit en hel dag..... Du hjälpe mig Johan S

Senast redigerad av Fia den 2010-08-31 klockan 10:08
Fia är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-08-31, 10:07 #3
Fia Fia är inte uppkopplad
Medlem
 
Reg.datum: May 2007
Inlägg: 87
Fia Fia är inte uppkopplad
Medlem
 
Reg.datum: May 2007
Inlägg: 87
Men den där när jag har fler altId? om jag kör
$dataloop = mysql_query($resultatloop);//resultatloop är frågan där uppe
och sen kör
while($row = mysql_fetch_array($dataloop)){
så går det bra men jag försökte att göra
$dataloop .= mysql_query($resultatloop);
så går det inte.
Jag försöker lägga ihop resultatet från flera frågor till en innan jag visar dem, någon som vet hur man gör det?
Fia är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-08-31, 10:26 #4
Johan_S Johan_S är inte uppkopplad
Medlem
 
Reg.datum: Aug 2006
Inlägg: 99
Johan_S Johan_S är inte uppkopplad
Medlem
 
Reg.datum: Aug 2006
Inlägg: 99
Citat:
Ursprungligen postat av Fia Visa inlägg
Japp en parantes runt OR frågorna löste problemet. Jag som har slitit en hel dag..... Du hjälpe mig Johan S
Då ber jag om ursäkt att jag raderade inlägget, jag stirrade mig blind på den senare frågeställningen! Hur söker du med altId, vad är dess funktion? Kanske är det aktuellt att gruppera på denna men jag känner inte till din metodik.
Johan_S är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-08-31, 10:40 #5
Fia Fia är inte uppkopplad
Medlem
 
Reg.datum: May 2007
Inlägg: 87
Fia Fia är inte uppkopplad
Medlem
 
Reg.datum: May 2007
Inlägg: 87
ett recept kan ha flera alternativ som billigt, snabbt, GI mm. jag vill att man ska kunna söka genom att ange ett sökord och välja inom vilka alternativ man vill söka inom. alltså vet man inte innan hur många alternativ som kommer att sökas igenom. alternativen kommer som en array när formen är skickad och jag loppar igenom den arrayen och kör en sql fråga för varje loop.
while (list ($key,$val) = @each ($alternativ)) {
Men som det är nu får jag ju bara ut resultatet från sista frågan efter som frågan skrivs över för varje loop. Jag skulle vilja lägga ihop resultaten från alla frågorna till en innan jag då loopar ut dem på sidan. Kanske jag tänker helt fel från början och borde gör på ett helt annat sätt men det var bara hur min tankebana fick ihop det.
Fia är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-08-31, 10:51 #6
Fia Fia är inte uppkopplad
Medlem
 
Reg.datum: May 2007
Inlägg: 87
Fia Fia är inte uppkopplad
Medlem
 
Reg.datum: May 2007
Inlägg: 87
Jag tror jag har kommit på det om jag bygger sql frågan i loopen i stället, ska prova det nu
Fia är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-08-31, 11:55 #7
Fia Fia är inte uppkopplad
Medlem
 
Reg.datum: May 2007
Inlägg: 87
Fia Fia är inte uppkopplad
Medlem
 
Reg.datum: May 2007
Inlägg: 87
Så här blev det

$resultatloop="SELECT DISTINCT tblRecept. *
FROM (
(
tblRecept
INNER JOIN tblReceptalt ON tblRecept.recId = tblReceptalt.recId)
INNER JOIN tblIngrediens ON tblRecept.recId = tblIngrediens.recId)
WHERE";

//****OM Aternativ är valda Loopa igenom
if(isset($alternativ)){
$checkKatId=0;
while (list ($key,$val) = @each ($alternativ)) {
//OM kategori
if($val<=10){
if ($checkKatId==0){
$resultatloop.=" (katId = '".$val."'";
$checkKatId=1;
}else{
$resultatloop.=" OR katId = '".$val."'";
}
//OM Alternativ
}
elseif($val>10){
if ($checkKatId==0){
$resultatloop.=" (tblReceptalt.altId ='".$val."'";
$checkAltId=1;
}else{
$resultatloop.=" AND tblReceptalt.altId ='".$val."'";
}//end if $checkKatId=0
}//end elseif
}//end while
$resultatloop.=") AND";
}//end Alternativ

$resultatloop.="
(
tblRecept.beskrivning LIKE '%".$sok."%'
OR tblRecept.recnamn LIKE '%".$sok."%'
OR tblIngrediens.ingrediens LIKE '%".$sok."%'
)
AND tblRecept.dela =1
ORDER BY tid DESC
LIMIT ".$start.",".$limit."";

//print $resultatloop;

$dataloop = mysql_query($resultatloop);
Fia är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 21:25.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017