Зараннее прошу прошение если ошибка нубская, но только начал ковырять PHP Столкнулся с проблемой при запросе: SELECT id, F_I_O_TableName, E_Mail, TelNum1, TelNum2, TelNum3, TelNum4, TelNum5, CityTable FROM Grup_KievMain Все работает нормально. но если добавить выборку по фамилии скажем: SELECT id, F_I_O_TableName, E_Mail, TelNum1, TelNum2, TelNum3, TelNum4, TelNum5, CityTable FROM Grup_KievMain WHERE F_I_O_TableName LIKE '%Иванов%' выдает следующую ошибку: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in Z:\home\phone.elit\www\MainListFind.php on line 86 Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in Z:\home\phone.elit\www\MainListFind.php on line 125 Кусок кода: Код (Text): $result = mysql_query("SELECT id, F_I_O_TableName, E_Mail, TelNum1, TelNum2, TelNum3, TelNum4, TelNum5, CityTable FROM ".$TableCurrentGroup. "".$FindStringADD.""); // Цикл вывода данных в таблицу while ($row = mysql_fetch_array($result, MYSQL_NUM)) { // ОШИБКА .... } mysql_free_result($result); // ОШИБКА p.s: Переменные $TableCurrentGroup и $FindStringADD имеют коректные значения. p.p.s: Запрос "SELECT id, F_I_O_TableName, E_Mail, TelNum1, TelNum2, TelNum3, TelNum4, TelNum5, CityTable FROM Grup_KievMain WHERE F_I_O_TableName LIKE '%Иванов%'" в MySQL отрабатывает без ошибок. Затык точно mysql_fetch_array() но как исправить незнаю.
PHP: <?php $result = mysql_query("SELECT id, F_I_O_TableName, E_Mail, TelNum1, TelNum2, TelNum3, TelNum4, TelNum5, CityTable FROM ".$TableCurrentGroup. "".$FindStringADD."") or die(mysql_error());
Добавил - странно - выводит ошибку синтаксиса: 'You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIKE '%%'' at line 1 Что самое смешное - через MySQL запрос понимает корректно, и выбирает из таблици по сказанному условию =( Цирк. скрин с запросом
ясно же видно, что %тут_должно_быть_что-то% для поиска. похоже, что у тебя оно не поступает в коде, либо сам не задаёшь.
проблему решил. Было достаточно заткнуть все значение запроса в переменную. типа: $sql = "SELECT id, F_I_O_TableName, E_Mail, TelNum1, TelNum2, TelNum3, TelNum4, TelNum5, CityTable FROM ".$TableCurrentGroup."".$FindStringADD.""; и потом $result = mysql_query($sql) or die(mysql_error()); в результате все отрабатывает без ошибок. В чем причина - незнаю. Возможно перегруженность строки - другое в голову не приходит.
как видишь, ты ошибался. обычно отладка запросов производится довольно просто, примерно так (используя доп. возможности строки в двойных кавычках): PHP: <?php $sql = "SELECT id, F_I_O_TableName, E_Mail, TelNum1, TelNum2, TelNum3, TelNum4, TelNum5, CityTable FROM {$TableCurrentGroup}{$FindStringADD}"; echo 'Попробуй выполнить данный код в PhpMyAdmin:<h2>'.$sql.'</h2>'; exit(); $result = mysql_query($sql) or die(mysql_error());
Ну теперь буду знать где может возникнуть затык Всетаки практику еще ничем нельзя заменить... Множество нюансов, многие из которых проходят как само-собой разумеющееся Ничего - будем грызть дальше