Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Funkcja zwracająca maxymalną wartość, z dwóch tablic
Foxik
post 14.01.2004, 15:30:55
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
Seth
post 14.01.2004, 15:35:43
Post #2





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

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


Nie wiem czy dorze zrozumialem Cie, wiec czy chodzi Ci o to aby stworzyc pola z automatycznym inkrementowaniem wartosci w obu tabelach ?
Czy o to aby jak juz maz te pola pobrac z nich aktualne maksymalne wartosci i wrzucic je do innej zmiennej/pola w tabeli ?
Go to the top of the page
+Quote Post
Foxik
post 14.01.2004, 15:40:12
Post #3





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

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


już odpowiadam, chodzi o pobranie już maksymalnych wartości z dwóch tabel, wybranie z nich ponownie maksymalnej i zainkrementowanie jej. Zmienną jaką otrzymam będę wpisywać do jednej z tych tabel w zależności co będę wprowadzać. Czy zamieszałam, czy coś się wyjaśniło?
Go to the top of the page
+Quote Post
menic
post 14.01.2004, 15:51:11
Post #4





Grupa: Zarejestrowani
Postów: 493
Pomógł: 0
Dołączył: 14.06.2003
Skąd: Tomaszów Lubelski/Rzeszów

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


Możesz np. posortować tablice. Wartości ułozą ci ssie rosnąco lub malejąca i pobrac max jako [php:1:2174947e07]<?php
$var = end($tablica)
?>[/php:1:2174947e07]


--------------------
Jak masz cos zrobic dobrze...
...To musisz zrobić to sam.

Uchwycić moment...
Go to the top of the page
+Quote Post
Seth
post 14.01.2004, 15:58:54
Post #5





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 smile.gif
Oczywyscie pole1, pole2, tabela1 i tabela2 sa do zmiany na odpowiednie wartosci 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
Foxik
post 14.01.2004, 16:19:50
Post #6





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

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


Bardzo dziękuję za podpowiedź, zadziałało. biggrin.gif
Go to the top of the page
+Quote Post
Seth
post 14.01.2004, 17:57:38
Post #7





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

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


php Poczatkujacy >> Bazy Danych
(Temat wyedytowany)
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 18.04.2024 - 03:35