baciany
(baciany)
7 Marzec 2015 20:04
#1
Witam.
Każdy zna pewnie fragment kodu taki jak “SELECT id, nazwa, opis FROM produkty” podczas odczytu danych z bazy MySQL. Umiem do tego dodać where typ=“gotowe” i tak dalej. Ale potrzebuje aby odczytywało dane where typ=“zmienna” lub typ=“dana z sesji” i tutaj już nie wiem jak to zrobić. Oczywiście Najlepiej jakby pobierało tą daną z sesji.
baciany
(baciany)
7 Marzec 2015 21:07
#3
Mam pewien problem.
W moim logowaniu taka linijka odpowiada za zapisanie użytkownika w sesji:
$_SESSION['username'] = $row['username'];
Problem w tym że potrzebuje aby ta sesja właśnie też zapisała Wybór z pola <input type=radio name=wybierz value=“jeden”> lub dwa lub trzy lub cztery.
Próbowałem tak:
$_SESSION['wybierz'] = $_POST['wybierz'];
i błędu żadnego nie wywala a czy działa nie wiem. Próbowałem się do tego odwołać podczas wczytywania danych z bazy w ten sposób:
$stmt = dbConnect()->query('SELECT id, nazwa, opis FROM produkty where typ="$_SESSION['wybierz']"');
lecz mam błąd:
Parse error: syntax error, unexpected 'wybierz' (T_STRING) in D:\xampp\htdocs\Projekty\Forward\index.php on line 40
I tu pytanie: czy źle zapisuję daną w Sesji czy źle ją odczytuję ?
Masz zagnieżdżone apostrofy, stąd źle zostaje sparsowany string, nawet kolorowanie na forum ci to podpowiada. W czym ty to piszesz w notatniku?
baciany
(baciany)
8 Marzec 2015 13:50
#5
Akurat nie. Używam Brackets bądź Notepad++. Jak te apostrofy poprawić? Próbowałem to pozamieniać i nic…Nawet bez nich próbowałem i coś ciągle źle…
drobok
(Drobok)
8 Marzec 2015 13:55
#6
Podstawy przetwarzania ciągów znaków w php
drobok:
Podstawy przetwarzania ciągów znaków w php Zaczynasz ’ nie możesz użyć zmiennej, więc albo ciągi łączysz ze zmiennymi za pomocą . albo korzystasz z ", a w zmiennych ’ lub bez niczego (co czasami może nie działać) “cośtam cośtam $zmienna[costam]” “cośtam cośtam $zmienna[‘costam’]” 'cośtam cośtam '.$zmienna[‘costam’]
Do tej listy dodałbym jeszcze znak ucieczki.
baciany
(baciany)
8 Marzec 2015 16:53
#8
<?php
include "core/connect.php";
$dana = 'krakow';
$stmt = dbConnect()->query("SELECT id, nazwa, opis FROM produkty where typ='.$dana'");
echo '<ul>';
foreach($stmt as $row)
{
echo '<li>'.$row['nazwa'].': '.$row['opis'].'</li>';
}
$stmt->closeCursor();
echo '</ul>';
?>
To jest fragment kodu jaki mam i jest dalej problem. Gdy mam:
typ='.$dana'
błędu nie pokazuje ale nie wczytuje rekordów z bazy gdzie typ = dana czyli zapodane jest krakow.
W przypadku gdy dam:
typ='krakow'
Działa bez problemu…
Dobra… usunąłe kropkę przed $dana i działa ;] Teraz pomęczę się jak w to miejsce zamiast ZMiennej dać wartość z sesji :}
Czy ten sposób zapisu do sesji jest poprawny?
$_SESSION['username'] = $row['username'];
$_SESSION['wybierz'] = $_POST['wybierz'];
Pierwsze na pewno bo po zalogowaniu działa. Drugie pobiera do sesji wartosć wybraną z formularza.
I problem 2, jak tą daną wczytać potem zamiast tej zmiennej:
Próbowałem tak:
$dana = "$_SESSION['wybierz']";
lecz też nie działa. Zamieniałem " na ', próowałem kropki i ciągle jakiś błąd… ;/
nie masz zielonego pojęcia o PHP. Zacznij może od podstaw a potem zabieraj się za sesje czy bazę danych.
baciany
(baciany)
8 Marzec 2015 19:31
#10
Uczę się cały czas. Jak na razie wszystko co potrzebuję mi wychodzi oprócz tego co napisałem. Będę próbował sam lecz liczyłem na pomoc od was.
dostałeś pomoc w postaci linka do kursu PHP. Naucz się podstaw bo na razie to improwizujesz i robisz coś czego nie rozumiesz.
baciany
(baciany)
8 Marzec 2015 23:35
#12
Dzięki ale poradziłem sobie ze swoim problemem już.