Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не выполняется SQL запрос в функции, а без функции 
:(
    Опции темы
Enya
Дата 15.11.2006, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 5.10.2005

Репутация: нет
Всего: нет



Вот решила, навести порядок в файле управления табличкой.
Начала с удаления. 
Вот фаил function.php
Код

<?php
       /*передаю функции Имя и номер записи*/
    function deleteRow($tabName,$rowId){
        $deleteSql = 'DELETE FROM `$tabName` WHERE id = `$rowId`';
        mysql_query($deleteSql) or DIE("Sorry, $rowId From $tabName Delete Query Faled");
    }
?>


вот фаил control_up.php
Код

<?php
    require_once("function.php");//FUNC Вот включения файла с функциями
        $action = (isset($_GET['action'])) ? $_GET['action'] : '';
        $id = (isset($_GET['id'])) ? intval($_GET['id']) : FALSE;
        
        $db_host = 'localhost';
        $db_db = 'test';
        $db_user = 'ng';
        $db_password = 'ng';
        
        mysql_connect($db_host,$db_user,$db_password) OR DIE("Не могу создать соединение ");
    
        mysql_select_db($db_db) or die(mysql_error());
        
        if($action == 'delete') {
            /*вот обращение к фунции удаления */
            deleteRow('objects',$id);            
        }
        
        /* HTML DOCUMENT BEGIN */
        htmlheader();
        echo '<h3>Main</h3>';
            
        $sql    = 'SELECT * FROM `objects` ORDER BY `id` ASC';
        $result = mysql_query($sql) or die("SQL Select Error");
                
        while ($obj = mysql_fetch_object($result)) {
            ?>
            <table width="500" border="0" cellspacing="1" cellpadding="0" align="center" bgcolor="#FFFFE0">
            <tr>
                <td align="center" width="25" style="border: 1px solid Black;"><?=$obj->id?></td>
                <td align="center" width="100" style="border: 1px solid Black;"><?=$obj->obj01?></td>
                <td align="center" width="100" style="border: 1px solid Black;"><?=$obj->obj02?></td>
                <td align="center" width="100" style="border: 1px solid Black;"><?=$obj->obj03?></td>
                <td align="center" width="100" style="border: 1px solid Black;"><a href="control_up.php?action=addimages&id=<?=$obj->id?>">add images</a></td>
                <td align="center" width="100" style="border: 1px solid Black;"><a href="control_up.php?action=edit&id=<?=$obj->id?>">Edit</a></td>
                <td align="center" width="100" style="border: 1px solid Black;"><a href="control_up.php?action=delete&id=<?=$obj->id?>">Delete</a></td>
            </tr>
            </table>
        <?php
        }
        

Сделала специально вывод, если что
Код

mysql_query($deleteSql) or DIE("Sorry, $rowId From $tabName Delete Query Faled");
вот что на экране
Цитата

Sorry, 26 From objects Delete Query Faled
то есть Имя таблички и номер записи передались, но запрос не выполнился.
Почему? smile  smile 


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

Утсанвлен Денвер
1. PHP Version 5.1.6
2. MySQL 5.0.18-max
3. phpMyAdmin 2.6.1
PM MAIL WWW ICQ   Вверх
BobiKK
Дата 15.11.2006, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 655
Регистрация: 1.12.2005
Где: Essen, Deutschlan d

Репутация: 4
Всего: 16



А не проще ли вместо "DIE("Sorry, $rowId From $tabName Delete Query Faled");" написать die(mysql_error()). И посмотреть, из-за чего же не работает
PM MAIL   Вверх
Enya
Дата 15.11.2006, 12:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 5.10.2005

Репутация: нет
Всего: нет



BobiKK, 
Цитата

Table 'test.$tabName' doesn't exist
не понялда? я же передаю в переменной $tabName название таблички, а именно objects
 smile  smile 


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

Утсанвлен Денвер
1. PHP Version 5.1.6
2. MySQL 5.0.18-max
3. phpMyAdmin 2.6.1
PM MAIL WWW ICQ   Вверх
BobiKK
Дата 15.11.2006, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 655
Регистрация: 1.12.2005
Где: Essen, Deutschlan d

Репутация: 4
Всего: 16



Ну напиши там после присвоения значения переменной $deleteSql   echo $deleteSql;
Проверь значения всех подозрительных перменных. Можешь даже пройтись отладчиком.
А вообще, попробуй паеременные вставлять в строку через конкатенацию. "DELETE FROM `".$tabName."`...";
PM MAIL   Вверх
skyboy
Дата 15.11.2006, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



в одинарных кавычках переменная не "разворачивается" в свое значение, а воспринимается, аки просто текст. тебе надо либо двойные кавычки для обрамления запроса использовать, либо(что лучше - подсветка синтаксиса работает и быстрее, как мне кажется) выносить переменные из строк:
Код

$deleteSql = 'DELETE FROM `'.$tabName.'` WHERE id = `$rowId`';


Добавлено @ 13:28 
сорри, BobiKK, уже отписался касательно кавычек smile
PM MAIL   Вверх
Enya
Дата 15.11.2006, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 5.10.2005

Репутация: нет
Всего: нет



skyboy, BobiKK, чёрт, как же всё тонко...
и кстати $rowId тоже нужно вставлять через контекацию.
Код

$deleteSql = "DELETE FROM ".$tabName." WHERE id = ".$rowId;



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

Утсанвлен Денвер
1. PHP Version 5.1.6
2. MySQL 5.0.18-max
3. phpMyAdmin 2.6.1
PM MAIL WWW ICQ   Вверх
Nicholas_S
Дата 15.11.2006, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 486
Регистрация: 12.10.2006
Где: Санкт-Петербург

Репутация: 1
Всего: 19



Enya, если пишешь двойные кавычки, то оставляй как есть:
Код

$deleteSql = "DELETE FROM `$tabName` WHERE id = $rowId;";


Это сообщение отредактировал(а) Nicholas_S - 15.11.2006, 14:04


--------------------
...все в мире относительно
PM   Вверх
skyboy
Дата 15.11.2006, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Цитата(Enya @  15.11.2006,  12:53 Найти цитируемый пост)
и кстати $rowId тоже нужно вставлять через контекацию.

молодец! уже не только спрашиваешь, но и исправляешь! удачи smile

Это сообщение отредактировал(а) skyboy - 15.11.2006, 14:06
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0485 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.