Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Operacje na danych z bazy
xziomas
post 24.07.2013, 14:49:01
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 24.07.2013

Ostrzeżenie: (0%)
-----


Witam uprzejmie,

mam problem z wykonaniem operacji na danych ktore zczytuje z bazy.

Opis:

Posiadam tabele (przepisy) z pozycjami: nazwa_produktu, data, waga_opakowania, skladnik, jednostka, waga.


Dane pobieram z formularza i zapisuje do bazy - nazwa_produktu, data i waga opakowania sa 'stale' tzn wpisane w formularzu tylko raz natomiast dla kazdego skladnika jest tworzony nowy wiersz zawierajacy rowniez nazwy_produktu itd....

pobieranie danych dla danego przepisu z bazy danych jesty proste (wybieram po nazwie produtku ktora sie nie powtarza - przy wprowadzaniu nowego przepisu skrypt sprawdza czy juz nie ma takiej nazwy pola).


Chcialbym stworzyc skrypt, ktory nie tylko pobiera dane z tabeli, ale rowniez wykonac na tych swiezo pobranych danych operacje i dopiero wtedy wyswietlic:

np.

pole x (tworzone na podstawie danych z bazy) = pole y * pole z.




problem w tym ze po pobraniu (znanymi mi funkcjami) danych z tabeli nie potrafie sie odwolac do danej 'komorki' w tablicy tymczasowej, szukalem i nie moge odnalezc informacji.



prosze o pomoc, mam nadzieje ze dosc jasno opisalem problem.




KOD:

Zapisywanie w bazie danych z przepisu(by pomoc w zobrazowaniu struktury tabeli):
  1.  
  2.  
  3. <?php
  4. if ($_SESSION['access']=='2') {
  5. include 'connect.php';
  6.  
  7.  
  8.  
  9. if( strlen($_POST['product_name'])>0 && strlen($_POST['date'])>0 && strlen($_POST['product_code'])>0 && strlen($_POST['pack_weight'])>0 && strlen($_POST['ingredient'][0])>0) {
  10.  
  11. $product = $_POST['product_name'];
  12. $check = "SELECT * FROM recipes WHERE product_name='$product'";
  13. $sql = mysqli_query($connect, $check);
  14. //$r = mysqli_fetch_assoc($sql);
  15. $check2 = mysqli_num_rows($sql);
  16. if($check2 > 0) {
  17.  
  18. echo 'You already have a Product with this name! Please change!';
  19.  
  20. }
  21. else {
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29. $count = count(array_filter($_POST['ingredient']));
  30. $owner = $_SESSION['username']." ".$_SESSION['surname'];
  31. $query = "INSERT INTO recipes (product_name, date, product_code, pack_weight, ingredient, weight, units, size_cut, supplier, number, instructions, allergens, mixing, owner ) VALUES ";
  32. for($i = 0; $i < $count; $i++) {
  33. $query .= "('" . $_POST['product_name'] . "','" . $_POST['date'] . "','" . $_POST['product_code'] . "','" . $_POST['pack_weight'] . "','" . $_POST['ingredient'][$i] . "','" . $_POST['weight'][$i] . "','" . $_POST['units'][$i] . "','" . $_POST['size_cut'][$i] . "','" . $_POST['supplier'][$i] . "','" . $_POST['number'] . "','" . $_POST['instructions'] . "','" . $_POST['allergens'] . "','" . $_POST['mixing'] . "','" . $owner . "')";
  34. if($i < $count - 1)
  35. $query .= ", ";
  36.  
  37.  
  38. mysqli_query($connect,$query);
  39.  
  40.  
  41.  
  42.  
  43. }
  44. echo 'Recipe added!';
  45. ?>
  46. <a href="menu.php"><button>Go Back!</button></a>
  47.  
  48. <?php
  49. }}
  50.  
  51. else { echo 'No neccesary positions in form'; };
  52.  
  53.  
  54.  
  55. }
  56. else {
  57. echo "You're not allowed to be here!";
  58. $url = 'index.php';
  59. echo '<META HTTP-EQUIV=Refresh CONTENT="0; URL='.$url.'">';
  60. }
  61.  
  62. ?>
  63.  
  64.  
  65.  
  66.  
  67.  





p.s. moze latwiej poprostu zrobic operacje na danych przy zapisywaniu do tabeli? Tak czy inaczej prosze o opinie, zawsze chetnie sie czegos nowego naucze smile.gif

Ten post edytował xziomas 24.07.2013, 14:58:30
Go to the top of the page
+Quote Post
nospor
post 24.07.2013, 14:59:41
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Pobranie danych robisz przy pomocy tego
http://pl1.php.net/manual/en/mysqli-result.fetch-array.php
zapoznaj sie z tym manualem bo pytasz o naprawde proste rzeczy


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
xziomas
post 24.07.2013, 15:08:03
Post #3





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 24.07.2013

Ostrzeżenie: (0%)
-----


Dzieki za szybka odpowiedz, pobieram dane ta funkcja,
natomiast problem mam po pobraniu, jedyne co umiem (jak narazie smile.gif ) to wyswietlic dane funkcja while. ale pytanie jest - czy da sie - jakos odwolac do danej komorki w tych pobranych danych.



.. | 1 | 2 | 3 |
--------------------------
A | x | y | z |
---------------------------
B | a | s | d |




przypuszczam ze tak wyglada tablica po wczytaniu ja przez w/w funkcje, jak teraz mam sie odwolac do tych danych i zrobic operacje np: B3*A2 (d*y).


Jesli pytanie trywialne to przepraszam, pomozcie bede wdzieczny bo poki co odpowiedzi nie znalazlem smile.gif

Ten post edytował xziomas 24.07.2013, 15:09:41
Go to the top of the page
+Quote Post
nospor
post 24.07.2013, 15:09:30
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No to skoro juz umiesz pobrac dane, czyli je masz, to jaki masz problem z przemnozeniem jednej wartoci przez druga... ?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
xziomas
post 24.07.2013, 15:11:23
Post #5





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 24.07.2013

Ostrzeżenie: (0%)
-----


Ano taki ze nie wiem jak sie odwolac do 'komorki' B3 smile.gif


Podpowiesz? smile.gif

Ten post edytował xziomas 24.07.2013, 15:49:58
Go to the top of the page
+Quote Post
soochy1
post 24.07.2013, 19:56:13
Post #6





Grupa: Zarejestrowani
Postów: 5
Pomógł: 1
Dołączył: 23.07.2013

Ostrzeżenie: (0%)
-----


  1. $index=1;
  2. while ($row = mysql_fetch_assoc($baza))
  3. {
  4.  
  5. $komórka["B"]["$index"]=$row["B"];
  6. $index++;
  7. }


zakladam ze robisz w ten sposób

wiec utworzy CI się tablica asocjacyjna posiadająca zaciągniete dane z bazy gdzie z wartosciami $komórka["B"]["1"], $komórka["B"]["2"], $komórka["B"]["3"] itd

czyli odwołanie do b3 to będzie $komórka["B"]["3"]
Go to the top of the page
+Quote Post
xziomas
post 25.07.2013, 07:15:38
Post #7





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 24.07.2013

Ostrzeżenie: (0%)
-----


Dziekuje,
nie sprawdzalem jeszcze co prawda ale wyglada to prosto i porzadnie - tak jak chcialem wink.gif

Odbiegajac od tematu, czy forma w jakiej zapisuje dane do tabeli jest ok? Czy ktos z doswiadczenia zna inne sposoby, zeby potem latwiej bylo przeprowadzac operacje?




Jeszcze raz dzieki za pomoc,
pozdrawiam
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 16.06.2025 - 21:00