Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Kopiowanie wpisów z bazy
pawel06281990
post
Post #1





Grupa: Zarejestrowani
Postów: 298
Pomógł: 0
Dołączył: 10.01.2014

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


Witam,

mam problem z kopiowaniem tych samych rekordów po połączeniu 2 tabel jedna tabela przetrzymuje wpisy takie jak imię, nazwisko itp, a w drugiej mam zdjęcia, ale nie wiem czemu jak porównuje dwa pola id robi mi kopię rekordów.

Tak wygląda skrypt

  1. $where = $this->wyszukajwhere($check_nazwisko,$check_ur,$check_zg,$nazwisko,$dataUrodzenia,$dataSmierci,$imie);
  2. $wynik = $this->wpdb->get_results("SELECT w.*, f.* FROM ".$this->wyszukiwarka_table." w
  3. LEFT JOIN ".$this->wyszukiwarka_fotografie_table." f ON w.faraID=f.grobID WHERE $where ORDER BY Id ASC");
  4.  
  5. if($this->wpdb->num_rows <= 0) {
  6. $content ='<div class="callout callout-warning">';
  7. $content .='<h5>'.__('Brak wyników','wp-zmarli').'</h5>';
  8. $content .='<p>'.__('Nie znaleziono wyników wyszukiwarki!','wp-zmarli').'</p>';
  9. $content .='<p>'.__('Szukane w wyszukiwarce: ','wp-zmarli').'</p>';
  10. $content .= $this->wyszukajbaza($check_nazwisko,$check_ur,$check_zg,$nazwisko,$dataUrodzenia,$dataSmierci,$imie);
  11. $content .=' <p>'.__('Sprawdź dane i spróbuj ponownie jeszcze raz ','wp-zmarli').'</p>';
  12. $content .=' <a href="wyszukiwarka/" >'.__('Wróć do wyszukiwarki','wp_zmarli').'</a>';
  13. $content .='</div><br />';// Gdy nie znajdzie rekordów
  14. echo historia_zamowien(($current_user->user_login ? $current_user->user_login : __('Anonimowy','wp-zmarli')),'',__('Nie znaleziono wyników wyszukiwarki!','wp-zmarli'),"wyszukiwarka",'', time(),"2");
  15. } else {
  16.  
  17. $totalResults = count($wynik);
  18. $lastDigit = substr ($totalResults, -1);
  19. $content = '<h3>Znaleziono ';
  20. if ($totalResults==1) $content .= '1 osobę';
  21. else if ($lastDigit==2 or $lastDigit==3 or $lastDigit==4) $content .= $totalResults.' osoby'; else $content .= $totalResults.' osób';
  22. $content .= '</h3>';
  23. $content .=" <div class='row'>";
  24. foreach ($wynik as $pochowany){
  25. if($pochowany ->status == 1){
  26. $zdjecia ='<img style="width:20px; height:20px;" title="'.__('Prośba o pilny kontakt z kancelarią','wp-zmarli').'" src="'.ZMARLI_URL.'assets/images/pilny_kontakt.png"/>';
  27. }else{
  28. $zdjecia ='<img style="width:20px; height:20px;" title="'.__('Wszystko w porządku','wp-zmarli').'" src="'.ZMARLI_URL.'assets/images/ok.png"/>';
  29. }
  30. $content .="<div class='col-sm-4'>
  31. <div class='card' style='width: 18rem;'>";
  32. if($pochowany->plikNaSerwerze <= ''){
  33. $content .=" <img src='../wp-content/plugins/wp-zmarli/assets/images/brak_zdjecia.jpg' class='card-img-top' >";
  34. }else{
  35. $content .=" <img src='../wp-content/uploads/images/groby/".$pochowany->plikNaSerwerze."' class='card-img-top'>";
  36. }
  37. $content .="<div class='card-body'>";
  38. $content .="<h5 class='card-title'>śp.".mb_strtoupper($pochowany->imie.' '.$pochowany->nazwisko, 'UTF-8')." ".$zdjecia."</h5>";
  39. $content .="<p class='card-text'>".esc_html('Data Urodzienia', 'zmarli')." ".$pochowany->dataUrodzenia." <br /> ".esc_html('Data Śmierci', 'wp-zmarl')." ".$pochowany->dataSmierci." &nbsp;&nbsp;&nbsp;†</p>";
  40.  
  41. $content .="<a href='../podglad/?Id=".$pochowany->Id."&faraid=".$pochowany->grobID."&p1=".$pochowany->p1."&p2=".$pochowany->p2."&p3=".$pochowany->p3."' class='btn btn-primary'>".esc_html('Więcej', 'wp-zmarl')."</a>";
  42. $content .="</div>";
  43. $content .="</div>";
  44. $content .="<br /><br />";
  45. $content .="</div>";
  46. }
  47.  
  48. $content .="</div>";
  49. $content .=" <div class='row'>";
  50. $content .="<div class='col-sm-12' style='background-color :#9C9C9C' >";
  51. $content .='<img title="'.__('Wszystko w porządku','wp-zmarli').'" src="'.ZMARLI_URL.'assets/images/ok.png"/>'.__('Wszystko w porządku','wp-zmarli').' <img title="'.__('Prośba o pilny kontakt z kancelarią','wp-zmarli').'" src="'.ZMARLI_URL.'assets/images/pilny_kontakt.png"/>'.__('Prośba o pilny kontakt z kancelarią','wp-zmarli').'';
  52.  
  53. $content .="</div>";
  54.  
  55.  
  56.  
  57. $content .="</div>";
  58. echo historia_zamowien(($current_user->user_login ? $current_user->user_login : __('Anonimowy','wp-zmarli')),'',__('Wyszukiwanie poprawne','wp-zmarli'),"wyszukiwarka",'', time(), "1");
  59. }


I nie wiem czemu tak robi powinien porównać id w.faraID=f.grobID jak jest identyczne to wyświetlić jeden rekord.

Ten post edytował pawel06281990 22.03.2022, 10:22:24
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No tak to dziala wlasnie. Jesli bazowa tabela ma jeden rekord , a druga tabela ma X rekordow odpowiadajacych temu z pierwszej tabeli, to dostaniesz X rekordow na zwrocie, ktore potem sobie pogrubuj w php i wyswietlaj jak ci sie podoba


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
pawel06281990
post
Post #3





Grupa: Zarejestrowani
Postów: 298
Pomógł: 0
Dołączył: 10.01.2014

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


Ale kiedy porównuje id tworzone z automatu to mi wyświetla pojedynczo


Edit: Ok wystarczyło dodać GROUP BY grobID i teraz działa jak należy

Ten post edytował pawel06281990 22.03.2022, 10:36:37
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Ale jak dodasz groub by to nie dostaniesz wiekszej liczby zdjec dla rekordu a tylko jeden.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
pawel06281990
post
Post #5





Grupa: Zarejestrowani
Postów: 298
Pomógł: 0
Dołączył: 10.01.2014

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


Bo ja w bazie mam aby jedno zdjęcie przepisane do danej osoby
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No to nie kumam jakim cudem ci sie rekordy duplikuja. Widac gdzies indziej masz wiele danych do jednego rekordu


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
trueblue
post
Post #7





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


Może złączenie jest na nieprawidłowych polach/wartościach?


--------------------
Go to the top of the page
+Quote Post
pawel06281990
post
Post #8





Grupa: Zarejestrowani
Postów: 298
Pomógł: 0
Dołączył: 10.01.2014

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


Cytat(nospor @ 22.03.2022, 13:16:32 ) *
No to nie kumam jakim cudem ci sie rekordy duplikuja. Widac gdzies indziej masz wiele danych do jednego rekordu


Bo jak wpisuje np. Kowalski Jan to mam dwa razy pokazany wpis Kowalski Jan ten sam wpis jest dublowany 2 razy
Go to the top of the page
+Quote Post
nospor
post
Post #9





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No ja to rozumem.
Nie rozumiem czemu tak sie dzieje skoro mowisz ze obie tabele masz w relacji 1:1
Wiec albo ci sie tylko wydaje ze tam jest 1:1 albo laczysz po zlych polach jak zasugerowal trueblue


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
pawel06281990
post
Post #10





Grupa: Zarejestrowani
Postów: 298
Pomógł: 0
Dołączył: 10.01.2014

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


Przerabiam skrypt od producenta i czytałem jego dokumenty które wydał i id podpiąłem dobrze, bo producent napisał ze można dostosować pod własną koncepcje, więc to zrobiłem ale tez nie wiem czemu mi to tak robi że kopiuje


Tak wygląda tabela główna

  1. `wp_wyszukiwarka` (
  2. `Id` smallint(6) NOT NULL,
  3. `faraID` int(11) NOT NULL,
  4. `cmentarzID` int(11) NOT NULL,
  5. `nazwisko` varchar(75) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL,
  6. `imie` varchar(75) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL,
  7. `dataUrodzenia` varchar(10) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL,
  8. `dataSmierci` varchar(10) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL,
  9. `p1` varchar(30) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL,
  10. `p2` varchar(30) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL,
  11. `p3` varchar(30) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL,
  12. `p4` varchar(30) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL,
  13. `p5` varchar(30) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL,
  14. `p6` varchar(30) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL,
  15. `p7` varchar(30) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL,
  16. `p8` varchar(30) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL,
  17. `grvid` int(11) NOT NULL,
  18. `status` tinyint(4) DEFAULT 0
  19. )


Tak wygląda tabela ze zdjęciami
  1. `wp_wyszukiwarka_fotografie` (
  2. `idfoto` smallint(6) NOT NULL,
  3. `faraID` int(11) NOT NULL,
  4. `cmentarzID` int(11) NOT NULL,
  5. `grobID` int(11) NOT NULL,
  6. `typ` int(11) NOT NULL,
  7. `plikLokalny` varchar(1000) COLLATE utf8_polish_ci NOT NULL,
  8. `plikNaSerwerze` varchar(1000) COLLATE utf8_polish_ci NOT NULL
  9. )


ID które porównuje jest to faraID to wyszukiwarka a zdjęcia mają zmienione nazwę na id z wyszukiwarki grobID

Teraz pokaże jak to wygląda po dodaniu w bazie jeden przykład

wyszukiwarka
  1. moja nazwa id nadana automatycznie >1, faraID->1, a to jest id cmnetarza->1, 'Stefaniak', 'Stanisław', '--/--/1901', '--/--/1987', 'A', 'I', '2', '', '', '', '', '', 2, 0

Teraz tabela ze zdjęciami
  1. (moje id które sam sworzyłem ->1, faraID->19234, a to jest id cmnetarza->1,grobID-> 1, typ->0, 'c:\\fara_serwer\\foto\\foto_iii_2015\\a_i_1.jpg', 'A_I_1.JPG')


Tak wyglada


Ten post edytował pawel06281990 23.03.2022, 11:12:51
Go to the top of the page
+Quote Post
nospor
post
Post #11





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Pokaz strukture tych dwoch tabel i pare rekordow z nich dla ktorych duplikuje ci rekordy

No i czemu robisz
ON w.faraID=f.grobID
a nie
ON w.faraID=f.faraID
?

Cytat
ID które porównuje jest to faraID to wyszukiwarka a zdjęcia mają zmienione nazwę na id z wyszukiwarki grobID

Teraz pokaże jak to wygląda po dodaniu w bazie jeden przykład

wyszukiwarka

[PHP] pobierz, plaintext

moja nazwa id nadana automatycznie >1, faraID->1, a to jest id cmnetarza->1, 'Stefaniak', 'Stanisław', '--/--/1901', '--/--/1987', 'A', 'I', '2', '', '', '', '', '', 2, 0


Teraz tabela ze zdjęciami

[PHP] pobierz, plaintext

(moje id które sam sworzyłem ->1, faraID->19234, a to jest id cmnetarza->1,grobID-> 1, typ->0, 'c:\\fara_serwer\\foto\\foto_iii_2015\\a_i_1.jpg', 'A_I_1.JPG')

I w tabeli ze zdjeciami masz wiecej rekordow ktore maja grobID = 1?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
pawel06281990
post
Post #12





Grupa: Zarejestrowani
Postów: 298
Pomógł: 0
Dołączył: 10.01.2014

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


Już chyba wiem czemu ni dubluje z tabeli ze zdjęciami, bo mi się rekordy powtarzają

Wyszukiwarka

  1. (63,faraID-> 63, 1, 'Kowalski', 'Tadeusz Jerzy', '--/--/1932', '27/10/1980', 'A', 'I', '44', '', '', '', '', '', 66, 0),



tabela ze zdjęciami
  1. (84, 19276, 1, grobyID->63, 0, 'c:\\fara_serwer\\foto\\foto_iii_2015\\a_i_42.jpg', 'A_I_42.JPG'),
  2. (85, 12652, 1, grobyID->63, 0, 'c:\\fara_serwer\\foto\\foto\\a_i_42.jpg', 'A_I_42.JPG'),


Ok Muszę zgłosić to do producenta programu, żeby nie dublowało tych samych rekordów dla zdjęć, bo załóżmy, że w jednym grobie leżą dwie osoby to powinno być jedno zdjęcie bo grób jest taki sam.
Go to the top of the page
+Quote Post
nospor
post
Post #13





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Ha, od poczatku to mowilismy wink.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
pawel06281990
post
Post #14





Grupa: Zarejestrowani
Postów: 298
Pomógł: 0
Dołączył: 10.01.2014

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


No tak, ale teraz jak się przyjrzałem to zauważyłem, bo oryginalna wersja bazy jest tak

Wyszukiwarka oryginał
  1. `faraID` integer NOT NULL,
  2. `cmentarzID` integer NOT NULL,
  3. `nazwisko` VARCHAR (75) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL,
  4. `imie` VARCHAR (75) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL,
  5. `dataUrodzenia` VARCHAR (10) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL,
  6. `dataSmierci` VARCHAR (10) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL,
  7. `p1` VARCHAR (30) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL,
  8. `p2` VARCHAR (30) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL,
  9. `p3` VARCHAR (30) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL,
  10. `p4` VARCHAR (30) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL,
  11. `p5` VARCHAR (30) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL,
  12. `p6` VARCHAR (30) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL,
  13. `p7` VARCHAR (30) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL,
  14. `p8` VARCHAR (30) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL,
  15. `grvid` integer NOT NULL);


Tabela zdjęć
  1. `faraID` integer NOT NULL,
  2. `cmentarzID` integer NOT NULL,
  3. `grobID` integer NOT NULL,
  4. `typ` integer NOT NULL,
  5. `plikLokalny` VARCHAR (1000) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL,
  6. `plikNaSerwerze` VARCHAR (1000) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL);


Tak wygląda oryginał ja dopisałem sobie Id dla wyszukiwarki i idfoto dla zdjęć
Go to the top of the page
+Quote Post
nospor
post
Post #15





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




swoja droga kiepski ten producent.
Jak on daty jako teksty trzyma to poprostu zalamka
`dataUrodzenia` VARCHAR (10)


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
pawel06281990
post
Post #16





Grupa: Zarejestrowani
Postów: 298
Pomógł: 0
Dołączył: 10.01.2014

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


Bo program trzyma daty w ten sposób 20/08/2001
Go to the top of the page
+Quote Post
viking
post
Post #17





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Tym gorzej, powinien trzymać jak nospor pisał a formatowanie daty to inna bajka.


--------------------
Go to the top of the page
+Quote Post
nospor
post
Post #18





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Bo program trzyma daty w ten sposób 20/08/2001

No i? To nie ma zadnego znaczenia, koles co to pisal mial blade pojecie o bazach/php i tyle w temacie


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
gino
post
Post #19





Grupa: Zarejestrowani
Postów: 324
Pomógł: 52
Dołączył: 18.02.2008

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


Nie chciałbym Cie jeszcze bardziej dołować, ale nawet w sprawozdaniach wykonawczych komisji UE jest narzucony format daty zgodny z ISO 8601. Natomiast w Polsce przyjęło się zapisywać dzień.miesiąc.rok. Skąd taki format u Ciebie? I jeszcze mnie jedno ciekawi, co to znaczy, że program tak trzyma daty? Program niczego nie trzyma... A czepiam się słówek, bo z tego same nieporozumienia są.
Go to the top of the page
+Quote Post
pawel06281990
post
Post #20





Grupa: Zarejestrowani
Postów: 298
Pomógł: 0
Dołączył: 10.01.2014

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


Cytat(gino @ 23.03.2022, 13:31:56 ) *
Nie chciałbym Cie jeszcze bardziej dołować, ale nawet w sprawozdaniach wykonawczych komisji UE jest narzucony format daty zgodny z ISO 8601. Natomiast w Polsce przyjęło się zapisywać dzień.miesiąc.rok. Skąd taki format u Ciebie? I jeszcze mnie jedno ciekawi, co to znaczy, że program tak trzyma daty? Program niczego nie trzyma... A czepiam się słówek, bo z tego same nieporozumienia są.


Program do ewidencji cmentarzy ma taki format bo wszystkie daty wpisuje się ręcznie program nazywa się fara.

Ten post edytował pawel06281990 23.03.2022, 18:41:49
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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 Aktualny czas: 21.08.2025 - 03:57