powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Подскажите как выполнить данные элементарные дествия
9 сообщений из 9, страница 1 из 1
Подскажите как выполнить данные элементарные дествия
    #38637420
BossBox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проверить наличие текущего ключа в таблице если есть ОБНОВЛЯЕМ параметр $status если нет добавляем новые данные

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
<?php

$mysqli = new mysqli("localhost", "bossbox_root", "1111111111", "bossbox_users");
if ($mysqli->connect_errno) {
    echo "Не удалось подключиться к MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

$adress = $_SERVER["REMOTE_ADDR"];
$status = $_GET['status'];

$mysqli->query("INSERT INTO test(ip, status) VALUES ('".$adress."', '".$status."')")

if ($result = $mysqli->query("SELECT '2.94.62.251' FROM ip LIMIT 10")) {printf("Данные уже имеются"); $result->close();}


?>
...
Рейтинг: 0 / 0
Подскажите как выполнить данные элементарные дествия
    #38637423
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BossBoxесли есть ОБНОВЛЯЕМ <...> если нет добавляемinsert on duplicate key update
...
Рейтинг: 0 / 0
Подскажите как выполнить данные элементарные дествия
    #38637429
BossBox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот так?

$mysqli->query("INSERT INTO test(ip, status) VALUES ('".$adress."', '".$status."') ON DUPLICATE KEY UPDATE status='$status'";)
...
Рейтинг: 0 / 0
Подскажите как выполнить данные элементарные дествия
    #38637434
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html You can use the VALUES(col_name) function in the UPDATE clause to refer to column values from the INSERT portion of the INSERT ... UPDATE statement. In other words, VALUES(col_name) in the UPDATE clause refers to the value of col_name that would be inserted, had no duplicate-key conflict occurred
Код: sql
1.
2.
3.
INSERT INTO test(ip, status) 
 VALUES ('".$adress."', '".$status."') 
 ON DUPLICATE KEY UPDATE status=values(status)
...
Рейтинг: 0 / 0
Подскажите как выполнить данные элементарные дествия
    #38637435
BossBox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Странно но у меня все равно дублируется при добавлении:

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
$mysqli = new mysqli("localhost", "bossbox_root", "1111111111", "bossbox_users");

$adress = $_SERVER['REMOTE_ADDR'];
$status = $_GET['status'];

$mysqli->real_query("INSERT INTO test(ip, status) 
 VALUES ('".$adress."', '".$status."') 
 ON DUPLICATE KEY UPDATE status=values(status)");
...
Рейтинг: 0 / 0
Подскажите как выполнить данные элементарные дествия
    #38637471
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BossBox,

а уникальный индекс-то имеется?
...
Рейтинг: 0 / 0
Подскажите как выполнить данные элементарные дествия
    #38637489
BossBox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IP адрес не считается уникальным?
...
Рейтинг: 0 / 0
Подскажите как выполнить данные элементарные дествия
    #38637500
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BossBox,

так я у вас и спрашиваю, есть уникальный индекс на это поле или нет?
...
Рейтинг: 0 / 0
Подскажите как выполнить данные элементарные дествия
    #38637583
BossBox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, это поле с IP адресом.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Подскажите как выполнить данные элементарные дествия
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]