webForumDet fria alternativet

plocka ut skillnader

5 svar · 417 visningar · startad av nanne

nanneMedlem sedan dec. 19991 047 inlägg
#1

Jag har två databaser med samma uppbyggnad.

De båda ska ha samma innehåll men nu så fattas c:a 3000poster i den ena databasen.

Hur ska SQLen se ut?

------------------
Fatal Error: Call to undefined function:
brain() in ./self.php on line 1

nanne.net

woodiMedlem sedan feb. 2000670 inlägg
#2

Två olika sätt ser jag som en lösning:

1. Dumpa den kompletta tabellen, och ersätt den inkompletta med den kompletta.
2. Loppa igenom den kompletta tabellen och på så sätt se vilka poster som inte finns i den andra tabellen.

$res=mysql_query("select * from kompletttabell");
while($row=mysql_fetch_array($res, MYSQL_ASSOC)){
$res2=mysql_query("select * from inkompletttabell where fält1=$row[fält2]");
if(mysql_numrows($res2)==0){
updatera den inkompletta databasen..
}
}

------------------
woodi

Svenska FF1
www.johan-skog.nu

[Redigerat av woodi den 20 okt 2000]

nanneMedlem sedan dec. 19991 047 inlägg
#3

Okej... så det går alltså inte med ett enda SQL anrop. Damn!

------------------
Fatal Error: Call to undefined function:
brain() in ./self.php on line 1

nanne.net

woodiMedlem sedan feb. 2000670 inlägg
#4

Inte vad jag vet iaf.. Det Du vill åstadkomma är ju en select och insert i samma SQL-sats, vilket är omöjligt.

------------------
woodi

Svenska FF1
www.johan-skog.nu

RobbanMedlem sedan dec. 19992 272 inlägg
#5

Om detta är en engånsföreteelse är det nog smidigast att dumpa den ena, och läsa in i den andra. Som woodi skriver.

Om det är ett konstant problem, d.v.s. att du har två databaser som hela tiden skall vara synkronsierade med varandra, så har MySQL numera inbyggt stöd för detta.

------------------
Robban < robban@lipogram.com >

nanneMedlem sedan dec. 19991 047 inlägg
#6

Kanske beskrev problemet lite otydligt.

Har en databas med massa användare där lösenordet är krypterat.

I den andra databasen så finns det en identisk tabell men där lagras lösenorden i klartext (för att kunna skicka ut ifall nån har glömt)

Tyvärr så finns det användare som inte har sitt lösen i klartext eftersom de lages in innan jag bygde det systemet och det är dom jag vill plocka ut.

Det är helsjukt! När jag jämnför tabellerna så får jag att c:a 3000 personer inte har lösen i klartext (när jag gör en vanlig count(*) på båda tabellerna).
Men när jag gör en funktion som woodi beskrev så får jag 6000 träffar!

helmysko....

------------------
Fatal Error: Call to undefined function:
brain() in ./self.php on line 1

nanne.net

Genererad på 379 ms · cache AV · v20260730165559-full.f96bc7eb