Zawarcie sql w PHP

Zawarcie sql w PHP
K1
  • Rejestracja:ponad 7 lat
  • Ostatnio:ponad 5 lat
  • Postów:11
0

Witam Serdecznie,

Tworzę system aukcji w którym po miniętym wcześniej określonym czasie dana aukcja staje się "unpublished"

Wygląda to w ten sposób

Kopiuj
<?php
$a = $row->extra1;
$uy = $row->extra4;
$yu = $row->extra5;
$y = date('Y');
$m = date('m');
$d = date('d');
$h = date('H');
$i = date('i');
$difference = mktime($uy-1, $yu, 10, $m, $a, $y, 0) - time(); 

if ($difference < 0) $time = -$difference; else $time = $difference; 

$days = floor($time/86400); 
$hours = floor(($time-($days*86400))/3600); 
$mins = floor (($time-($days*86400)-($hours*3600))/60); 
$secs = floor ($time-($days*86400)-($hours*3600)-($mins*60)); 

if ($difference <= 0) { 
  echo 'Od zakończenia upłyneło ';


} else {
	echo $row->published;
  echo 'Do końca zostało ';

}
echo $days . ' dni ' . $hours . ' godzin ' .  $mins . ' minut ' . $secs . ' sekund'; // echowanie wartości.
echo '<br> Data zakoczenia: ';
echo   $uy-1 . ':' . $yu . ' ' . $a . '.' . $m . '.' . $y  ;
?>

Generalnie wszystko fajnie, pokazuje ile do końca oraz ile po zakończeniu.

W miejsce tam gdzie jest "od zakończenia upłyneło" chciałbym całkowicie to wywalić a wstawić formułę która zmieni w kolumnie tabeli published z "1" na "0" (ta operacja sprawi, że już ta aukcja nie będzie widoczna" ( w sql by to wyglądało CHYBA tak UPDATE nazwa_tabeli SET published=0

Nie wiem natomiast jak się do tego zabrać,

Uprzejmie proszę o pomoc lub wskazówkę

Pozdrawiam

PA
  • Rejestracja:ponad 10 lat
  • Ostatnio:około 6 lat
  • Postów:339
1

Wykonaj podany kod sql i tyle?

Swoją drogą operacje liczenia daty można dużo szybciej i prościej wykonać przez obiekt dateTime, ewentualnie bibliotekę carbon.

edytowany 1x, ostatnio: Pabloss
K1
  • Rejestracja:ponad 7 lat
  • Ostatnio:ponad 5 lat
  • Postów:11
0

Próbuję pod linijką "od zakończenia upłynęło" wstawić dodatkowe 3 linijki

Kopiuj
$sql = "SELECT published FROM nazwa_tabeli";
mysql_query($sql);
echo $sql;

Oczywiście te linijki są w celu walidacji, czy to działa

Niestety nie dostaję żadnego odzewu,

Czym to może być spowodowane ??

HA
  • Rejestracja:około 10 lat
  • Ostatnio:około 7 lat
  • Postów:335
0

Na pewno przestarzałą biblioteką do SQLa. Nie słyszałeś nigdy o gotowych funkcjach które można używać i nie pisać nadmiarowego własnego kodu, o tablicach czy o bibliotece choćby PDO do łączenia z bazą danych? Nie mówiąc już o obiektowym PHP skoro ma być to system aukcji

K1
  • Rejestracja:ponad 7 lat
  • Ostatnio:ponad 5 lat
  • Postów:11
0

Hmm, operuję na cms joomla, to jest zaledwie jedna z modyfikacji

HA
  • Rejestracja:około 10 lat
  • Ostatnio:około 7 lat
  • Postów:335
0

Oho to jak Joomla to dobrze się zaczyna :P jak wstawiasz kod w tym Twoim warunku to być może warunek nie jest spełniony. Zacznij od tego, od najprostszych przyczyn. Potem kop głębiej

K1
  • Rejestracja:ponad 7 lat
  • Ostatnio:ponad 5 lat
  • Postów:11
0

Dziękuję za zainteresowanie @hapertown

Teraz sprawdzam i warunek zostaje spełniony, gdy minie czas wyświetla się echo " od czasu zakończenia minęło", natomiast gdy nie mija wykonuje się reszta czyli "do zakończenia pozostało"

HA
  • Rejestracja:około 10 lat
  • Ostatnio:około 7 lat
  • Postów:335
0

To teraz proponuje wyrzucić tego IFa na chwilę i sprawdzić poprawność zapytania SQL i wykonania funkcji która to zapytanie realizuje. Jak zapytania i warunki będą ok to musi działać

K1
  • Rejestracja:ponad 7 lat
  • Ostatnio:ponad 5 lat
  • Postów:11
0

Czy jeżeli stosuję taki kod i wywołuję go tak jak niżej "echo $sql" to powinno mi wypisywać już rekordy ? Bo obecnie na stronie echo przepisuje mi polecenie i wyrzuca " SELECT published from tabela"

Kopiuj
<?php
if ($row->published = 1){
$sql = "SELECT published FROM tabela";
mysql_query($sql);
echo $sql;
}
?>

Ewentualnie inne narzędzie niż mysql_query wchodzi w grę?

edytowany 1x, ostatnio: kvbala111
HA
  • Rejestracja:około 10 lat
  • Ostatnio:około 7 lat
  • Postów:335
0

Czyli działa jak powinno bo wypisujesz na ekran zmienną. Żeby pobrać wyniki z zapytania musisz posłużyć się mniej więcej czymś takim https://stackoverflow.com/a/7519684

PA
  • Rejestracja:ponad 10 lat
  • Ostatnio:około 6 lat
  • Postów:339
0

No i prawidłowo, bo zwracasz kod wykonywalny. Pobierz rekordy jeszcze i dopiero zwróć je przez echo.

http://php.net/manual/pl/function.mysql-fetch-row.php

p.s mysql jest skasowane w php 7 jak by coś.

K1
  • Rejestracja:ponad 7 lat
  • Ostatnio:ponad 5 lat
  • Postów:11
0

Chcąc pobrać dane dzięki podesłanym przez Was Panowie sposobom chyba odkryłem problem...

Kopiuj
echo 'Nie można uruchomić zapytania: ' . mysql_error();

stwierdził, że : Nie można uruchomić zapytania: Access denied for user 'UNKNOWN_USER'@'localhost' (using password: NO),

Tak więc obstawiam, że to jest problem dlaczego te polecenia nie chcą działać :(

PA
  • Rejestracja:ponad 10 lat
  • Ostatnio:około 6 lat
  • Postów:339
1

No jest, bo nie masz połączenia z bazą danych. Nieprawidłowe dane.

K1
  • Rejestracja:ponad 7 lat
  • Ostatnio:ponad 5 lat
  • Postów:11
0

Natomiast dzięki $row->published mogę wyświetlić zawartość tabeli, czyli to oznacza że połączenie jest jakoś przekierowywane ?

HA
  • Rejestracja:około 10 lat
  • Ostatnio:około 7 lat
  • Postów:335
0

Czekaj - to masz poprawne połączenie z bazą czy nie? Możesz pobrać wszystkie dane z tabeli i je wylistować?

K1
  • Rejestracja:ponad 7 lat
  • Ostatnio:ponad 5 lat
  • Postów:11
0

Gdy chcę pobrać dane z tabeli używając Przykład 1 z :
https://secure.php.net/manual/pl/function.mysql-fetch-row.php
To wyskakuje mi błąd połączenia z bazą danych - więc tym sposobem pobrać danych nie mogę,
Natomiast gdy stosuję $row->published...$row->id i tak dalej... to wyświetla mi dane.

I tego w zasadzie nie rozumiem

HA
  • Rejestracja:około 10 lat
  • Ostatnio:około 7 lat
  • Postów:335
0

Cały kod please

axelbest
  • Rejestracja:ponad 17 lat
  • Ostatnio:2 dni
  • Lokalizacja:Warszawa
  • Postów:2251
0

A czy istnieje możliwość by odwieść OP całkowicie od pomysłu i jakichkolwiek prób wykonania czegoś za pomocą funkcji mysql_* ? Użyj PDO. Przecież to nie trudne.

HA
  • Rejestracja:około 10 lat
  • Ostatnio:około 7 lat
  • Postów:335
0

Biorąc pod uwagę to:

kvbala111 napisał(a):

Hmm, operuję na cms joomla, to jest zaledwie jedna z modyfikacji

...będzie ciężko :)

PA
  • Rejestracja:ponad 10 lat
  • Ostatnio:około 6 lat
  • Postów:339
0

Wrzuć cały kod, bo też się pogubiłem już.

HA
  • Rejestracja:około 10 lat
  • Ostatnio:około 7 lat
  • Postów:335
0

Ja już wiem w czym rzecz - sprawa dotyczy Joomli i nie ma zdefiniowanego wcześniej połączenia z bazą używając (deprecated) mysql_query. Trzeba użyć Joomlowych narzędzi (via JFactory) i całego mechanizmu obsługi baz danych via Joomla i będzie po problemie.

K1
  • Rejestracja:ponad 7 lat
  • Ostatnio:ponad 5 lat
  • Postów:11
0

@Pabloss: @hapertown - Uprzejmie dziękuję za zainteresowanie - daliście mi wiele wskazówek - ostatecznie użyłem metody @hapertown i wszystko działa prawidłowo :)

edytowany 1x, ostatnio: kvbala111
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)