Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> select
byker
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 23.01.2013

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


Witam,
Chciałbym stworzyć funkcję która pomoże wygereować zapytanie do bazy:
  1. include("connect.php");
  2.  
  3. function polaPost(){
  4. $pola=array('data', 'imie', 'nazwisko');
  5. foreach ($pola as $value){
  6. $value="'\".$".$value.".\"', ";
  7. $string.= $value;
  8. }
  9. return rtrim($string, ", ");
  10. };
  11.  
  12. \\post
  13. $data= $_POST['data'];
  14. $imie= $_POST['imie'];
  15. $nazwisko= $_POST['nazwisko'];
  16. $data= addslashes($databadania);
  17. $imie =addslashes($imie);
  18. $nazwisko= addslashes($nazwisko);
  19. }
  20. function insertIntoPola(){
  21. $pola=array('data', 'imie', 'nazwisko');
  22. foreach ($pola as $pole){
  23. $polet.= $pole.", ";
  24. }
  25. return rtrim($polet, ", ");
  26. }
  27. $zapytanie= "INSERT INTO mojaTabela (".insertIntoPola().") VALUES (".polaPost().")";
  28. $wynik= $db-> query($zapytanie);
  29.  
  30.  

W efekcie po wykonaniu :
  1. echo $zapytanie;

dostaję coś takiego:
  1. INSERT INTO bad_kob_przed_por_pat_flor_bakt (databadania, imie, nazwisko) VALUES ('".$data."', '".$imie."', '".$nazwisko.");
  2.  

Połączenie i zapis do bazy działa, ale zapisują się nazwy zmiennych, zamiast wartości- np: ".$data.";
Mam pytanie co zmienić żeby można było przekazać poprawną komendę do query()?
pozdrawiam

Ten post edytował byker 30.03.2015, 17:34:21
Go to the top of the page
+Quote Post
ctom
post
Post #2





Grupa: Zarejestrowani
Postów: 321
Pomógł: 55
Dołączył: 19.04.2009

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


do polaPost() przekazuj dane


--------------------
Polecam MyDevil hosting idealny dla deweloperów
Go to the top of the page
+Quote Post
nospor
post
Post #3





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




Problem z mysql nie ma zadnego związku. Przenosze


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

"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
Beniooo
post
Post #4





Grupa: Zarejestrowani
Postów: 260
Pomógł: 26
Dołączył: 26.01.2012
Skąd: Ci to przyszło do głowy?

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


Powinno być:
  1. function polaPost($values){
  2. $pola=$values;
  3. foreach ($pola as $value){
  4. $value="'\".$".$value.".\"', ";
  5. $string.= $value;
  6. }
  7. return rtrim($string, ", ");
  8. };
  9.  
  10. //
  11. $dodaj = Array("dodaj1", "dodaj2", "dodaj3");
  12. $zapytanie= "INSERT INTO mojaTabela (".insertIntoPola().") VALUES (".polaPost($dodaj).")";


--------------------
Mój post rozwiązał Twój problem? Naciśnij co Ci szkodzi? ;-)
Go to the top of the page
+Quote Post
byker
post
Post #5





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 23.01.2013

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


Dzięki za odpowiedzi, niestety dalej zamiast zmiennych przekazywane są zwykłe stringi z nazwami zmiennych. Do bazy zapisuje się:
80 0000-00-00 ".$imie." ".$nazwisko."
A powinny się zapisać dane ze zmiennej $imie, $data, $nazwisko.
Będę wdzięczny za jakąś podpowiedź. pozdrawiam!
Go to the top of the page
+Quote Post
nospor
post
Post #6





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




Dostales podpowiedz od ctom
Cytat
do polaPost() przekazuj dane
Nic dodac, nic ując.


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

"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
byker
post
Post #7





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 23.01.2013

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


do polaPost() przekazałem tablicę . Nie chcę przekazywać samych zmiennych, bo ich ilość i nazwy będą za każdym razem różne- chcę wykorzystać funkcję w różnych miejscach. Co ciekawe, jak wykonam
  1. echo $zapytanie;

i skopiuję tekst z monitora do
$zapytanie1, to
  1. $wynik= $db-> query($zapytanie1);
  2.  

Działa jak należy.

Ten post edytował byker 31.03.2015, 09:32:59
Go to the top of the page
+Quote Post
com
post
Post #8





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


zamiast takiej magi robi się po prostu bindowanie i używa mysqli albo pdo. A tak wgl masz błędy w domknięciach '
Go to the top of the page
+Quote Post
nospor
post
Post #9





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




Poczytaj o GLOBAL oraz zmiennych zmiennych $$
Od biedy o EVAL


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

"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
com
post
Post #10





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


zamiast stringa array i implode smile.gif
Go to the top of the page
+Quote Post
byker
post
Post #11





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 23.01.2013

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


Dzięki za nakierowanie, W końcu się udało- zamiast zmienych wrzucam do zapytania po prostu ich wartości. 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 Aktualny czas: 21.08.2025 - 19:21