Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]MySQL dodanie nazwy zalogowanego użytkownika do tabeli
Forum PHP.pl > Forum > Przedszkole
ala91
Cześć.
Mam taki problem mianowicie:
Zrobiłam dwie tabele jedną która przechowuje zarejestrowanym użytkowników i drugą gdzie mogą oni dodać swój wynik.

I teraz mam problem bo po zalogowaniu w sesji przesyłany jest $_SESSION['username'] który chciałabym dodać do nowej tabeli (tej drugiej z wynikami)

mam takie zapytanie które POSTem z formularza wysyła mi wynik do bazy danych

if (isset($_POST['dodaj']) ){
$dod = trim($_POST['wynik']);
$zapytanie = "INSERT INTO wyniki (`id`, `wynik`, `username`) VALUES (NULL, '$dod', '$_SESSION['username']');

I tu mam problem bo nie chce mi dodać nazwy zalogowanego użytkownika do nowej bazy.
Próbowałam zrobić to tak
if (isset($_POST['dodaj']) ){
$dod = trim($_POST['wynik']);
$user = trim($_POST['username']);
$zapytanie = "INSERT INTO wyniki (`id`, `wynik`, `username`) VALUES (NULL, '$dod', '$user');

ale też nie wychodzi pomożecie obywatele? Jak przesłać nazwe zalogowanego aktualnie użytkownika z innej bazy danych w zapytaniu
webspy
Może problem masz w tym, że nie zakończyłeś zapytania cyzysłowem? ";
Damonsson
a
  1. echo $_SESSION['username']

co pokazuje?
tab
Na przyszlosc - podaj kawałek kodu w ktorym spodziewasz sie ze wystepuje blad. Z tego malego skrawku nie da sie wywnioskowac co ci nie działa. Poza tym widze ze mieszasz jezyki przy nazywaniu zmiennych. Musisz sie zdecydowac na jeden i albo pisac wszystko po polsku albo po angielski. Co do kodu to ja bym to zrobił tak:
Po pierwsze id masz zapewne ustawione na auto increment. W takiej sytuacji nie musisz pisac NULL po prostu to omijasz. W przykladzie uzywam PDO, jezeli nei znasz tej biblioteki to mozesz skorzystac z mysql_* jak napisalem w komentarzach:
  1. <?php
  2. if (isset($_POST['dodaj'])) {
  3. $pdo = new PDO(/*tutaj dane twojej bazy*/); //mysql_connect()
  4. $stmt = $pdo->prepare('INSERT INTO `wyniki` (`wynik`, `username`) VALUES (:wynik, :username)'); //mysql_query()
  5. $stmt->bindValue(':wynik', trim(htmlspecialchars($_POST['wynik'])), PDO::PARAM_STR);
  6. $stmt->bindValue(':username', $_SESSION['username'], PDO::PARAM_STR);
  7. $num = $stmt->execute(); //mysql_close()
  8. }

Moze ci nie dziala dlatego ze zle zastosowalas apostrofy. Dla liczb sie ich nie stosuje (a taka zapewne jest wynik). Poza tym nie mozesz zrobic czegos takiego: '$_SESSION['costam']'. Masz apostrof za apostrofem co powinno ci wyrzucic blad. Przed zapytaniem zrob:
  1. $costam = $_SESSION['costam'];
  2. INSERT INTO `costam` (`costam`) VALUES ('$costam');

ala91
Dzięki za odzew i pomoc już wiem co było nie tak

1'{$_SESSION['username']}',
oraz kod który miał usuwać sesję pomieszałam...

A macie pomysł może jak ułożyc warunek aby uzytkownik nie zalogowany nie mogl wrocic na strone na ktorej byl zalogowany?

Tj po zalogowaniu przechodzi np do index.php po wylogowaniu do login.php i nie moze wrocic jezeli nie ma go w sesji juz.
MI wraca próbowałam z isset to zrobic ale niezbyt to dziala

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.