Обновить все записи в MySQL - PullRequest
1 голос
/ 17 ноября 2011

В настоящее время у меня есть таблица шириной 17 столбцов и 30 записей.

По сути, это таблица с другого сайта, которую я очищаю и затем вставляю в таблицу MySQL.

$html = str_get_html($newHTML); // get the HTML     
        $tdContents = ""; // declare variable
        $rowArray = array(); // declare array for records
        for ($j = 0; $j < 510; $j++) // loop through each TD element, 17 columns by 30 records so 510
        {
            $f = $html->find("td",$j); // get the td elements from the html
            $tdContents = $f->innertext; // get the text inside the td
            $rowArray[] = $tdContents; // store that text inside the array

            if ($j == 16 || $j == 33 || $j == 50 || $j == 67 || $j == 84 || $j == 101 || $j == 118 || $j == 135 || $j == 152 || $j == 169 || $j == 186 || $j == 203 || $j == 220 || $j == 237 || $j == 254 || $j == 271 || $j == 288 || $j == 305 || $j == 322 || $j == 339 || $j == 356 || $j == 373 || $j == 390 || $j == 407 || $j == 424 || $j == 441 || $j == 458 || $j == 475 || $j == 492 || $j == 509) // every 17 td elements
            {
                $comma_separated = implode("','", $rowArray); // seperate the array contents with commas and apostrophes, set up for mysql
                $comma_separated = "'" . $comma_separated . "'"; // add apostrophes to beginning and end of the string
                $result = mysql_query("INSERT INTO standings_20112012 VALUES (".$comma_separated.")"); // insert the data into mysql
                $rowArray = array(); // clear the array, for the next record

            }
        }

Комментарии должны объяснить, хорошо. Это создает таблицу 17 х 30 со всей необходимой мне информацией. Если я запустлю это снова, он вставит еще 30 записей, что плохо. Я хочу только обновить / перезаписать и т.д. таблицу, которая уже создана. Таким образом, в таблице должно быть только 30 записей. Однако я в замешательстве.

Любая помощь?

1 Ответ

2 голосов
/ 17 ноября 2011

Добавьте первичный ключ к вашему набору данных, который является уникальным.Затем измените ваш запрос MySQL на INSERT IGNORE, и он выбросит дубликаты.В качестве альтернативы вы также можете использовать ON DUPLICATE UPDATE, если вам нужно обновить то, что у вас уже есть в таблице.

...