Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Wyciąganie danych z bazy, a zmienna.
Dapi
post
Post #1





Grupa: Zarejestrowani
Postów: 186
Pomógł: 13
Dołączył: 7.08.2009

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


Witam.
Mam problem.
Otóż tworzę sobie stronkę w PHP i MySQL.
Wiadomo, jak MySQL to wyciąganie danych.
Do tego napisałem sobie taką funkcję:

  1. function sql($tabela, $wybierz, $warunek1, $warunek2) {
  2. $zapytanie = mysql_query("SELECT `".$wybierz."` FROM `".$tabela."` WHERE `".$warunek1."`='".$warunek2."'");
  3. while ($row = mysql_fetch_array($zapytanie)) {
  4. printf ("%s", $row[0]);
  5. };
  6. }


Narazie wszystko pięknie, śmiga jak należy.

Napisałem szablon strony (pliki *.tpl).
Wreszcie przyszła pora umieścić wyciągane dane w odpowiednim miejscu.
pierwszy pomysł to:
  1. $page['nazwa'] = sql(tabela, wartosc, nazwa, nazwa);

niestety pomysł upadł, bo przecież w sql() wynik wyświetlany jest za pomocą printf().
Jest jakaś opcja, żeby wynik zapisać do zmiennej i wyświetlić ją w dowolnym miejscu?

Proszę o szybką odpowiedź, bo dość mi się spieszy.

Pozdrawiam.

PS. Możliwe, że funkcje da się zapisać krócej, ale napisałem ją tak, jak potrafiłem.
Kulturalne uwagi mile widziane.

Ten post edytował Dapi 12.02.2010, 15:38:04
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
MateuszS
post
Post #2





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


Może tak

  1. function sql($tabela, $wybierz, $warunek1, $warunek2) {
  2. $zapytanie = mysql_query("SELECT `".$wybierz."` FROM `".$tabela."` WHERE `".$warunek1."`='".$warunek2."'");
  3. $i=0;
  4. while ($row = mysql_fetch_array($zapytanie)) {
  5. $zmienna[$i]=$row[0];
  6. $i++;
  7. };
  8. return $zmienna;
  9. }


Teraz zwraca ci tablicę, wyświetlasz np za pomocą foreach
Go to the top of the page
+Quote Post
Matimor
post
Post #3





Grupa: Zarejestrowani
Postów: 287
Pomógł: 10
Dołączył: 22.08.2009

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


Do zwracania wartości z funkcji służy return;

  1. function db_select($Table, $Row, $Clause)
  2. {
  3. $query = mysql_query(sprintf("SELECT * FROM `".$Table."` WHERE ".$Clause))
  4. $column = mysql_fetch_array($query);
  5. return $column[$Row];
  6. }



Przykład wykorzystania:
  1. echo db_select("users", "costam", "`login`='Janek'"




Jeżeli jest to tabela konfiguracyjna strony to polecam taki sposób:
  1. $mysql['Host'] = "**";
  2. $mysql['User'] = "**";
  3. $mysql['Pass'] = "**";
  4. $mysql['DB'] = "**";
  5. mysql_connect($mysql['Host'], $mysql['User'], $mysql['Pass']);
  6. mysql_select_db($mysql['DB']);
  7. mysql_query("SET NAMES utf8");
  8. $query = mysql_query(sprintf("SELECT `setting`,`value` FROM `settings`"));
  9. $row = mysql_fetch_row($query);
  10. while($row)
  11. {
  12. $page[$row[0]] = $row[1];
  13. $row = mysql_fetch_row($query);
  14. }
  15. global $mysql;
Go to the top of the page
+Quote Post
Dapi
post
Post #4





Grupa: Zarejestrowani
Postów: 186
Pomógł: 13
Dołączył: 7.08.2009

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



Cytat(MateuszScirka @ 12.02.2010, 16:20:31 ) *
Może tak

  1. function sql($tabela, $wybierz, $warunek1, $warunek2) {
  2. $zapytanie = mysql_query("SELECT `".$wybierz."` FROM `".$tabela."` WHERE `".$warunek1."`='".$warunek2."'");
  3. $i=0;
  4. while ($row = mysql_fetch_array($zapytanie)) {
  5. $zmienna[$i]=$row[0];
  6. $i++;
  7. };
  8. return $zmienna;
  9. }


Teraz zwraca ci tablicę, wyświetlasz np za pomocą foreach



index.php
  1. $zmienna = sql(ustawienia, wartosc, nazwa, nazwa_sklepu);
  2. echo $zmienna;


funkcje.php
  1. function sql($tabela, $wybierz, $warunek1, $warunek2) {
  2. $zapytanie = mysql_query("SELECT `".$wybierz."` FROM `".$tabela."` WHERE `".$warunek1."`='".$warunek2."'");
  3. $i=0;
  4. while ($row = mysql_fetch_array($zapytanie)) {
  5. $zmienna[$i]=$row[0];
  6. $i++;
  7. };
  8. return $zmienna;
  9. }


Nie wiem co jest źle, ale wynik to Array. (IMG:style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
MateuszS
post
Post #5





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


No bo pisałem, wyświetlaj za pomocą pętli foreach np.

  1. $sql = sql(costam... );
  2. foreach($sql as $key)
  3. echo $key;
Go to the top of the page
+Quote Post
Dapi
post
Post #6





Grupa: Zarejestrowani
Postów: 186
Pomógł: 13
Dołączył: 7.08.2009

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


Dzięki za pomoc (IMG:style_emoticons/default/smile.gif) Działa.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 08:27