Miten saan kahden, eri palvelimilla olevien tietokantojen tiedoista yhdisteltyä kyselyn ?
Jos haen toiselta palvelimelta tietoa:
Kysely1
SELECT * FROM TAULU1 WHERE KENTTÄ1 = 'JOTAIN' ... $jokin = $row["JOTAIN"];
ja sitten haluan hakea toiselta palvelimelta:
Kysely2
SELECT * FROM TAULU2 WHERE KENTTÄ2 = '$jokin' ...
Sain tämän toimimaan niin, että hakeekin tuolta toiselta palvelimelta
tuon kentän $jokin mukaisesti, mutta hakee vain tuon viimeisimmän
rivin mukaan, mikä tuli kyselyssä 1
Mod. lisäsi kooditagit
$jotkin[] = '\'' . addslashes($row["JOTAIN"], $db2) . '\'';
Tuolla sain toimimaan mysql ja mssql palvelimella, kiitos tästä.
Nyt painin taas seuraavan ongelman kimpussa, kun nyt on
saatu nuo kyselyt tehtyä, niin pitäisi sitten vielä tehdäkin jotain ..
Eli pitäisi pystyä jotenkin hyödyntämään molempien kyselyjen palauttamia
tietoja, esim. seuraavasti:
Kyselystä1 palautui tiedot Koodi, Tuote, Maara, Hinta Kyselystä2 palautui tiedot Koodi, Myyja, Varasto, jne.
Ja näistä sitten pitäisi parsia jotenkin tuon
koodin ollessa se avain, tapahtuma, joka etenee järjestyksessä ..
Tyhmiä kun kyselee ...
Kun lähetän POST:ssa arvon 123456-1234,
niin miksi tässä käy niin, että kun haen tuota arvoa,
niin haku tulostuu 122222 ?
Eli tuosta tulee vähennyslasku ?
SQL-kyselyssä? Et ole ympäröinyt niitä heittomerkeillä?
Chiman kirjoitti:
SQL-kyselyssä? Et ole ympäröinyt niitä heittomerkeillä?
hmmm...
On kenttä, johon syötetään HETU ja se pitäisi saada tallennettua
mysql- kantaan. Jostain syystä, HETUn sisältäessä '-' merkin,
kantaan tallentuu tulos, joka on tuon HETUn vähennyslasku ?
Kannassa kentän tyyppi on VARCHAR, lienekö tuo oikein, ja miten
mahtaa toimia, jos '-' merkin tilalla onkin jokin kirjain ..
Toinen tapaus:
On kenttä, mihin syötetään numeroita ja mahdollisesti kirjaimiakin,
mutta pitäisi kuitenkin poistaa nuo kirjaimet ja mahdolliset välilyönnitkin
tuosta, ennen kuin sekin tallennetaan tuonne mysql- kantaan ..
geggo74 kirjoitti:
On kenttä, johon syötetään HETU ja se pitäisi saada tallennettua mysql- kantaan. Jostain syystä, HETUn sisältäessä '-' merkin,
kantaan tallentuu tulos, joka on tuon HETUn vähennyslasku ?
Kannassa kentän tyyppi on VARCHAR, lienekö tuo oikein, ja miten mahtaa toimia, jos '-' merkin tilalla onkin jokin kirjain ..
Siis, jos kerrot kannalle, että haluat tallettaa tekstiä, niin aloitat sen '-merkillä ja lopetat toiseen '-merkkiin. Jos taas et laita heittomerkkiä, niin kerrot kannalle, että nytpä annan sinulle lukuja. Kanta on niin älykäs, että se osaa tehdä luvuille jopa laskutoimituksia. Jos taas laitat väliin vaikka A, niin se heittää virheilmoituksen.
SELECT '123-100' => '123-100'
SELECT 123-100 => 23
SELECT (123-100)*50 => 1150
SELECT 123A100 => Virhe
geggo74 kirjoitti:
On kenttä, mihin syötetään numeroita ja mahdollisesti kirjaimiakin, mutta pitäisi kuitenkin poistaa nuo kirjaimet ja mahdolliset välilyönnitkin tuosta, ennen kuin sekin tallennetaan tuonne mysql- kantaan ..
$PelkätNumerot = preg_replace("[^0-9]", "", $Syöte);
P.S: Viestejä kirjoittaessa ei rivivaihtoja tarvitse itse lisätä tekstin väliin.
Tuo HETU- osuus meni jakeluun ja sain sen toimimaankin, kiitos siitä
$PelkätNumerot herjaa : "No ending delimiter '^' found",
enkä ymmärrä, mistä siinä on kyse ?
Aika hassua, pitäisi kai testata noi ennen kuin postaa. Unohdin näköjään // -merkit.
<?php $PelkätNumerot = preg_replace('/[^0-9]/', '', $Syöte); //tai lyhyemmin $PelkätNumerot = preg_replace('/\D/', '', $Syöte); ?>
Siis ideahan noissa on, että korvataan kaikki merkit, jotka ei ole väliltä 0-9 tyhjällä. Eli säännöllisissä lausekkeissa (regular expressions) \D tarkoittaa kaikki muita merkkejä paitsi numeroita (0-9) eli käytännössä samaa kuin [^0-9].
$PelkätNumerot = preg_replace("/\D/", "", $Syöte);
Tuolla kun toteutin tuon, niin esim. syötteestä: 32 000 plpasdfajfsaf
tulee kantaan luku 32 ?
No sillepä en varsinaisesti voi mitään. Tuon komennon jälkeen kuitenkin $PelkätNumerot sisältäisi arvon '32000', eli jos käyttämäsi kanta tallentaa 32000 muodossa 32, niin...
Itse lähtisin varmaan debuggaamaan ongelmaa katsomalla, mikä se kantaan menevä kysely tarkalleen on. Ja sitten voisi vilkuilla miten ko. kenttä kantaan on määritelty. varchar(2) saattaisi tuottaa kuvaamasi tilanteen.
Vika löytyi, mutta ei ollut tuolla kannassa, oli omissa koodin pätkissä ..
Iso kiitos sinulle opastamisesta ! Ehkä tässä vanhakin vielä jotain oppii ..
Aihe on jo aika vanha, joten et voi enää vastata siihen.