Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Operacje na danych z mysql przez php
pablo663
post
Post #1





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 22.12.2009

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


Witam, jestem dosyć początkujący i nie mogę ruszyć pewnego tematu.
Jak w php robić obliczenia na danych z bazy danych?
Przykładowo:

W bazie danych mam
-id
-nazwa ciasta
-ilość jajek
-ilość mąki

Jak to obsłużyć w php żebym np. po wybraniu nazwy ciasta i wpisaniu ilości tego ciasta (np. 5 serników) dodawało mi potrzebne składniki i je wyświetlało?
Ucze się z książki "Tworzenie stron internetowych w php. Vademecum profesionalisty"
Z góry dzięki i pozdrawiam.
Go to the top of the page
+Quote Post
tog
post
Post #2





Grupa: Zarejestrowani
Postów: 93
Pomógł: 4
Dołączył: 1.12.2009
Skąd: lublin

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


skoro wydales kase na ksiazke i takich prostych rzeczy nie umiesz zrobic... heh snitch.gif

http://webmade.org/kursy-online/mysq_fetch...-kurs-mysql.php
dalej juz sobie poradzisz... mam nadzieje
Go to the top of the page
+Quote Post
pablo663
post
Post #3





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 22.12.2009

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


Dzięki, spróbuje coś zadziałać:)
Go to the top of the page
+Quote Post
Eagle
post
Post #4





Grupa: Zarejestrowani
Postów: 170
Pomógł: 14
Dołączył: 16.03.2007

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


Najpierw pobierasz potrzebne Ci dane (ilosć mątki i jajka)
  1. SELECT `maka`, `jajka` FROM `przepisy` WHERE `nazwa` LIKE 'sernik'


(Zakładam że w bazie masz zawsze dane dla jednego ciasta)

Później już tylko w php mnożysz;

  1. $ileSernikow = 5;
  2. $przepis <-- tu pobierasz dane z sql
  3. $ileJajek = $ileSernikow * $przepis['jajka'];
  4. $ileMaki = $ileSernikow * $przepis['maka'];


Pisane z palca
Go to the top of the page
+Quote Post
pablo663
post
Post #5





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 22.12.2009

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


Napisałem coś takiego:


  1. CREATE TABLE `ciasto` (
  2. `id` INT NOT NULL AUTO_INCREMENT,
  3. `nazwa` VARCHAR(50),
  4. PRIMARY KEY (`id`)
  5. );


  1. CREATE TABLE `składnik` (
  2. `id` INT NOT NULL AUTO_INCREMENT,
  3. `nazwa` VARCHAR(50),
  4. `id_ciasta` INT,
  5. PRIMARY KEY (`id`)
  6. );



  1. <?php
  2. // połączenie z bazą
  3. $polaczenie = mysql_connect('localhost', 'xxxx', '12345') or die("Brak połączenia: " . mysql_error());
  4. $baza = mysql_select_db('cukiernia',$polaczenie) or exit("Nie wybrano bazy, błąd: " . mysql_error());
  5. ?>
  6.  
  7. <?php
  8.  
  9.  
  10.  
  11. //Odbieram dane
  12.  
  13. $_POST['ciasto_id'];
  14. $_POST['liczba'];
  15.  
  16. //Zapytanie o produkty
  17. $q="SELECT nazwa FROM składnik WHERE id_ciasta=$_POST['ciasto_id']";
  18. $r=mysql_query($q);
  19.  
  20. //wyciągam z bazy i wypisuje
  21. echo "Składniki potrzebne do upieczenia".$_POST['liczba']."ciast";
  22. while($sql=mysql_fetch_assoc($r) {
  23.  
  24. echo $_sql['nazwa']." ilosc : ".$_POST['liczba'];
  25.  
  26. }
  27.  
  28. ?>
  29.  


Co jest nie tak? Pozdrawiam i z góry dziękuje za odpowiedzi.
Go to the top of the page
+Quote Post
kingofspace
post
Post #6





Grupa: Zarejestrowani
Postów: 141
Pomógł: 4
Dołączył: 16.11.2009

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


<?php
// połączenie z bazą
$polaczenie = mysql_connect('localhost', 'xxxx', '12345') or die("Brak połączenia: " . mysql_error());
$baza = mysql_select_db('cukiernia',$polaczenie) or exit("Nie wybrano bazy, błąd: " . mysql_error());
?>

<?php



//Odbieram dane

$ciasto=$_POST['ciasto_id'];
$liczba=$_POST['liczba'];

//Zapytanie o produkty
$q="SELECT * FROM składnik WHERE id_ciasta=$ciasto";
$r=mysql_query($q);



//wyciągam z bazy i wypisuje
echo "Składniki potrzebne do upieczenia";
echo($liczba);
echo"ciast";

$r=mysql_fetch_assoc($r);
$nazwa=$r['nazwa'];

echo($nazwa);
echo('ilosc : ');
echo('$liczba');
}

?>

daj tak powinno działać
Go to the top of the page
+Quote Post
pablo663
post
Post #7





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 22.12.2009

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


Zrobiłem taki formularz [formularz.html] :

  1. <form action="cuk3.php" method=post>
  2. <table border=0>
  3. <tr bgcolor=#CCCCCC>
  4. <td width="150">Program obliczeniowy</td>
  5. <td width="15">Skladniki ciast</td>
  6. </tr>
  7.  
  8. <tr>
  9.  
  10. <td>Numer ciasta</td>
  11. <td align="center"><input type="text" name="ciasto_id" size="3" maxlength="3"></td>
  12. </tr>
  13. <tr>
  14. <td>Ilosc</td>
  15. <td align="center"><input type="text" name="liczba" size="3" maxlength="3"></td>
  16. </tr>
  17. <tr>
  18. <td colspan="2 align="center"> <input type="submit" value="Oblicz"></td>
  19. </tr>
  20. </form>



Skrypt obliczający [cuk3.php] :

  1. <?php
  2.  
  3. $polaczenie = mysql_connect('localhost', 'xxxxx', '12345') or die("Brak połączenia: " . mysql_error());
  4. $baza = mysql_select_db('cukiernia',$polaczenie) or exit("Nie wybrano bazy, błąd: " . mysql_error());
  5. ?>
  6.  
  7. <?php
  8.  
  9.  
  10.  
  11.  
  12.  
  13. $ciasto=$_POST['ciasto_id'];
  14. $liczba=$_POST['liczba'];
  15.  
  16.  
  17. $q="SELECT * FROM składnik WHERE id_ciasta=$ciasto";
  18. $r=mysql_query($q);
  19.  
  20.  
  21.  
  22. //wyciągam z bazy i wypisuje
  23. echo "Składniki potrzebne do upieczenia ";
  24. echo($liczba);
  25. echo" ciast";
  26.  
  27. $nazwa=$r['nazwa'];
  28.  
  29. echo($nazwa);
  30. echo('ilosc : ');
  31. echo('$liczba');
  32.  
  33.  
  34. ?>


Nadal nie mogę sobie z tym poradzić

Tabele w bazie danych i inne informacje są we wcześniejszych postach.

Ten post edytował pablo663 28.12.2009, 12:56:07
Go to the top of the page
+Quote Post
Mephistofeles
post
Post #8





Grupa: Zarejestrowani
Postów: 1 182
Pomógł: 115
Dołączył: 4.03.2009
Skąd: Myszków

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


Po co dublować w bazie składniki? Zrób jeszcze trzecią tabelę, w której zapiszesz id ciasta, id składnika i jego ilość, a ze składników wywal id ciasta.

Poza tym pamiętaj zawsze o filtrowaniu wszelkich danych od użytkownika. Jeśli masz możliwość, to polecam używanie PDO zamiast starych funkcji mysql_.

Ten post edytował Mephistofeles 28.12.2009, 14:04:53
Go to the top of the page
+Quote Post
pablo663
post
Post #9





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 22.12.2009

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


A jeśli mam taką baze danych:

  1. CREATE TABLE `cukiernia`.`ciasto` (
  2. `id` INT( 100 ) NOT NULL ,
  3. `nazwa` VARCHAR( 25 ) NOT NULL ,
  4. `skladniki` VARCHAR( 4294967295 ) NOT NULL
  5. ) ENGINE = MYISAM ;
  6.  
  7. CREATE TABLE `cukiernia`.`Skladniki` (
  8. `id` INT( 100 ) NOT NULL ,
  9. `id_skladnika` INT( 100 ) NOT NULL ,
  10. `wartosc` VARCHAR( 4294967295 ) NOT NULL ,
  11. `jednostka` VARCHAR( 50 ) NOT NULL
  12. ) ENGINE = MYISAM ;
  13.  
  14. CREATE TABLE `cukiernia`.`skladnik` (
  15. `id` INT( 100 ) NOT NULL ,
  16. `nazwa` VARCHAR( 25 ) NOT NULL
  17. ) ENGINE = MYISAM ;


Pomoże ktoś zrobić zapytanie lub podpowie jak obsłużyć to w php aby liczyło listę składników na wybrane ciasta?

Ten post edytował pablo663 22.05.2010, 09:57:31
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 Aktualny czas: 21.08.2025 - 19:42