function get_all_rows ($q) { $result = odbc_exec ($conn, $q); if ($result) { while ($row = odbc_fetch_array($result)) $rows[]=$row; odbc_free_result($result); return $rows; } return " " ; }
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);