Miten saan käytettyä useita haettuja muuttujiksi haettuja table sql-kyselyissä, kun väliin tarvittaisiin AND:ia?
Esim: SELECT henkilö FROM perussivut WHERE henkilö != '$henkp'..... Ei tietenkään toimi, koska $henkp:ssä on useita henkilöitä. Miten saan tehtyä vastaavan kyselyn fetchatuilla tablen arvoilla?
Hakukoodini on tällainen:
if(!$kyselyala = mysql_query("SELECT * FROM henkilöt WHERE layer = 2 AND tyyppi = 'toimistohenkilö'"))
{
print "Haku epäonnistui. Virhe:" . mysql_error();
}else{
while ($row = mysql_fetch_array($kyselyala)) {
$henkp = $row['henk'];
}
}
fetch ja useiden muuttujien tulostaminen sql-kyselyyn
8
519
Vastaukset 8
- php-miäs
Eli siis.. yrität ensiksi hakea yhdellä kyselyllä listaa henkilöistä ja sitten tehdä toisen kyselyn, johon nämä henkilöt ei tule mukaan?
Todennäköisesti järkevintähän olisi tehdä tuo yhdellä kyselyllä. Tuon kyselyn tekeminen vaatisikin sitten hieman ajattelua ja todennäköisesti yritysta ja erehdystä sitäkin enemmän. Todennäköisesti onnistuu LEFT tai RIGHT JOIN:lla.
Pikaratkaisuna toimisi kuitenkin varmaan joku seuraavan tapainen:
if(!$kyselyala = mysql_query("SELECT * FROM henkilöt WHERE layer = 2 AND tyyppi = 'toimistohenkilö'"))
{
print "Haku epäonnistui. Virhe:" . mysql_error();
}else{
while ($row = mysql_fetch_array($kyselyala)) {
$henkp[] = $row['ID'];
}
$query = "SELECT henkilö FROM perussivut WHERE henkilö NOT IN (";
foreach ($henkp as $arvo)
{
if ($lisaaPilkku) $query .= ", ";
$query .= "'" . $arvo . "'";
$lisaaPilkku = true;
}
$query .= ") ORDER BY sarake";
echo $query;
}
Jos kaikki meni oikein, tuosta tulee vastauksena jotain tyyliin: SELECT henkilö FROM perussivut WHERE henkilö NOT IN ('matti', 'seppo', 'timo') ORDER BY sarake- Tomppa5435
Kiitos. Juuri tätä vastausta etsin.
- Tomppa5435
Tomppa5435 kirjoitti:
Kiitos. Juuri tätä vastausta etsin.
Minulla on tietoa useammissa tableissa. Onko kysleyä mahdollista muuttaa niin, että siihen saa haettua tietoa useammasta tablesta?
Tällä hetkellä saan tällaisen virheilmoituksen:
Column 'sivu' in where clause is ambiguous
- fgsdfgdsfg
select henkilö from perussivut where henkilö not in (select henk from henkilöt where layer = 2 and tyyppi = 'toimistohenkilö')
- hmmm?
Toimivatko sub-queryt mysql:ssä?
- gffgf
hmmm? kirjoitti:
Toimivatko sub-queryt mysql:ssä?
jep
- 122121
gffgf kirjoitti:
jep
Eipä toimi ainakaan omassa mysql-versiossani.
- 90++0+0
122121 kirjoitti:
Eipä toimi ainakaan omassa mysql-versiossani.
Kannattaisiko siis ehkä päivittää
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Miksi vanhusraiskaajaa ei ole palautettu?
Ukkola kysyy Rantaselta, vaikka perussuomalaiset ovat olleet hallituksessa kolme ja puolivuotta. Rantasen vastaus on "3681631- 1141246
- 1291191
- 1401030
Katri Helena rikkoi hiljaisuuden dramaattisella uutisella: "Elossa ja ilossa ollaan"
Katri Helena on sinivalkoinen ääni. Hänen klassikkohittinsä ovat tärkeä osa suomalaista kansanperintöä. Katri veti jääh25924- 111842
- 46563
Nanna hakkasi Martinan aivot tuusan nuuskaksi!!!
Ihme jos Martina pystyy muodostaa järkeviä lauseita tämän nyrkkisateen jälkeen. Ottelupalkkio tuli, tajunta meni.138531Vaikea löytää samantyylistä miestä
Nyt on pakko avautua. Onko ketään muuta jonka on yksinkertaisesti todella vaikeaa löytää samanhenkistä kumppania kuin i112527- 18500