Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL]Mnożenie rekordów
Forum PHP.pl > Forum > Przedszkole
woxala123
Witam
Jak zrobić w Mysql by wartość w formularzu uaktualnij, mnożył od razu wartości w kolumnie jakiejś x tam tabeli.
Wiem jak sumować kolumnę, tylko teraz zależy mnie by od razu mnożył rekord z następnym rekordem.
Proszę o pomoc.
Mustava
Możesz jaśniej?
Jeżeli chodzi Ci o pomnożenie wartości w wszystkich (lub wybranych - "where") rekordach danego pola przez tą samą liczbę to ja zrobiłbym to mniej więcej tak:
  1. $liczba=5 //wartość przez którą mnozymy
  2. $result=mysql_query("select pole from tabela where cos='tam'");
  3. $row = mysql_fetch_row ($result);
  4.  
  5. while($row = mysql_fetch_row ($result))
  6. {
  7. $wartosc_przed=$row[pole];
  8. $wartosc_po=$row[pole]*$liczba;
  9. $result=mysql_query("update tabela set pole='$wartosc_po' where pole='$wartosc_przed" and cos='tam'");
  10. }


Pewnie można zrobić to bardziej profi, ale na początek też zadziała (chyba)
woxala123
Wszystko okey tlko chciałbym zrobić to w sql by pole z kolumny mnożył z następnym polem.
Z góry dzięki za zainteresowaniem tematem. Chętnie proszę o więcej sugestii.
Mustava
Jeżeli pola są w tym samym rekordzie:

  1. $result=mysql_query("select pole1, pole2 from tabela where cos='tam'");
  2. $row = mysql_fetch_row ($result);
  3. while($row = mysql_fetch_row ($result))
  4. {
  5. $wartosc_przed=$row[pole1];
  6. $wartosc_po=$row[pole1]*$row[pole2];
  7. $result=mysql_query("update tabela set pole1='$wartosc_po' where pole1='$wartosc_przed" and cos='tam'");
  8. }
woxala123
Mam jeszcze jedną prosbę. Czy stworzyłbyś jakiś przykład wraz z bazą danych bym mógł to lepiej przeanalizować. Dzięki za zainteresowaniem się tematem.
Mustava
  1. -- phpMyAdmin SQL Dump
  2. -- version 3.2.0.1
  3. -- <a href="http://www.phpmyadmin.net" target="_blank">http://www.phpmyadmin.net</a>
  4. --
  5. -- Host: localhost
  6. -- Czas wygenerowania: 11 Sty 2010, 21:32
  7. -- Wersja serwera: 5.1.37
  8. -- Wersja PHP: 5.3.0
  9.  
  10. SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
  11.  
  12. --
  13. -- Baza danych: `kici`
  14. --
  15.  
  16. -- --------------------------------------------------------
  17.  
  18. --
  19. -- Struktura tabeli dla `morda`
  20. --
  21.  
  22. CREATE TABLE IF NOT EXISTS `morda` (
  23. `id` int(10) NOT NULL AUTO_INCREMENT,
  24. `pole1` int(5) NOT NULL,
  25. `pole2` int(5) NOT NULL,
  26. PRIMARY KEY (`id`)
  27. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
  28.  
  29. --
  30. -- Zrzut danych tabeli `morda`
  31. --
  32.  
  33. INSERT INTO `morda` (`id`, `pole1`, `pole2`) VALUES
  34. (1, 2, 3),
  35. (2, 4, 5),
  36. (3, 6, 44),
  37. (4, 5, 234);
  38.  
  39.  


  1. <?php
  2. $connect = @mysql_connect('localhost', 'root', '') or die('Brak połączenia z serwerem MySQL.<br />Błąd: '.mysql_error());
  3. mysql_select_db("kici", $connect);
  4.  
  5.  
  6. $where="id=1";
  7.  
  8. $result=mysql_query("select * from morda where $where");
  9.  
  10. while($row = mysql_fetch_array ($result))
  11. {
  12. $wartosc_przed=$row['pole1'];
  13. $wartosc_po=$row['pole1']*$row['pole2'];
  14. echo"$wartosc_przed=$wartosc_po<br>";
  15. $result1=mysql_query("update morda set pole1=$wartosc_po where pole1=$wartosc_przed and $where");
  16. }
  17.  
  18.  
  19. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.