Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Wyciąganie danych z bazy, a zmienna.
Forum PHP.pl > Forum > Przedszkole
Dapi
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.
MateuszS
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
Matimor
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;
Dapi

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. sad.gif
MateuszS
No bo pisałem, wyświetlaj za pomocą pętli foreach np.

  1. $sql = sql(costam... );
  2. foreach($sql as $key)
  3. echo $key;
Dapi
Dzięki za pomoc smile.gif Działa.
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.