Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: select
Forum PHP.pl > Forum > Przedszkole
byker
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
ctom
do polaPost() przekazuj dane
nospor
Problem z mysql nie ma zadnego związku. Przenosze
Beniooo
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).")";
byker
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!
nospor
Dostales podpowiedz od ctom
Cytat
do polaPost() przekazuj dane
Nic dodac, nic ując.
byker
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.
com
zamiast takiej magi robi się po prostu bindowanie i używa mysqli albo pdo. A tak wgl masz błędy w domknięciach '
nospor
Poczytaj o GLOBAL oraz zmiennych zmiennych $$
Od biedy o EVAL
com
zamiast stringa array i implode smile.gif
byker
Dzięki za nakierowanie, W końcu się udało- zamiast zmienych wrzucam do zapytania po prostu ich wartości. Pozdrawiam
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.