Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сбор данных из поля url в цикле 
V
    Опции темы
kshyms
Дата 3.12.2008, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 303
Регистрация: 30.8.2006
Где: Душанбе

Репутация: нет
Всего: 0



У нас есть соединение с базой таблица main  и его поле url     и lid - это номер строки таблицы
Код

$a=1;
while ($a<=10) {
$result = mysql_query("SELECT my_url FROM my_main")
    or die ("Invalid query");
echo "<p>UPDATE `db18927m`.`main` SET `url` = '1' WHERE `main`.`lid` =$a LIMIT 1;</p></td>" ;

$url=url;


$a++; }


то что в echo это так для примера надо это переделать
Надо в цикле по строкам таблицы вызвать каждый url


Это сообщение отредактировал(а) kshyms - 3.12.2008, 15:27
PM MAIL WWW Skype   Вверх
Валерия
Дата 3.12.2008, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 598
Регистрация: 10.3.2007

Репутация: нет
Всего: 8



Код

UPDATE `db18927m`.`main` SET `url` = (SELECT my_url FROM my_main WHERE `main`.`lid`=`my_main`.`тут_пишешь_поле_айди_с_таблицы_my_main`)

Не проверяла на работоспособность, но и без пхп smile
PM MAIL   Вверх
kshyms
Дата 5.12.2008, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 303
Регистрация: 30.8.2006
Где: Душанбе

Репутация: нет
Всего: 0



структура базы main
lid            url
1        http://1.com
2        http://2.com
3        http://3.com
4        http://4.com
5        http://5.com
6        http://6.com
7        http://7.com
8        http://8.com
9        http://9.com
include "соединение с базой";
Код

$a=1;
while ($a<=10) {
$result = mysql_query("UPDATE `db18927m`.`main` SET `url` = (SELECT my_url FROM my_main WHERE `main`.`lid`=$a `my_main`.`url` FROM `main`)")
   or die("Invalid query: " . mysql_error());


$url=url;
//все что захотим 

$a++; }

Может такая запись более корректная?



 
 



Это сообщение отредактировал(а) kshyms - 7.12.2008, 08:15
PM MAIL WWW Skype   Вверх
Валерия
Дата 5.12.2008, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 598
Регистрация: 10.3.2007

Репутация: нет
Всего: 8



А зачем один и тот же запрос без изменений выполнять 9 раз?
PM MAIL   Вверх
kshyms
Дата 6.12.2008, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 303
Регистрация: 30.8.2006
Где: Душанбе

Репутация: нет
Всего: 0



lid это индекс строки разве цикл по строкам не выполняется ? должны разные url загружать из 1 строки 2 строки и так далее, а чего не хватает?

Это сообщение отредактировал(а) kshyms - 6.12.2008, 12:43
PM MAIL WWW Skype   Вверх
Nigel
Дата 6.12.2008, 19:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


познаю мир
**


Профиль
Группа: Участник
Сообщений: 515
Регистрация: 20.11.2007

Репутация: нет
Всего: 19



Валерия, вы, наверно, качаете телепатию время от времени smile , лично я ниче не понял. 
kshyms
Код

$a=1;
while ($a<=10) {
$result = mysql_query("SELECT my_url FROM my_main")
    or die ("Invalid query");
echo "<p>UPDATE `db18927m`.`main` SET `url` = '1' WHERE `main`.`lid` =$a LIMIT 1;</p></td>" ;
$url=url;
$a++; }

Вот это можно объяснить? Во-первых, зачем тут селект, если он нигде не используется.
Во-вторых, зачем в апдейте лимит? У вас что поле lid не уникальное? Тогда этот запрос бессмысленный, т.к. будут обновлены произвольные записи, попавшие под условие. Используйте update+order by+limit.
В-третьих, т.к. обновление у вас простое (присвоение 1 ), то условие лучше сделать так 
Код

... where lid in(...)

Код

$result = mysql_query("UPDATE `db18927m`.`main` SET `url` = (SELECT my_url FROM my_main WHERE `main`.`lid`=$a `my_main`.`url` FROM `main`)")

Тут вообще неясно, в подзапросе 2 раза from. Зачем? Думаете будет работать?
P.S. приводите лучше полностью код и структуру таблицы с тестовыми примерами, написав что нужно получить в итоге, или нормально формулируйте вопрос в следующий раз.
PM MAIL   Вверх
kshyms
Дата 7.12.2008, 08:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 303
Регистрация: 30.8.2006
Где: Душанбе

Репутация: нет
Всего: 0



структура базы main
lid            url
1        http://1.com
2        http://2.com
3        http://3.com
4        http://4.com
5        http://5.com
6        http://6.com
7        http://7.com
8        http://8.com
9        http://9.com
include "соединение с базой";
Код

$a=1;
lid=$a;
while ($a<=10) {
$result = mysql_query("UPDATE `db18927m`.`main` SET `url` = (SELECT my_url FROM my_main WHERE `main`.`lid`=$a )")
   or die("Invalid query: " . mysql_error());

eho "$result  url";
$url=url;
//все что захотим 

$a++; }

Будет ли это выводить url для последующей его обработки?



 
 



Это сообщение отредактировал(а) kshyms - 7.12.2008, 08:22
PM MAIL WWW Skype   Вверх
ksnk
Дата 7.12.2008, 09:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 14
Всего: 386



kshyms, Чего нужно получить в таблице `db18927m`.`main`? 
Из последнего куска кода следует, что поле url во всех строках этой таблицы нужно сделать равным последнему (при a=10) значению из таблицы my_main . Это точно то, что надо?

Добавлено через 1 минуту и 20 секунд
Сначала задачу нужно сформулировать словами, а потом уже программировать.


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Nigel
Дата 7.12.2008, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


познаю мир
**


Профиль
Группа: Участник
Сообщений: 515
Регистрация: 20.11.2007

Репутация: нет
Всего: 19



Цитата(kshyms @ 7.12.2008,  08:17)
Код

$result = mysql_query("UPDATE `db18927m`.`main` SET `url` = (SELECT my_url FROM my_main WHERE `main`.`lid`=$a )")
   or die("Invalid query: " . mysql_error());

eho "$result  url";
$url=url;
//все что захотим 

$a++; }

Будет ли это выводить url для последующей его обработки?



 
 


нет, не будет. Переменная $result содержит индентификатор ресурса. Переменной $url вы присваиваете константу. А ваш запрос бессмысленный: 10 раз выполняете одно и то же, в результате для всех записей у вас будет один урл.
PM MAIL   Вверх
kshyms
Дата 30.12.2008, 07:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 303
Регистрация: 30.8.2006
Где: Душанбе

Репутация: нет
Всего: 0



Эта проблема уже решена, но возникла новая   if ($f[url]== "surl") {print "повтор!"; exit;}
  echo "</tr>"; это условие не выполняется ? 


Код

<html>
<head>
<title></title>
</head>
<body>
<form action=add.php method=post>
url:        <input type=text  value='' name=surl size=30><br>
<input type=submit  value='добавить'>
</form>

   <?

require "config.php";
// SQL-запрос:
$q = mysql_query ("SELECT * FROM main");

// Выводим таблицу:
for ($c=0; $c<mysql_num_rows($q); $c++)
{
echo "<tr>";

$f = mysql_fetch_array($q);
//echo "<td>$f[url]</td></p>";

  if ($f[url]== "surl") {print "повтор!"; exit;}
  echo "</tr>";
}
echo "</table>";

   echo mysql_error();
echo "успех";

   ?>
       </body>
</html>

PM MAIL WWW Skype   Вверх
kshyms
Дата 21.1.2009, 12:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 303
Регистрация: 30.8.2006
Где: Душанбе

Репутация: нет
Всего: 0



И эта проблема уже решена

Это сообщение отредактировал(а) kshyms - 31.1.2009, 16:17
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0952 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.