Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
[mysql]przypisanie wartosci bazy do uzytkownika
#1
Czesc
niedawno zaczalem swoja przygode z mysql i pojawil sie problem.
chodzi o to ze np. uzytkownik uploaduje zdjecie do galeri.
uzytkownik jest zarejestrowany,do logowania i rejestracji jest specjalna tabela w bazie,oraz oddzielna przeznaczona do informacji o galerii.
jak teraz to wszystko powiazac tak abym mogl przy fotce ktora wrzucil ten user,wyswietlic informacje ze to wlasnie on ja wrzucil na strone?
mam nadzieje ze zrozumiecie o co chodzi.
Prosze o pomoc bo to jest moj jak narazie jedyny problem,a z tego co szukalem,nic zrozumialego nie wyczytalem
pozdro
Odpowiedz
#2
W tabeli za galerią zapewne masz kolumnę z id usera, po prostu pobierasz z tabeli użytkowników dane usera o id pasującym do pliku z galerii.
Odpowiedz
#3
Dzieki za zainteresowanie
Moglbym prosic o przykladowy fragment kodu? Dopiero sie ucze,a na przykladach lepiej to rozumiem Smile
Pobieram id uzytkownika pasujace do zdjecia,ale jaki kod mam dodac do funkcji uploadu,aby zapisywal w bazie odpowiednie dane?
Odpowiedz
#4
Jeżeli chcesz dopisać do usera to jest on pewnie zalogowany a w jakiejś zmiennej przechowujesz jego id, no to cóż prostszego?
Musisz edytować tabelę i dodać tam pole np. user_id, a potem tylko insert into i dodajesz dodatkową zmienną Smile
Odpowiedz
#5
Ok.Dzieki
Sprobuje tak jak mowisz.
Pozniej pokaze kod jak to poskladamSmile
Odpowiedz
#6
Tyle kodu udalo mi sie posklejac. Wiem ze na 100% sa bledy,ale jak mam juz cos napisane to latwiej bedziecie mieli napisac co robie zle. Dziekuje za wszystkie odpowiedzi
Smile

Tabele w mojej bazie danych:

Kod:
Struktura tabeli dla  `galeria`

CREATE TABLE IF NOT EXISTS `galeria` (
  `id_usera` int(11) NOT NULL auto_increment,
  `image_name` varchar(200) NOT NULL,
  PRIMARY KEY  (`id_usera`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;


-- Struktura tabeli dla  `rejestracja`


CREATE TABLE IF NOT EXISTS `rejestracja` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `imie` varchar(100) collate latin1_general_cs NOT NULL,
  `nazwisko` varchar(100) collate latin1_general_cs NOT NULL,
  `login` varchar(30) collate latin1_general_cs NOT NULL,
  `haslo` varchar(50) collate latin1_general_cs NOT NULL,
  `email` varchar(100) collate latin1_general_cs NOT NULL,
   `data` datetime NOT NULL,
  `gg` varchar(12) collate latin1_general_cs NOT NULL,
  `adres` varchar(30) collate latin1_general_cs NOT NULL,
  `hobby` varchar(120) collate latin1_general_cs NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_cs AUTO_INCREMENT=2 ;

Tutaj jest zawartosc pliku php

Kod:
<?php
//rozpoczynamy sesje
ob_start();
session_start();
//teraz importujemy plik z dostepem do bazy danych i tworzymy zmienna ktora jest przypisana do wybranej tabeli
include 'includes/database.php';
    $table = 'galeria';
    //tworzymy formularz wysylania pliku
    echo <<<formularz
<form enctype="multipart/form-data" action="upload.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="50000" />
<input name="plik" type="file" />
<input type="submit" value="Dodaj plik" />
</form>
formularz;

        

$plik = $_FILES['plik']['tmp_name'];
$nazwa = $_FILES['plik']['name'];
$plik_rozmiar = $_FILES['plik']['size'];

if(is_uploaded_file($plik)) {
    $wyslij = move_uploaded_file($plik, "images/$nazwa");
   $wyslij = mysql_query("INSERT INTO galeria VALUES('', '.$nazwa.', NOW(), '')WHERE login='{$_SESSION['login']}'");
if ($wyslij) {
echo 'Zdjecie zostalo wyslane';
}else{
echo ' Wystapil blad';}

}
    
    
    
//odczytujemy kto jest autorem
$autor = mysql_query("SELECT * FROM $table WHERE id_usera='{$_SESSION['login']}'");
?>
Odpowiedz
#7
W tabeli galeria masz tylko 2 pola, a chcesz do niej wrzucić 4 informacje:
Kod:
$wyslij = mysql_query("INSERT INTO galeria VALUES('', '.$nazwa.', NOW(), '')WHERE login='{$_SESSION['login']}'");[code/]

powinno być
[code]$wyslij = mysql_query("INSERT INTO galeria VALUES($_SESSION['login'], '.$nazwa.'");
Odpowiedz
#8
Zmienile to co napisales ale wtedy wyskakuje blad:
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /xxx/xxx/www/upload.php on line 94

Po usunieciu $_SESSION['login'] z lini
$wyslij = mysql_query("INSERT INTO galeria VALUES($_SESSION['login'], '.$nazwa.'");
strona sie normalnie wczytuje,ale nie dodaje nic do bazy ;/
Odpowiedz
#9
Mam nadzieję że w $_SESSION['login'] przetrzymujesz id usera a nie jego login Tongue Wygląda na to że zmienna session[login] jest pusta?
Odpowiedz
#10
dla sesji mam przypisane
session_register("login");
to o to chodzi?
Odpowiedz


Podobne wątki…
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Zmniejszenie czasu dostępu do bazy darling 8 8,412 06-12-2017, 18:00
Ostatni post: arki878
  Jak sprawdzić czy adres www znajduje sie w bazie mysql? jarekcda 8 9,025 13-05-2017, 01:02
Ostatni post: miketodson255
  Przeszukiwanie bazy, przechowywanie wyników vundo 3 4,191 02-12-2016, 20:16
Ostatni post: tereska3
  Wyświetlenie ilości Plików z bazy MySQL, Wyświetlenie ilości Plików z bazy SQL maniek666 1 3,657 28-11-2013, 14:51
Ostatni post: ILIES
  Przywrócenie bazy danych/struktury z plików OPT i FRM smiesznylolek 0 3,259 19-11-2013, 16:28
Ostatni post: smiesznylolek

Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości
Sponsorzy i przyjaciele
SeoHost.pl