Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Porównanie danych z dwóch tabel php (warunek IF)...?
artvip
post
Post #1





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 15.02.2009

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


Mam sobie kod:

<?php
$conn = mysql_connect("xxx","xxx","xxx");
mysql_select_db("xxx");
if (mysql_errno()) {
echo mysql_error() . ": " . mysql_errno() . "<br>n";
exit;
}
$query = "SELECT user FROM matryca group by user";

$result = mysql_query($query) or die(mysql_error());
$num_rows = mysql_num_rows($result);

for ($i=0; $i<$num_rows; $i++) {

$wiersz = mysql_fetch_array($result);

echo "<br />";
echo "<td>".$wiersz["user"]."</td>";
echo "</td>";

}

$query = "SELECT usersl, logi, badi, inne FROM Dane order by usersl";

$result = mysql_query($query) or die(mysql_error());
$num_rows = mysql_num_rows($result);

for ($i=0; $i<$num_rows; $i++) {

$wiersz = mysql_fetch_array($result);


echo "<td>".$wiersz["usersl"]."</td>";
echo "</td>";

}
?>

Chciałbym w jakiś sposób porównać wynik z query 1 tak aby do każdego unikalnego "User" odnalazł pasujące dane z query 2 i wyświetlił dane w postaci identycznych rekordów. Czyli dla User z bazy 1 znalazłem "jakieś" rekordy które zawierają sie w query 2 dla dla User z query 1. Podobne rozwiązanie zrobiłem MYSQL ale interesuje mnie rozwiązanie w PHP.

Kompletnie nie wiem jak się za to zabrać (IMG:style_emoticons/default/sad.gif) Męczyłem się już array, array_diff a może wystarczy zwykłe if ? Pomoże ktoś?

Dzięki
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




W zależności od struktury danych jedynie inaczej byś na pętlach używał wyszukiwania elementów w drugiej tablicy.
W najwyższej pętli byś wybierał klucz wyszukiwania. Potem używał szukajki w drugiej tablicy i zwracał pewne wyniki, które obrabiałbyś. Potem kolejny klucz szukania i tak w kółko...

EDIT: Tutaj miałbyś szukanie po user z query1 i wpisy w query2 dla kolumny usersl zwykłym porównaniem
  1. foreach( $query1 AS $user ) {
  2. foreach( $query2 AS $logs) {
  3. if($user['user'] == $logs['usersl']) {
  4. //róbta co chceta
  5. }
  6. }
  7. }
No chyba, że znasz dokładnie klucz nazwy usera szukanego to najbardziej zewnętrzny foreach leci i tylko wewnętrzny jest w użyciu. Oczywiście najszybsza implementacja polega na optymalizacji. Jakiej? Userowie w $query1 są różni a tabela $query 2 w każdym przebiegu nie tylko szuka ale w przypadku znalezienia pasującego rekordu, po wypisaniu danych na ekran czy do jakiegokolwiek strumienia, usuwa go (IMG:style_emoticons/default/smile.gif) Każdy więc przebieg pętli daje nam szansę na skrócenie kolejnych.

Ten post edytował thek 25.11.2009, 14:19:18
Go to the top of the page
+Quote Post

Posty w temacie
- artvip   [PHP]Porównanie danych z dwóch tabel php (warunek IF)...?   25.11.2009, 11:35:43
- - korro   zacznij od zapoznania się z: http://www.php.net/ma...   25.11.2009, 13:57:48
- - thek   W zależności od struktury danych jedynie inaczej b...   25.11.2009, 14:06:52
- - artvip   [font="Times New Roman"][size="3...   25.11.2009, 19:45:59
- - thek   To zerknij sobie na spokojnie i pomyśl gdzie robis...   25.11.2009, 21:16:50
- - artvip   Dziękuję Działa ale to tylko część efektu który c...   26.11.2009, 20:54:32
- - thek   No to wtedy jedynie zmieniasz odpowiednio warunek ...   26.11.2009, 21:06:45
- - artvip   hmm... rozważałem taką opcję ale.. W przykładzie...   26.11.2009, 21:52:29
- - thek   Myślisz w dobrym kierunku. Możesz to określić odrę...   26.11.2009, 22:00:32
- - artvip   Mój foreach: [PHP] pobierz, plaintext foreach ...   27.11.2009, 10:39:02
- - thek   To ja się pytam... Czemu zagnieżdżasz 3 foreach we...   27.11.2009, 13:09:02
- - artvip   Oczywiście racja, moje niedopatrzenie. [PHP] pobi...   27.11.2009, 15:00:31
- - thek   A gdzie zgubiłeś IFy? Robiąc tak jak robisz nadpi...   27.11.2009, 15:50:52
- - klez   Witam Co zrobić gdy, mają się nie zgadzać. [PHP]...   30.01.2023, 12:16:58
- - com   a sprawdź co masz w tym array i array2   30.01.2023, 18:31:58
- - trueblue   Jeśli dane pochodzą z bazy, to znalezienie danych,...   30.01.2023, 18:49:35
- - klez   to są 2 oddzielne bazy. zastosowanie JOIN nic nie ...   31.01.2023, 10:07:22
- - trueblue   1. Nie JOIN, a OUTER JOIN. 2. Możliwe jest wykonyw...   31.01.2023, 11:04:45
- - klez   zapytania SQl [PHP] pobierz, plaintext  $sSQL...   31.01.2023, 11:20:37
- - trueblue   1. Nie wiem czy masz zdefiniowane $limg oraz ...   31.01.2023, 12:19:33
- - klez   A jak to zapisać bo już się pogubiłem   31.01.2023, 14:01:09
- - Johnas   Cytat(klez @ 31.01.2023, 11:20:37 ) z...   31.01.2023, 22:17:14
- - klez   A może zapisać [PHP] pobierz, plaintext foreach...   1.02.2023, 13:11:36
- - trueblue   Opisałem Ci już rozwiązania. Można wykonać zapytan...   1.02.2023, 14:25:25


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: 3.10.2025 - 19:09