![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 26.11.2012 Ostrzeżenie: (0%) ![]() ![]() |
Witam mam problem z funkcją .
Podczas wywołania wyskakuje błąd specyfikacja to php 5.3.8 mysql 5.5.28 platforma CENTOS 6 mysql odbc connector chyba 5.2.2 z tego co pamiętam. Warning: odbc_exec() [function.odbc-exec]: SQL error: [unixODBC][MySQL][ODBC 5.2(w) Driver][mysqld-5.5.28]Result consisted of more than one row, SQL state S1000 in SQLExecDirect in /home/struktura/index.php on line 569 gdzie linia 569 to dokładnie $result = odbc_exec ($conn, $q); Moje pytanie byłoby takie jak miałbym zabezpieczyć się przed tym wywołaniem i co mam zrobić żeby wyświetlało mi wszystkie "rows" a nie pokazywało taki błąd Od strony użytkownika wygląda to tak że jeśli jakaś osoba ma przypisane kilka wartości ( spółek w tym przypadku to wyświetla się ten błąd a jeśli jest to tylko jedna wartość to wyświetla się poprawnie) a tutaj przykład wywołania $q ="select *, unit.id as unit__id, employee.id as employee__id, position.floor as depfloor, position.filename as depfilename, position.name as depname from employee inner join employeeunit on employee.id = employeeunit.employee_id inner join unit on employeeunit.unit_id = unit.id left join position on unit.departament = position.id where concat(lower(trim(employee.lastname)),' ',lower(trim(employee.firstname))) like '".$n."%' or concat(lower(trim(employee.firstname)),' ',lower(trim(employee.lastname))) like '".$n."%' or employee.mobile like '%".$n."%' or employee.telephone like '%".$n."%'"; $q.="group by employee.id order by lastname, firstname limit 100"; $rows=get_all_rows($q); Ten post edytował jason300 26.11.2012, 12:16:03 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Jesteś na 100% pewien że chodzi o to właśnie zapytanie?
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 26.11.2012 Ostrzeżenie: (0%) ![]() ![]() |
niekoniecznie chodzi o to to jest tylko przykładowe bo tych wywołań jest dużo (około 15 ) Problem polega na tym co mam zrobić żeby ten błąd nie występował czy dodać coś do zapytania z bazy danych czy też coś zrobić z funkcją jeśli tak to co . Aha i błąd wywala do linii w której jest funkcja a nie konkretne wywołanie
Dziękuję za odpowiedź Ten post edytował jason300 26.11.2012, 15:17:14 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
....
To znajdź to zapytanie, które ten błąd generuje a my ci powiemy jak je poprawić... Cytat czy też coś zrobić z funkcją To nie funkcja jest problemem a zapytanie. I to zapytanie należy poprawić.
I już bedziesz wiedział które to zapytanie. Na przyszłość sam tak rób. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 26.11.2012 Ostrzeżenie: (0%) ![]() ![]() |
no ok dodałbym jeszcze że problem zaczął się pojawiać po migracji z Windows Server 2003 na linuksa Centos 6
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Ty podaj lepiej to zapytanie. Napisałem ci już jak je znaleźć...
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 26.11.2012 Ostrzeżenie: (0%) ![]() ![]() |
super dzięki już mam
select *, estructuredb.getunitroot_company_id(unit.id) as spolka from employeeunit left join unit on employeeunit.unit_id = unit.id where employeeunit.employee_id=817 order by spolka i nr 2 w innym miejscu select *, employee.photourlsuffix as ephoto,unit.name as unit__name, unit.id as unit__id, estructuredb.getunitroot_company_id(unit.id) as spolka, employee.id as employee__id, position.floor as depfloor, position.filename as depfilename, position.name as depname from employee inner join employeeunit on employee.id = employeeunit.employee_id inner join unit on employeeunit.unit_id = unit.id left join position on unit.departament = position.id where length(employee.photourlsuffix)>1 limit 4,4 Ten post edytował jason300 26.11.2012, 15:37:07 |
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Podejrzewam, że chodzi o funkcję getunitroot_company_id() która zwraca więcej niż jeden rekord. Pokaż teraz jak wygląda ta funkcja
Powód edycji: [nospor]:
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 26.11.2012 Ostrzeżenie: (0%) ![]() ![]() |
tak wygląda cała funkcja z zapytaniem nr 1 .
a tak fragment kodu z całym zapytaniem nr 2
Ten post edytował jason300 26.11.2012, 15:42:57 |
|
|
![]()
Post
#10
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
o rety....
Napiszę jeszcze raz: Podaj jak wygląda KOD SQL FUNKCJI getunitroot_company_id Nie kod php, jak ty wywołujesz zapytanie, ale kod SQL funkcji getunitroot_company_id() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 26.11.2012 Ostrzeżenie: (0%) ![]() ![]() |
Dobra tylko takie pytanie jak to znaleźć
![]() |
|
|
![]()
Post
#12
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Funkcje SLQ znajdują się w bazie danych a nie na dysku. Zapewne przy pomocy PHPMyAdmin (lub innym programie tego typu), które to operuje na danych bazy, uda ci się znaleźć kod tej funkcji
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 26.11.2012 Ostrzeżenie: (0%) ![]() ![]() |
no i super o to chodziło wyszukiwanie w zrzucie bazy pomogło
|
|
|
![]()
Post
#14
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Tak jak myślałem. Problemem jest o to zapytanie:
SELECT parent_id INTO @parent_id FROM unit WHERE id=@parent_id; To zapytanie zwraca więcej niż jeden rekord i dlatego pojawia się ten błąd. Gdyby je zamienić na coś takiego SELECT parent_id INTO @parent_id FROM unit WHERE id=@parent_id limit 1; to zapewne błąd by zniknął. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 26.11.2012 Ostrzeżenie: (0%) ![]() ![]() |
super dziękuję bardzo , jutro sprawdzę mam tylko takie pytanie jak to jest że to działa na windowsie server 2003 a to samo na centosie wywala błąd
![]() |
|
|
![]()
Post
#16
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat To totalnie bez sensu zważywszy na to że jest to na tej samej wersji php Zrozum w końcu - to nie ma żadnego związku z php. To jest błąd MYSQLCytat i czy jest jakaś możliwość żebym mógł jakoś tą funkcję zmodyfikować tak aby poprawnie wyświetlało wynik nawet jeśli byłoby to więcej niż jeden "row" No to ci przecież napisałem co masz poprawić.
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 26.11.2012 Ostrzeżenie: (0%) ![]() ![]() |
super to działa przepraszam za głupie pytania już wszystko rozumiem
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 23:34 |