ciekawy30
23.02.2010, 18:16:07
Mam taki kod: <?php
$db_host = 'r';
$db_user = 'r';
$db_pass = 'r';
$db_name = 'wydarzenia';
$link = mysql_connect($db_host, $db_user, $db_pass)
or die ("Sprawdź połączenie z serwerem.");
mysql_select_db($db_name)
or die ("Baza danych nie istnieje");
$query = "SELECT info wydarzenia ".
"FROM info wydarzenia".
"WHERE rok = 2008 ";
$results = mysql_query($query)
or die (mysql_error());
while ($row = mysql_fetch_assoc($results)) {
foreach ($row as $val) {
echo $val;}
echo "<br>";
}
?>
przy próbie wyświetlenia pojawia się komunikat: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'rok = 2008' at line 1.
Co robię źle jak to naprawić?
bemol
23.02.2010, 18:19:34
wartość pola w '...', czyli
$query = "SELECT info wydarzenia ".
"FROM info wydarzenia".
"WHERE rok = '2008' ";
Pamiętaj o umieszczaniu kodu w tagach
Kod
[php][/php]
poza tym nie używaj spacji w nazwie tabeli!!
ciekawy30
23.02.2010, 18:30:35
nadal nie działa. zamieściłem rok w ' 2008'' i nadal wyskakuje to samo. nadal nie wiem dlaczego nie działa. pomoźcie co mam zrobić?
bemol
23.02.2010, 18:36:59
napisz jakie masz pola w tabeli i ich typ danych i zamień:
info wydarzenia na info_wydarzenia.
poza tym niepotrzebnie podajesz nam swoje dane do MySQL :]
i nie zapomnij wstawić spacji przed 'WHERE'
$query = "SELECT info_wydarzenia FROM info_wydarzenia WHERE rok='2008'";
ciekawy30
23.02.2010, 18:41:31
baza ma nazwe wydarzenia. tabela też wydarzenia. pola data typ date, rok typ year, wydarzenia ext, opis text rodzaj wydarzenia text zdjecie blob.
bemol
23.02.2010, 18:49:51
to czym jest 'info'?
wklej jakie masz teraz zapytanie
ciekawy30
23.02.2010, 18:57:09
$query = "SELECT wydarzenia".
"FROM wydarzenia".
"WHERE rok ='2008'";
i nadal wskakuje You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'rok ='2008'' at line 1
bemol
23.02.2010, 19:01:53
$query = "SELECT wydarzenia ".
"FROM wydarzenia ".
"WHERE rok ='2008'";
a tak?
ciekawy30
23.02.2010, 19:10:13
juz jest jakiś efekt. problem wynikł teraz tylko taki ze nie mam polskich znaków? i chciałbym aby wyświetlała się jeszcze data i rodzaj wydarzenia i jeśli jest zdjęcie to też zdjęcie. chcciałbym zrobić większe odstepy między poszczegolnymi wydarzeniami?
kielich
23.02.2010, 19:15:13
polskie znaki to najlepiej pod połączeniem dopisz
]
i po sprawie
CO do daty to dopisz tam kolumnę data i już ... wyświetlić chyba wiesz jak ...
bemol
23.02.2010, 19:19:13
1. sprawdź kodowanie pliku
Jeśli używasz windowsowego notatnika to jest ono w ANSI.
Zatem zmień edytor, np na darmowy
PSPad.
2. sprawdź kodowanie w nagłówku pliku.
prawdopodobnie jest to iso-8859-2 lub utf-8
3. zapytanie
Użyj tego zapytania jeśli poprzednie kroki nie pomogły i przy każdym dodawaniu rekordów też je wstaw.
Trzeba ujednolicić oba kodowania i najlepiej użyć takiego jakie jest w bazie (latin2/unicode) - odpowiednie dla wyżej wymienionych.
Żeby wybrać wszystkie pola użyj * zamiast nazw pól (wtedy wybierze z bazy wszystkie) lub wypisz wszystkie oddzielając przecinkiem.
Większe odstępy to po prostu <br /> (<br> dla HTML 4 i niższych)
ewentualnie użyj '\n' a jak nie to po prostu zmień w pliku CSS, bądź html padding.
ciekawy30
23.02.2010, 19:20:57
DObra żeby wszystkie informację mi wyświetlało już sobie poradziłem tylko bym chciał żeby między np. wydarzeniem a datą był odstęp np. taki jak tabulator w wordzie. jak to zrobić? i jeszcze jedno jak dodam żeby wyświetlało zdjęcie to wyskakują mi krzaczki w tym miejscu. co zrobić?
bemol
23.02.2010, 19:21:55
pokaż jak wyświetlasz to zdjęcie.
ciekawy30
23.02.2010, 19:30:51
$query = "SELECT data, wydarzenia, zdjęcie ".
"FROM wydarzenia ".
"WHERE rok ='2008'";
jest w polu typu blob ale może lepiej zmienić tak jak mi poradziłes zeby było w polu VARCHAR .... ? tylko potem jak to wyświetlić żeby było obok określonego wydarzenia?
Rysh
23.02.2010, 19:37:05
Zdjęcie w bazie trzymasz?
ciekawy30
23.02.2010, 19:38:15
no własnie trzymam ale to nie jest dobry pomysł. więc chyba to zmienie.
bemol
23.02.2010, 19:39:26
nie używaj polskich znaków w nazwach pól.
Pokazujesz jak pobierasz z bazy danych a nie jak wyświetlasz.
Jeśli wysyłasz plik na serwer to dodawaj w bazie jego ścieżkę lub nazywaj plik kolejnymi liczbami naturalnymi (i zintegruj z polem id)
Załóżmy tę pierwszą wersję.
$query = mysq_query("SELECT * FROM wydarzenia WHERE rok ='2008'");
foreach ($query as $row) {
echo '<img src="'.$row['zdjecie'].'.jpg" alt="" />'; }
}
Pamiętaj, że musisz wtedy umieścić całą ścieżkę do bazy danych.
ciekawy30
23.02.2010, 21:10:57
nie wiem jak zrobić te odstępy między data a wydarzeniem. zdjęcia nadl nie moge wyświetlić .pomoze ktos
Rysh
23.02.2010, 21:21:08
<?php
$db_host = 'r';
$db_user = 'r';
$db_pass = 'r';
$db_name = 'wydarzenia';
mysql_connect($db_host, $db_user, $db_pass) or
die ("Sprawdź połączenie z serwerem."); $query = mysq_query
("SELECT * FROM wydarzenia WHERE rok ='2008'") or
die (mysql_error()); echo "Cos: ". $row[1] ." - "; echo "Cos innego: ". $row[2] ."<br />"; //itd
}
?>
ciekawy30
23.02.2010, 21:26:28
a co oynacya cođ i cođ innego
mortus
23.02.2010, 21:54:58
Po pierwsze po co Ci w tabeli wydarzenia pole data i jednocześnie rok? Po drugie w jaki sposób chcesz zaprezentować dane, tzn. w div-ach, w tabeli, czy może jeszcze jakoś inaczej?
ciekawy30
23.02.2010, 22:04:04
chce wyswietlic wydarzenie data i zdjecie ktorego nie moge wyswietlic. Moye byc to w postaci tabeli. po poprostu chce pobrac te trzy dane z bayz danych i wyswietlic je na stronie internetowej aby siw milo czytalo i mozna bylo zobaczyc zdjecie do kazdego wydarzenia
Rysh
23.02.2010, 22:57:02
To nie lepiej Ci zrobić nową tabele 'zdjecia' w której będziesz trzymał zdjęcia i odrazu przypisywał każde zdjęcie po id do wydarzenia? Umożliwi Ci to dodawanie więcej niż jedeno zdjęcie do wydarzenia.
Natomiast zdjecia wysylasz formularzem na serwer, przenosisz do katalogu zdjecia i w bazie danych zapisujesz nazwe pliku (przykład: moje_urodziny.png). Następnie pobierasz odpowiednią kolumnę i uzywasz w php:
<?php
echo "<img src='zdjecia/". $row[2] ."' />"; ?>
I po problemie.
ciekawy30
23.02.2010, 23:00:38
Rysh moze i lepiej ale to co napisales to dla mnie czarna magia. wysylasz formularzem itp totalna magia jak dla mnie. a co jesli chodzi o odstepy miedzy data a wzdarzeniem. jak wyswietlam na stronie to mam to zlane tak jakby bylo bez chociazby spacji.
Rysh
23.02.2010, 23:17:21
Na forum było dużo o wysyłaniu plików przez formularz, wystarczy chwilę pomyśleć i wykombinujesz.
Po $row[1] daj
." ";
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.