Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 15.01.2016
Сообщений: 12

Ну ничего не понимаю

09.02.2016, 16:02. Показов 1305. Ответов 6

Студворк — интернет-сервис помощи студентам
Каждая строчка проверена ... Каждая переменная правильна ... Все подключения есть ... но скрипт не работает ... Помогите советом пожалуйста ... Вот код :
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
    error_reporting(E_ALL);
    ini_set('allow_url_fopen','1');//разрешаем открывать адреса
    ini_set('output_buffering','1');//output_buffering = On
    set_time_limit(0);//убираем лимит времени    
    $mysqli = new mysqli("localhost", "parser", "parser", "parser");//подключаем бвзу данных
    $query = "SELECT id, product1 FROM parser WHERE product1 IS NOT NULL ORDER BY ID";//запрос
    $result = $mysqli->query($query);//выполнение запроса  
    $rows = array();
    while($row = $result->fetch_array())//ассоциативный массив
    {
        $rows[] = $row;
    }
    //if($rows)
    foreach($rows as $row)//перебор массива
    {
        $Id = $row['id'];//индекс
        $Product1 = $row['product1'];//название продукта
        
        $dbase  = mysql_connect('localhost', 'parser', 'parser');
        mysql_select_db("parser") or die("Не найдена БД");
        $post   = "SELECT price FROM post_2 WHERE UPPER(post) LIKE '%".strtoupper($Product1)."%' AND price > 0 LIMIT 1";
        $Price1 = mysql_query($post) or die("Запрос ошибочный");
 
        $Price = mysql_fetch_assoc($Price1) or die("ошибочн0");
        
        $stmt = $mysqli->prepare("UPDATE parser SET post1_price = ? WHERE id = ?");
        $stmt->bind_param('ss', $Price, $Id);
        $stmt->execute();
        $stmt->close();
        
        echo "$Id - $Price<br>";
        
        mysql_free_result($result);
        mysql_close($dbase);
        
        //echo $Price;
        //ob_flush();
        flush();
        sleep(1);
    }
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.02.2016, 16:02
Ответы с готовыми решениями:

Ничего не понимаю!!!???
Мужики! Ну хоть убей ничего не пойму. В августе месяце раскручиваемый мной сайт http://www.afe.ru/ был в десятке по двум фразам: ...

ничего не понимаю
Написать программу для вычисления таких арифметических формул. Х, У, вводить с клавиатуры. Константы задать в разделе определения констант.

Ничего не понимаю
Вот есть два сайта по запросу &quot;сауны&quot; - _saun.ru и _www.vipsauna.com На второй сайт - 117 ссылок со словом &quot;сауны&quot; ...

6
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
09.02.2016, 16:11
Цитата Сообщение от abezur25 Посмотреть сообщение
советом пожалуйста
Совет №1 - всегда описывайте проблему подробно, как скрипт должен работать, что делает по факту, какие ошибки выдаёт (или не выдаёт).
0
0 / 0 / 0
Регистрация: 15.01.2016
Сообщений: 12
09.02.2016, 16:23  [ТС]
вывод лишь с этой строки $Price = mysql_fetch_assoc($Price1) or die("ошибочн0"); то есть -- ошибочн0
Скрипт ищет значения во второй таблице по значениям из первой а потом найденные значения вставляет в первую
0
 Аватар для tarasalk
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
09.02.2016, 16:45
abezur25, зачем вы столько раз подключаетесь к бд? Да еще разными способами. Уверен эту выборку можно сделать одним запросом.. но вникать в такую кашу никакого желания.
0
0 / 0 / 0
Регистрация: 15.01.2016
Сообщений: 12
10.02.2016, 12:42  [ТС]
сделал с одним подключением ошибка та же
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
    error_reporting(E_ALL);
    ini_set('allow_url_fopen','1');//разрешаем открывать адреса
    ini_set('output_buffering','1');//output_buffering = On
    set_time_limit(0);//убираем лимит времени    
    $mysqli = new mysqli("localhost", "parser", "parser", "parser");//подключаем бвзу данных
    $query = "SELECT id, product1 FROM parser WHERE product1 IS NOT NULL ORDER BY ID";//запрос
    $result = $mysqli->query($query);//выполнение запроса  
    $rows = array();
    while($row = $result->fetch_array())//ассоциативный массив
    {
        $rows[] = $row;
    }
    foreach($rows as $row)//перебор массива
    {
        $Id = $row['id'];//индекс
        $Product1 = $row['product1'];//название продукта
        $post   = "SELECT price FROM post_2 WHERE UPPER(post) LIKE '%".strtoupper($Product1)."%' AND price > 0 LIMIT 1";
        $Price1 = $mysqli->query($post) or die("Запрос ошибочный");
        $Price = mysqli_fetch_row($Price1) or die("ошибочн0");
        $stmt = $mysqli->prepare("UPDATE parser SET post1_price = ? WHERE id = ?");
        $stmt->bind_param('ss', $Price, $Id);
        $stmt->execute();
        $stmt->close(); 
        echo "$Id - $Price<br>";
    }
Добавлено через 19 часов 55 минут
А вот так вот заработало ... но как я понимаю нужно оптимизировать ... Как это сделать ??? Может кто подскажет ???
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
    error_reporting(E_ALL);
    ini_set('allow_url_fopen','1');//разрешаем открывать адреса
    ini_set('output_buffering','1');//output_buffering = On
    set_time_limit(0);//убираем лимит времени    
    $dbase=mysql_connect('localhost', 'parser', 'parser');
    mysql_select_db('parser');
    @mysql_query('set character_set_client="utf8"');
    @mysql_query('set character_set_results="utf8"');
    @mysql_query('set collation_connection="utf8_general_ci"');
    $query = "SELECT id, product1, price FROM parser WHERE product1 IS NOT NULL ORDER BY ID";//запрос
 
    $result = mysql_query($query);//выполнение запроса 
    $rows = array();
    while($row = mysql_fetch_array($result))//ассоциативный массив
    {
        $rows[] = $row;
    }
    foreach($rows as $row)//перебор массива
    {
        $Id = $row['id'];//индекс
        $Product1 = $row['product1'];//название продукта
        $Price = $row['price'];//название продукта
        
        $Post_1 = @mysql_query("SELECT price FROM post_1 WHERE MATCH (post) AGAINST ('%" . $Product1 . "%') AND price > 0 LIMIT 1");
        $q1 = @mysql_fetch_assoc ($Post_1);
        $Price1 = $q1['price']; 
        $Update1 = "UPDATE parser SET post1_price1 = " . $Price1 . " WHERE id =" . $Id;
        $insert1 = mysql_query($Update1);
        @mysql_free_result($insert1);
        
        $Post_2 = @mysql_query("SELECT price FROM post_2 WHERE MATCH (post) AGAINST ('%" . $Product1 . "%') AND price > 0 LIMIT 1");
        $q2 = @mysql_fetch_assoc ($Post_2);
        $Price2 = $q2['price']; 
        $Update2 = "UPDATE parser SET post2_price1 = " . $Price2 . " WHERE id =" . $Id;
        $insert2 = mysql_query($Update2);
        @mysql_free_result($insert2);
 
        $Post_3 = @mysql_query("SELECT price FROM post_3 WHERE MATCH (post) AGAINST ('%" . $Product1 . "%') AND price > 0 LIMIT 1");
        $q3 = @mysql_fetch_assoc ($Post_3);
        $Price3 = $q3['price']; 
        $Update3 = "UPDATE parser SET post3_price1 = " . $Price3 . " WHERE id =" . $Id;
        $insert3 = mysql_query($Update3);
        @mysql_free_result($insert3);
 
        $Post_4 = @mysql_query("SELECT price FROM post_4 WHERE MATCH (post) AGAINST ('%" . $Product1 . "%') AND price > 0 LIMIT 1");
        $q4 = @mysql_fetch_assoc ($Post_4);
        $Price4 = $q4['price']; 
        $Update4 = "UPDATE parser SET post4_price1 = " . $Price4 . " WHERE id =" . $Id;
        $insert4 = mysql_query($Update4);
        @mysql_free_result($insert4);
 
        $Post_5 = @mysql_query("SELECT price FROM post_5 WHERE MATCH (post) AGAINST ('%" . $Product1 . "%') AND price > 0 LIMIT 1");
        $q5 = @mysql_fetch_assoc ($Post_5);
        $Price5 = $q5['price']; 
        $Update5 = "UPDATE parser SET post5_price1 = " . $Price5 . " WHERE id =" . $Id;
        $insert5 = mysql_query($Update5);
        @mysql_free_result($insert5);
        
        echo "$Id --- $Price --- $Price1 - $Price2 - $Price3 - $Price4 - $Price5<br>";
    }
0
 Аватар для tarasalk
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
10.02.2016, 16:44
Лучший ответ Сообщение было отмечено abezur25 как решение

Решение

Цитата Сообщение от abezur25 Посмотреть сообщение
но как я понимаю нужно оптимизировать ... Как это сделать ??
В плане скорости?
Ну вот здесь явно можно одним циклом обойтись.
PHP
1
2
3
4
5
6
while($row = mysql_fetch_array($result))//ассоциативный массив
    {
        $rows[] = $row;
    }
    foreach($rows as $row)//перебор массива
    {
А вообще, это же наверно одноразовый парсер? можно и забить на скорость.
2
0 / 0 / 0
Регистрация: 15.01.2016
Сообщений: 12
10.02.2016, 21:47  [ТС]
да он будет работать раз в неделю
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.02.2016, 21:47
Помогаю со студенческими работами здесь

Ничего не понимаю
Я зарегистрировала сайт в каталоге Яши,а при просмотре ИЦ он пишет,что ресурс не описан в каталоге :(

Ничего не понимаю :)
Я действительно ничего не понимаю :) Задача записывать с нескольких бирж инфо о сделках и стаканах. Типа: торговая пара...

ПОМОГИТЕ! НИЧЕГО НЕ ПОНИМАЮ!
как убрать из windows все пароли. например, при загрузке explorer или когда заходишь на ящик??? надо срочно!!! Увольняюсь!!! Заранее...

линкопойка в як. ничего не понимаю
вот сайт про собачек в ЯК а вот страничка ссылок выходит так можно? http://www.dog.ru/index.php3?mode=119&amp;id=411

Почему я ничего не понимаю в C++?
Я пол года изучаю этот язык и ничего не понимаю, выезжаю за счёт вопросов на киберфоруме, вот допустим я вчера что-то учил, а сегодня(!)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru