Yastr
@Yastr

Как изменить значения полей mysql?

Доброе утро.

Встала следующая задача.
Есть много изображений в галерее (более 1000), и всем нужно изменить значение поля alttext в базе по шаблону qw-000#
qw - название раздела, # - порядковый номер (1, 2, 3...)
И только например в галерее с galleryid = 3

То есть мне нужно каждую строку с определенным galleryid прогнать и поменять alttext на qw-000#

Не могу найти информации по циклам, как я понял тут не так все работает, подскажите пожалуйста, как это можно реализовать, хоть в какую сторону копать, руками будет не весело заполнять)

d12a5e74f5b74f469c579bdaea506103.png

Мало ли кому пригодится, сделал возможно по дурацки, но до чего додумался)
Логика: запрашиваем filename картинки из галереи с определенным ид (единственное что там было уникальное), создаем из них массив. После перебираем все значения и меняем alttext на сгенерированный там где filename совпал
<?php 

mysql_connect("localhost", "root", "") or die (mysql_error ());
mysql_select_db("dbname") or die(mysql_error());


function changeAltText($galleryId, $galleryName) {
  $query = mysql_query("SELECT filename FROM pictures WHERE galleryid='$galleryId'");

  $i=1;
  $fileName = array();
  while($row = mysql_fetch_array($query, MYSQLI_ASSOC)) {
    $fileName[$i]=$row['filename'];
    $i++;
  }
  $k = count($fileName)+1;

  for ($i=1; $i<$k; $i++) {
    $fileNameI = $fileName[$i];
    $name = $galleryName.sprintf("%'.05d\n", $i);
    mysql_query("UPDATE pictures SET alttext='$name' WHERE galleryid='$galleryId' AND filename='$fileNameI'");

    echo $fileNameI."<br>";
    echo $name."<br>";
  }
}

changeAltText(1, 'ar-');
changeAltText(2, 'ak-');
  • Вопрос задан
  • 395 просмотров
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега PHP
как это можно реализовать, хоть в какую сторону копать
Напишите простейший скрипт на php (раз уж вы его указали в тегах). Если не знаете как это сделать - разбейте свою задачу на небольшие шаги и ищите информацию в поисковике или задавайте конкретные вопросы здесь.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы