Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Funkcja zwracająca maxymalną wartość, z dwóch tablic
Foxik
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 11.01.2004

Ostrzeżenie: (0%)
-----


Proszę i pomoc. Mam dwie tablice w Oracle, w których są pola z identyfikatorem zwiększającym się o 1 za kazym wpisem nowej pozycji. Chodzi o to aby pobierać jednocześnie maxymalną wartość z tych dwóch tablic, wybierać maxymalną wartość i zwiększać ją o jeden. Chciałabym aby te pola były unikatowe. A oto jak napisałam funkcję, którą nie wiem jak dokończyć:
[php:1:9306e7b584]<?php
function GetIdDK()
{
$NextIdKD = 0;

$connection = OCILogon ("bis", "bis", "zzz");
if ($connection == false)
{
echo OCIError($connection)."<BR>";
exit;
}

$query = "SELECT max(ID) FROM zz_kom";

$cursor = OCIParse ($connection, $query);
if ($cursor == false)
{
echo OCIError($cursor)."<BR>";
exit;
}

$result = OCIExecute ($cursor);
if ($result == false)
{
echo OCIError($cursor)."<BR>";
exit;
}
if (OCIFetchInto ($cursor, $values))
{
$NextIdKom = $values[0];
}


$query = "SELECT max(ID) FROM zz_dru";

$cursor = OCIParse ($connection, $query);
if ($cursor == false)
{
echo OCIError($cursor)."<BR>";
exit;
}

$result = OCIExecute ($cursor);
if ($result == false)
{
echo OCIError($cursor)."<BR>";
exit;
}

if (OCIFetchInto ($cursor, $values))
{
$NextIdDru = $values[0];
}
// teraz mam 2 dane z dwóch tabel jak wybrać tą maksymalną, aby powiększyć ją o jeden?
tu chyba musi być pętla while
OCILogoff ($connection);

return $NextIdKD;
}

?>[/php:1:9306e7b584]
bardzo proszę o pomoc, będę bardzo wdzięczna
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Seth
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 335
Pomógł: 6
Dołączył: 7.03.2002

Ostrzeżenie: (0%)
-----


Nie mam w tej chwili oracla aby to przetestowac ale sprawdz takie zaptanie:
[sql:1:bd97d16a2c]SELECT GREATEST(query1.max1, query2.max2) FROM
(SELECT MAX(pole1) as max1 FROM tabela1) query1,
(SELECT MAX(pole2) as max2 FROM tabela2) query2[/sql:1:bd97d16a2c]
Dzieki nie mu nie bedziesz musial pisac zadnych funckji w PHPie tylko odrazu uzyskasz najwieksza wartosc z dwoch najwiekszych (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Oczywyscie pole1, pole2, tabela1 i tabela2 sa do zmiany na odpowiednie wartosci (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Edit:
Wzasadzie to odrazu mozesz wrzucic ta wartosc do tabeli dajac INSERTa i nie musisz wsylac kolejnej kwerendy.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 7.10.2025 - 13:40