Ты серьезно такой медленный или прикалываешься? $sql="SELECT 1 FROM poll_ip WHERE id_teacher='".$teacher_id."'"; Этим запросом ты выбираешь все записи в которых фигурирует данный препод. Если за него уже кто-то проголосовал - там будут строки. Не важно, с этого айпишника или не с этого. Ну ты пипец короче...
PHP: // Делаю запрос и проверяю равен ли id_teacher конкретному введенному с формы id учителя $sql = "SELECT 1 FROM poll_ip WHERE id_teacher='".$teacher_id."'"; запрос есть, а отправка его где?)
давай я тебе большим шрифтом напишу, вдруг заметишь Выбираем строку по паре дата-айпишник. --- Добавлено --- @mr.akv у него еще похоже и вывод ошибок отключен.
Вот вывод ошибок включен или это не включен по Вашему? PHP: mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); $link = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname); if(mysqli_connect_errno()) { echo "Не возможно подлючится! ".mysqli_connect_error(); exit(); } //echo "Соединение установлено!"; mysqli_query($link, "SET NAMES 'utf8' COLLATE 'utf8_general_ci'"); mysqli_query($link, "SET CHARACTER SET 'utf8'");
@kvadim когда про отладку писал, там было написано как ошибки включить --- Добавлено --- забудь PHP на время, и всё сделай на MySQL. проголосуй, потом сделай выборку и посмотри есть ли голос, напиши какие запросы и в какой последовательности ты отправлял и что значит результат
Добавил вот такой код для вывода ошибок PHP: ini_set('error_reporting', E_ALL); ini_set('display_errors', 1); ini_set('display_startup_errors', 1); И сделал теперь такой вот код PHP: // Делаю запрос $sql = "SELECT 1 FROM poll_ip WHERE data='".$data."', AND ip_address='".$ip_address."'"; // посчитам количество рядов if($sql->num_rows) { echo '<meta http-equiv="Content-type" content="text/html; charset=utf-8" />'; echo "Вы уже голосовали!"; exit; } // Если не голосовал, то записывает id учителя, дату и айпи $sql = "INSERT INTO poll_ip(id_teacher, data, ip_address) VALUES('".$teacher_id."', '".$data."', '".$ip_address."')"; mysqli_query($link, $sql); echo '<meta http-equiv="Content-type" content="text/html; charset=utf-8" />'; echo "Ваш, голос добавлен!!"; exit; И все равно в таблицу запись идет. но не блокирует...(( И в браузер выдает такое сообщение: "Notice: Trying to get property of non-object"
on line 35 PHP: <?php include("config.php"); ini_set('error_reporting', E_ALL); ini_set('display_errors', 1); ini_set('display_startup_errors', 1); $teacher_id = $_POST["teacher"]; $teacher_id = strip_tags($teacher_id); $teacher_id = mysqli_real_escape_string($link, $teacher_id); $teacher_id = trim($teacher_id); $ip_address = $_SERVER["REMOTE_ADDR"]; $ip_address = strip_tags($ip_address); $ip_address = mysqli_real_escape_string($link, $ip_address); $ip_address = trim($ip_address); $data = date("Ymd"); $data = strip_tags($data); $data = mysqli_real_escape_string($link, $data); $data = trim($data); /* echo $teacher_id; echo "<br>"; echo $ip_address; echo "<br>"; echo $data; echo "<br>"; */ // Делаю запрос $sql = "SELECT 1 FROM poll_ip WHERE data='".$data."' AND ip_address='".$ip_address."'"; // посчитам количество рядов if($sql->num_rows) { echo '<meta http-equiv="Content-type" content="text/html; charset=utf-8" />'; echo "Вы уже голосовали!"; exit; } $sql = "INSERT INTO poll_ip(id_teacher, data, ip_address) VALUES('".$teacher_id."', '".$data."', '".$ip_address."')"; mysqli_query($link, $sql); echo '<meta http-equiv="Content-type" content="text/html; charset=utf-8" />'; echo "Ваш, голос добавлен!!"; exit; ?>
ну $sql это строка ты к ней обратился как к объекту. думаю после 33 строчке ты забыл выполнить запрос
Так теперь изменил следующее PHP: $sql = "SELECT 1 FROM poll_ip WHERE data='".$data."' AND ip_address='".$ip_address."'"; $result = mysqli_query($link, $sql); // посчитам количество рядов if($result->num_rows) { echo '<meta http-equiv="Content-type" content="text/html; charset=utf-8" />'; echo "Вы уже голосовали!"; exit; } $sql = "INSERT INTO poll_ip(id_teacher, data, ip_address) VALUES('".$teacher_id."', '".$data."', '".$ip_address."')"; mysqli_query($link, $sql); echo '<meta http-equiv="Content-type" content="text/html; charset=utf-8" />'; echo "Ваш, голос добавлен!!"; exit; Запись добавляется и блокирует если не важно кого выбираю в форме, сообщает после одно голосования, что уже голосовал. Вроде все работает теперь как надо, спасибо, огромное всем, за терпение И теперь еще не мало важный вопрос, как теперь выдать результат голосования, как посчитать, сколько за кого проголосовало?
Что это за нафиг ? Ты написал строку запроса, но не отправил его не фига, и что ты хочешь? чтобы условие сработало? Дак какого лешего оно должно срабатывать. Ты вообще понимаешь, что такое ООП ? Что ты вот этой строкой написал ? PHP: if($sql->num_rows) Чувак у тебя пробелы в знаниях. Если ты не понимаешь что ты пишешь, зачем ты это пишешь? Почему бы не почитать? --- Добавлено --- Ну решишь ты ща данную вот задачу с горем пополам, но не поймёшь как она работает и чё толку тогда? Суть этого раздела, чтобы понять что это и как оно работает, чтобы потом этого же вопроса не задовать. Чтобы уже знать как оно работает. Ты вот решил свою верхнюю проблему, а дальше ещё только больше вопросов, как это как что, как сюда как туда, да так всегда происходит, но нужно же ведь и читать иногда учебнички.
@mr.akv ну вот просто есть я. Такая хабалистая и наглая морда. Раскатываю с удовольствием, лицом в грязь окунаю, унижаю, насилую, убиваю. И есть @denis01 который спокойно помогает решать проблему. Мы с ним слётанная пара. Как добрый и злой копы на допросе. И это божественно. И тут, уже почти сутки спустя, приходит @askanim и начинает... плагиат начинает. Истерику подобно мне пытается закатить. Тут такой номер не пройдет.
@Ganzal блин не удержался прошу простить... Но я это делаю редко... Хотел как то высказать мысль, чтобы он пошёл про ООП прочитал, да и вообще про php про что такое строчка, что такое массивы, и что такое объекты. Потому что если он написал вот эти две строчки и не понял почему его условие не отрабатывает, то у него пробел в знаниях. Я просто хотел сказать ему что ему нужно пополнять знания, потому что дальше будет ещё хлеще если он этих основ не знает. У него будет тьма элементарных вопросов и ошибок, и он не будет знать как их решить самостоятельно. Я попытался ему намекнуть, но видно я не удачно написал. Прошу прощения, я не всегда правильно и грамотно изъясняюсь, но мне правда тяжело на эт осмотреть, я патаюсь помочь, и помогаю как могу, так как сам ищу помощи, и всегда спрашиваю и порой, у меня бывают тоже дибильные вопросы, но я всё перевариваю в поисках решения ответа на свой вопрос, и я был бы рад и рад что меня направляют и помогают, в отдельности хочу сказать за это спасибо тебе, ему @mr.akv, и ему @denis01! --- Добавлено --- Тут дедушки тццц... --- Добавлено --- А дедушек нужно уважать --- Добавлено --- Эх Армейские времена Не куда от них не денешься
@Ganzal, вот оно чё, конкуренция --- Добавлено --- @askanim, меня рановато считать сэнсэем. Я тут сегодня ночью в статическом методе пытался $this вызвать.
@askanim впредь будь внимателен. Не очень красиво когда я уже раскатал человека и предложил ему не только бросить программирование но и вариант решения проблемы - заявляться со словами "Что это за нафиг?" Про отправку запроса уже тоже было объяснение. То есть ты будто выпал из темы. Увидел только половину сообщений и решил что нужно срочно ответить. Читай темы целиком. Веди спокойный диалог. Не повторяй уже сказанное.
@askanim, меня рановато считать сэнсэем. Я тут сегодня ночью в статическом методе пытался $this вызвать.[/QUOTE] Бывает и не такое ночью
Все труба, смотреть, смотрел, я про join и group by, но так ничего и не понял, как они вместе сочитаются в примерах везде только по раздельности, не понимаю я как составить запрос. Слишком все сложное это...