PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (5): « 1 2 3 4 [5]

> Найдено сообщений: 67
Object Отправлено: 08 Сентября, 2010 - 11:34:19 • Тема: Не выводит результат в браузере • Форум: SQL и Архитектура БД

Ответов: 101
Просмотров: 598
CODE (htmlphp):
скопировать код в буфер обмена
  1. for($i=0;$i<3;$i++)
  2.                                 {
  3. $query="UPDATE cars SET img='$img[$i]' WHERE id='$id'";/*, img1='$img1', img2='$img2' WHERE id='$id'";*/
  4.                                
  5.                                         if (mysql_query($query)) {
  6.                                         echo "Запись добавлена!<br>";
  7.                                         }
  8.                                         else {
  9.                                         echo "Запись не добавлена!<br>";
  10.                                         }
  11.                                  }

UPDATE это не добавление, а обновление записи, так что запись будет не добавлена, а изменена ну типа того. Но это не столь важно что Вы там будете выводить, вопрос в другом зачем сначала вставлять запись, потом ее обновлять? Может стоит сразу добавлять запись с картинками? И в третьих, как Вам уже сказали вы не сможете сохранить 3 картинки в одном поле одной и той же записи.

Вообще объясните свою задачу и возможно Вам подскажут как это реализовать не извращенными способами, потому что кажется у Вас это именно так.
Object Отправлено: 08 Сентября, 2010 - 10:08:29 • Тема: Не выводит результат в браузере • Форум: SQL и Архитектура БД

Ответов: 101
Просмотров: 598
KuPbI4 пишет:
2. с вами согласен.
как должно?


Если у Вас $img будет массивом, а не строкой то этот запрос "UPDATE cars SET img='$img[0]'" нужно повторять в цикле, перебирая каждый элемент массива $img[0]' $img[1]', $img[2]' и т.д.

KuPbI4 пишет:

условие чего?


Почти во всех запросах UPDATE нужно использовать условие WHERE для того чтобы обновлялись только нужные записи. Вы же какраз не используете условие WHERE поэтому у Вас обновится поле img до конца таблицы и в базе по всем записям будет одна картинка, вставленная последней. RTFM, мля!

KuPbI4 пишет:

3. довольно забавная? это еще почему? приведет к взлому?


При передаче параметров в запрос нужно использовать функцию mysql_real_escape_string. http://php.su/functions/?mysql_r...al_escape_string Все ходы записаны

KuPbI4 пишет:
ну кто же - я ведь
я сделал ведь авторизацию и пароль админки в md5)
или что то тут не так, поправьте меня)

Авторизация это как бронированная дверь в офис, никто левый не войдет, но что если кто-то из сотрудников сойдет с ума или его подкупят и он решит все сломать внутри?
Object Отправлено: 06 Сентября, 2010 - 12:42:01 • Тема: Помогите написать запрос • Форум: SQL и Архитектура БД

Ответов: 4
Просмотров: 29
А так:
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SELECT players.name AS p_name, players.exp, players.gender, players.race, players.player_class, players.world_id, players.online, players.title_id, legions.name FROM players
  3. LEFT JOIN legion_members ON players.id=legion_members.player _id
  4. LEFT JOIN legions ON legions.id=legion_members.legion _id
  5. WHERE players.online = '1' AND (players.name<>'Administration'
  6. OR players.name<>'Support'
  7. OR players.name<>'Something'
  8. OR players.name<>'Rik')
Object Отправлено: 06 Сентября, 2010 - 12:21:48 • Тема: Не выводит результат в браузере • Форум: SQL и Архитектура БД

Ответов: 101
Просмотров: 598
KuPbI4 пишет:
где то понял конечно, а где-то нет. буду разбираться, но все-таки надо хорошо знать пхп и суть в нем скрипта, что именно программист должен написать

А знаете почему так? Потому что Вы хотите все и сразу. А вот хорошенько подучить мат. часть нет желания или не считаете нужным, авось само прийдет.
Когда человек начинает учится читать он сначала изучает алфавит, а потом начинает читать слова, словосочетания потом предложения. Вот так и тут если вы до этого не имели опыта в программировании то нужно все делать постепенно. Изучать последовательно темы от простого к сложному, еще не плохо вести конспект, конечно не переписывая всю книгу, но делая заметки по самым важным моментам изучаемой темы, так как это позволяет лучше запомнить то что читаешь, плюс потом можно использовать эти записи как справочник, чтобы не перелистывать книгу в поисках ответа на нужный вопрос. Сначала нужно писать маленькие скрипты, чтобы разобраться как это работает, так как даже в скрипте из нескольких строк можно накосячить. А потом переходить к более сложным.
Почитайте начальную литературу по базам данных, по языку SQL. Вы узнаете что такое "ключевые поля", что такое "нормализация базы данных", для чего нужны индексы, что такое связи в БД.
Даже в Вашем случае с одной таблицей я бы сделал две, ну это чисто ИМХО. Тоесть одна таблица с данными по авто (в том числе и модель), а вторая таблица-справочник, для марок авто (но тут нужно знать что такое связи между таблицами). Тогда бы у Вас одинаковые автомобили имели бы одинаковый формат названия (марки). Например, автомобиль ВАЗ можно записать и как Ваз, а можно ВАЗ 2108 или вообще LADA. И представьте сколько вариантом запроса может быть если потребуется отобрать из каталога все автомобили марки ВАЗ?
Object Отправлено: 31 Августа, 2010 - 14:13:17 • Тема: Не добавляются данные • Форум: SQL и Архитектура БД

Ответов: 12
Просмотров: 58
emaylov пишет:
Подскажите, а из какой это книги?

"PHP5 в подлиннике" авторы: Д.Котеров и А.Костарев гл. 44 стр. 1006 "Использование перенаправлений"
Object Отправлено: 31 Августа, 2010 - 10:15:09 • Тема: Не выводит результат в браузере • Форум: SQL и Архитектура БД

Ответов: 101
Просмотров: 598
Так проблема в Warning:... уже решена или это в phpmyadmin все так чудесно выбирается?
Сам долго мучился с этой проблемой.

Да и еще у вас что поле "Год" уникальное? А разве не бывает автомобилей одного года выпуска?
Object Отправлено: 31 Августа, 2010 - 09:57:38 • Тема: Не добавляются данные • Форум: SQL и Архитектура БД

Ответов: 12
Просмотров: 58
Я могу ошибаться, но представьте результат работы вашего скрипта если вдруг его запустит 2 человека одновременно (а если сайт популярный то может и 10-20 человек). Дело в том что авто-инкрементные поля работают так что значение в них присваивается в момент вставки записи, а у Вас тут еще куча манипуляций.

А по поводу F5 чтобы решить проблему "копните" в сторону отправки заголовков: Header

Вот пример из книги PHP5 тут нет проблемы со вставкой данных при "Refresh":
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $FNAME="book.txt";
  3. if (@$_REQUEST['doAdd']) {
  4.    $f=fopen($FNAME, "a");
  5.    if (@$_REQUEST['text']) fputs($f, $_REQUEST['text']."\n");
  6.    fclose($f);
  7.    $rnd=time();
  8.    Header("Location: http://{$_SERVER['SERVER_NAME']}{$_SERVER['SCRIPT_NAME']}?$rnd");
  9.    exit();
  10. }
  11. $gb=@file($FNAME);
  12. if (!$gb) $gb=array();
  13. ?>
  14. <form action="<?=$_SERVER['SCRIPT_NAME']?>" method="POST">
  15. Текст:<br>
  16. <textarea name="text"></textarea><br>
  17. <input type="submit" name="doAdd" value="Добавить">
  18. </form>
  19. <?foreach ($gb as $text) {?>
  20.    <?=htmlspecialchars($text)?><br><hr>
  21. <?}?>

Страниц (5): « 1 2 3 4 [5]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB