аа можно мне описание данной функции я про DELETE FROM tz_members WHERE id='$_GET[id] ? Я про Where id= и тд.,ну я понимаю где ид,а что такое $_GET?В моей БД такие фишки: ID - эТо номер персонажа, usr- нейм ,pass - пароль,email- мыло,а называеться таблица tz_members ,и вопрос а я правильно подписал функцию ту?
_GET это один из суперглобальных массивов PHP. DELETE FROM `table` - удалим все данные из таблицы. DELETE FROM `table` WHERE 1 - тоже все данные, но как бы вместо 1 можно обозначить условие по которому будут отобраны строки для удаления. условие работает так же как и для UPDATE и SELECT. самостоятельно учитесь, мануалы читайте. а то после таких разжевываний хочется попросить часть вашей зарплаты так как вы использовали мой ресурс. я б даже сказал всю ибо сами вы что-то не особо пытаетесь.
а кавычки обязательно,Ну для таблицы?Просто где то видел без,а тут с,хотя ладно спасибо вам больше,я понял,буду учиться
обязательно. приведу пример из личного опыта - date. приведу пример из чужого опыта - where. вообще надо быть полным дауном чтоб назвать ключевым словом, но СУБД не запрещает это сделать. подводные камни вскрываются позже - в некоторых случаях date и where будут интерпретироваться именно как ключевые слова. а вот если обрамить этот идиотизм кавычками - то исключительно как название базы/таблицы/поля. даже если мы назвали б/т/п OppaGangnamStyle у нас не может быть уверенности что лет через парочку оракл не добавить сию последовательность в список ключевых слов. взяв за простое правило обрамлять всегда - мы на 100% защищаемся от будущих возможных косяков.
аа,я понял,вобщем у меня ошибка с подключением к бд,код написан верно,но запрос в БД не проходит..,а что имено не так вот я ищу,но не находиться как то
Код (Text): <?php define('INCLUDE_CHECK',true); require 'connect.php'; require 'functions.php'; session_start(); mysql_query("DELETE FROM `tz_members` WHERE `id`='$_GET[id]'"); header('Location: http://.'); ?> Вы можете,сказать ,ну вот этот код он сам написан верно? Ну т.е. там косяков нет никаких? Добавлено спустя 1 минуту 51 секунду:
наличие или отсутствие косяков определяется алгоритмом который вы задумали. оно как бы нормально. есть задача, есть алгоритм ее решения, есть код который реализовал этот алгоритм. дальше запускаем - на выходе получаем не тот результат который ожидаем. и начинаем поэтапно сравнивать состояние программы с тем что мы придумали в своей голове. без видимости состояния невозможно быть программистом. кодером можно, программистом нет.
Хмм,ну вот я пологаю,что ошибка в подключении,но там всё введенно верно,но в чем же тогда проблема,файл : connect.php Код (Text): <?php if(!defined('INCLUDE_CHECK')) die('У вас нет прав на выполнение данного файла!'); /* Конфигурация базы данных */ $db_host = 'ну'; $db_user = 'ну'; $db_pass = 'ну'; $db_database = 'ну'; /* Конец секции */ $link = mysql_connect($db_host,$db_user,$db_pass) or die('Невозможно установить соединение с базой данных'); mysql_select_db($db_database,$link); mysql_query("SET names UTF8"); ?> я уже проверял его,он подключен и к регистрации и к удалению,а что я упустил?
еще раз: КАК ПРОИСХОДИТ ОТЛАДКА? я вот вижу кашу в вашей голове и сообщение "уже проверял его,он подключен и к регистрации и к удалению" мне вообще погоды не делает, понимаете?
Урааа)))получилось))) Добавлено спустя 1 минуту: Я перешёл на версию 5.4 php хотя,не знаю,но всё же как то получилось,и терь пашет
я сначало убрал,и получилось,так что он удалял все аккаунты,а щас я еще делаю Добавлено спустя 1 минуту 7 секунд: вот если добавить:$id = int($_GET['id']); то получиться? Добавлено спустя 3 минуты 22 секунды: Fatal error: Call to undefined function int() in /home/u989543961/public_html/index/delete.php on line 4 и вот такая ошибка - там $id = int... Добавлено спустя 8 минут 43 секунды: убрал это $id = ... ,а затем если выполнять запрос mysql_query("DELETE FROM `tz_members` WHERE `id`='$_GET[id]'"); без WHERE `id`='$_GET[id] ,то удаляет всех пользователей,А вот если ставишь,то не работает,и я вот думаю,а в чем же дело,тогда Добавлено спустя 1 минуту 26 секунд: я хочу убедиться,в данном случае id - это что?Вот у меня id-порядковый номер аккаунта,веть так должно быть?
Jameses, а зачем вы беретесь за программирование mysql если незнаете что такое БД. Вы когда брались с самого начала за mysql, как вы изучали его? Вы читали мануалы, тесты делали? прежде чем уже браться за выучите начальные Азы mysql.
MAN_IFE_ST - тут вопрос в другом был если что,с БД уже разобрались,а вот: WHERE `id`='$_GET[id]' не работает т.е. условие не правильное
$id=(($_GET['id'])?$_GET['id']:'not'); а в запросе оставьте переменную $id if($_GET['id'] != 'not'){ ..... }
<?php define('INCLUDE_CHECK',true); require 'connect.php'; require 'functions.php'; session_start(); $id=(($_GET['id'])?$_GET['id']:'not'); mysql_query("DELETE FROM `tz_members` WHERE `id`='$_GET[id]'"); if($_GET['id'] != 'not') { echo "Вы не имеете права выполнить этот запрос."; // header('Location: http://'); } ?> Вот так что ли?Я понял как сделать,но вопрос про переменную,как её написать вот как я или иначе?
я уже сказал что именно не так. логика. перед тем как начинать писать на любом языке нужно сначала понимать алгоритм. понимать что программирование сводится к переводу словесного решения задачи на лексемы определенного языка. у вас нет понимания основ программирования. то что вы делаете дальше это просто метод высоконаучного тыка. я вам могу дать к примеру совет использовать exit(); и вы голову сломаете куда вызов нужно запихнуть. хотя если бы вы "видели" алгоритм то поняли что выход можно не использовать и мой совет банальный троллинг человека который ноль в алгоритмах. смотрите: $id=(($_GET['id'])?$_GET['id']:'not'); - если в элементе айди массива _гет логически ненулевое значение то присвоить переменной айди это значение. иначе присвоить переменной строку нот mysql_query("DELETE FROM `tz_members` WHERE `id`='$_GET[id]'"); - удалить из таблицы тз_мэмбэрс где айди равен значению переменной элемента айди массива _гет. а зачем мы тогда выше тестировали этот элемент и объявляли новую переменную??? if($_GET['id'] != 'not') - а вот тут мы вдруг (режим телепата включен!) решили таки проверить что же у нас хранится в переменной айди. но только мы промахнулись и ищем это значение в элементе айди массива _гет. занавес...
норм, мы все опечатываемся. но человек которому этот код назначался сам должен был поправить а не тупо копипастить