![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 82 Pomógł: 0 Dołączył: 12.08.2003 Skąd: Kalisz Ostrzeżenie: (0%) ![]() ![]() |
Robie skrypt do newsów i mam problem z wyborem kategorii newsów. Chce zrobic cos takiego że newsa można dodac do wielu kategorii, wiec w formularzu stosuje MULTIPLE ale pozniej mam problem z przekazaniem tych działow do bazy, mianowicie w bazie umieszczaja się tylko pierwsze 4 litery jednej kategorii i na tym koniec.
Tak wygląda kawałek kodu: [php:1:f9ff7c93b8]<?php ... $sql = "select * from news_kategorie order by nazwa"; $result = mysql_query($sql); { while ($row = mysql_fetch_array($result)) { $nazwa = $row["nazwa"]; echo("<SELECT NAME="kategoria[]" SIZE="4" MULTIPLE><option value=$nazwa>$nazwa</option></select>"); ... ?>[/php:1:f9ff7c93b8] Tak struktura mysql [sql:1:f9ff7c93b8]CREATE TABLE news ( id_newsa int(8) NOT NULL auto_increment, tytul varchar(150) NOT NULL default '0', tresc1 text NOT NULL, tresc2 text NOT NULL, obrazek varchar(150) NOT NULL default '0', autor varchar(150) NOT NULL default '0', zrodlo varchar(150) NOT NULL default '0', data varchar(150) NOT NULL default '0', druzyna1 int(8) NOT NULL default '0', druzyna2 int(8) NOT NULL default '0', kategoria varchar(150) NOT NULL default '0', PRIMARY KEY (id_newsa) ) TYPE=MyISAM;[/sql:1:f9ff7c93b8] ______ php Początkujący => Skrypty Seth |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 57 Pomógł: 0 Dołączył: 17.04.2002 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Podaj jeszcze drugi kawalek kodu, ten przy pomocy ktorego dodajesz te informacje o kategorii do tabeli.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 82 Pomógł: 0 Dołączył: 12.08.2003 Skąd: Kalisz Ostrzeżenie: (0%) ![]() ![]() |
[php:1:90f9bd942e]<?php
if($opcja==news_dodaj) { $sql = "insert into news values (NULL, '$tytul', '$tresc1', '$tresc2', '$obrazek', '$autor', '$zrodlo', '$date', '$druzyna1', '$druzyna2', '$kategoria')"; mysql_query($sql); if ($blad_mysql = mysql_error()) { echo("<font class=aplikacje>Błąd: $blad_mysql"); } else { echo("<font class=aplikacje>Komunikat: news został dodany"); } } ?>[/php:1:90f9bd942e] |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 691 Pomógł: 0 Dołączył: 6.08.2003 Ostrzeżenie: (0%) ![]() ![]() |
[php:1:8ab2a46039]<?php
echo("<SELECT NAME="kategoria[]" SIZE="4" MULTIPLE> ?>[/php:1:8ab2a46039] A nie jest to wina tej 4-ki? |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 82 Pomógł: 0 Dołączył: 12.08.2003 Skąd: Kalisz Ostrzeżenie: (0%) ![]() ![]() |
Przed chwila zmieniłem i nie to nie jej wina
![]() |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Cytat A nie jest to wina tej 4-ki?
Ta 4 wyświetla select nie w formie listy rozwijanej, ale przewijanej, gdzie na raz mieszczą sie 4 opcje. -------------------- |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 82 Pomógł: 0 Dołączył: 12.08.2003 Skąd: Kalisz Ostrzeżenie: (0%) ![]() ![]() |
No własnie z tym rozwiajniem tez mam problem, zamiast w 1 polu to mi sie robi w kilku :/
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Wywal tą size=4 - wtedy będzie rozwijane, ale nie wiem jak z mozliwoscią wielokrotnego wyboru.
Poza tym dlaczego wyświetlasz rozpoczęcie listy (<select>) w pętli? Do bazy zapisujesz całą tablicę $kategorie od razu w MySQLu - nie wiem czy tak można, tzn. czy to daje efekt? -------------------- |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 82 Pomógł: 0 Dołączył: 12.08.2003 Skąd: Kalisz Ostrzeżenie: (0%) ![]() ![]() |
Zrobilem size=1 i nadal cos jest nie tak...
Możesz troche jaśniej z tym <select> ? |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Cytat Zrobilem size=1 i nadal cos jest nie tak...
Jeżeli chcesz mieć możliwość wybrania kilku kategorii musi być lista przewijana i wtedy robisz size=x, gdzie x to liczba linii widocznych na raz. Cytat Możesz troche jaśniej z tym <select> ?
W kodzie który podałeś, dajesz <select> w pętli while. -------------------- |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 82 Pomógł: 0 Dołączył: 12.08.2003 Skąd: Kalisz Ostrzeżenie: (0%) ![]() ![]() |
nadal cos nie tak
![]() |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Cytat nadal cos nie tak
![]() To teraz bym prosił o DOKŁADNY opis co nie działa i ewentualne błędy. Zainteresuj sie nowym sposobem przekazywania zmiennych. Dodaj sobie taki kod przed wykonaniem zapytania: [php:1:a62c6b953a]<?php if(is_array($_POST["kategorie"])) { $kategorie=implode(",",$_POST["kategorie"]); } else { $kategorie=$_POST["kategorie"]; } ?>[/php:1:a62c6b953a] a przy wyciaganiu z bazy rozdzielasz dane tak: [php:1:a62c6b953a]<?php $kategorie=explode(",",$dane); ?>[/php:1:a62c6b953a] i numery kategori będziesz miał w tablicy. -------------------- |
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 273 Pomógł: 0 Dołączył: 5.05.2003 Skąd: Mazury Ostrzeżenie: (0%) ![]() ![]() |
A nie lepiej to zrobić checkbox'ami?
![]() -------------------- <<< EB >>>
|
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Cytat A nie lepiej to zrobić checkbox'ami?
![]() Dobrze, ale wyobraź sobie że masz 100 kategorii - ile to zajmuje miejsca? A tak select na 5 linijek (czy nawet 10 lub więcej) zmieści je wszystkie. Tutaj nie chodzi o wyzszość checkboxa nad selectem tylko o bład w kodzie. -------------------- |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 82 Pomógł: 0 Dołączył: 12.08.2003 Skąd: Kalisz Ostrzeżenie: (0%) ![]() ![]() |
A jeszcze mam taki problem.
Dodaje mecz w którym z wczesniej dodanych druzyn wybieram te co zagraja w meczu np Bayern - Borussia. Poźniej do dodanych meczy dodaje wynik np 2:1 (Bayern - Borussia 2:1) i teraz jak zrobic tak zeby z tego wyniku dane dla danej druzyny same sie zaktualizowaly i ze skrypt po wyniku sam rozpozna co gdzie dodac. Czyli po tym meczu skrypt miał by dodac dla Bayernu: Cytat 1: do liczby meczów Bayernu to 1 mialo by byc dodane do liczba1(pole w strukturze druzyn)
1: do liczby meczów wygranych Bayernu to 1 mialo by byc dodane do liczba2(pole w strukturze druzyn) 0: do liczby meczów zremisowanych Bayernu to 0 mialo by byc dodane do liczba3(pole w strukturze druzyn) 0: do liczby meczów przegranych Bayernu to 0 mialo by byc dodane do liczba4(pole w strukturze druzyn) 2: do liczby bramek strzelonych przez Bayern to 2 mialo by byc dodane do liczba5(pole w strukturze druzyn) 1: do liczby bramek straconych przez Bayern to 1 mialo by byc dodane do liczba6(pole w strukturze druzyn) 3: do liczby punktów Bayernu to 3 mialo by byc dodane do liczba7(pole w strukturze druzyn) a dla Borussi Cytat 1: do liczby meczów Borussii to 1 mialo by byc dodane do liczba1(pole w strukturze druzyn)
0: do liczby meczów wygranych Borussii to 0 mialo by byc dodane do liczba2(pole w strukturze druzyn) 0: do liczby meczów zremisowanych Borussii to 0 mialo by byc dodane do liczba3(pole w strukturze druzyn) 1: do liczby meczów przegranych Borussii to 1 mialo by byc dodane do liczba4(pole w strukturze druzyn) 1: do liczby bramek strzelonych przez Borussii to 2 mialo by byc dodane do liczba5(pole w strukturze druzyn) 2: do liczby bramek straconych przez Borussii to 1 mialo by byc dodane do liczba6(pole w strukturze druzyn) 0: do liczby punktów Borussii to 3 mialo by byc dodane do liczba7(pole w strukturze druzyn) ogólnie skrypt za zwyciestwo drużyny dodawał by 3 punkty, za remis 1 a za porażke 0 Tak wygląda struktura mysql tabeli drużyn [sql:1:78f5911b78] id_druzyny int(8) NOT NULL auto_increment, nazwa1 varchar(30) NOT NULL default '', nazwa2 varchar(30) NOT NULL default '', rok varchar(4) NOT NULL default '', telefon varchar(50) NOT NULL default '', fax varchar(50) NOT NULL default '', strona varchar(60) NOT NULL default '', mail varchar(20) NOT NULL default '', barwy varchar(80) NOT NULL default '', trener varchar(80) NOT NULL default '', prezydent varchar(80) NOT NULL default '', logo varchar(20) NOT NULL default '', liga int(8) NOT NULL default '0', adres text NOT NULL, historia text NOT NULL, liczba1 varchar(180) NOT NULL default '0', // mecze liczba2 varchar(180) NOT NULL default '0', // wygrane liczba3 varchar(180) NOT NULL default '0', // remisy liczba4 varchar(180) NOT NULL default '0', // porażki liczba5 varchar(180) NOT NULL default '0', // bramki + liczba6 varchar(180) NOT NULL default '0', // bramki - liczba7 varchar(180) NOT NULL default '0', // punkty ranuefa varchar(10) NOT NULL default '',[/sql:1:78f5911b78] Tak wygląda struktura meczu [sql:1:78f5911b78] id_meczu int(8) NOT NULL auto_increment, druzyna1 varchar(150) NOT NULL default '0', druzyna2 varchar(150) NOT NULL default '0', liga int(8) NOT NULL default '0', kolejka char(2) NOT NULL default '', wynik1 varchar(10) NOT NULL default '', // bramki druzyny1 czyli gospodarzy wynik2 varchar(10) NOT NULL default '', // bramki drużyny2 czyli gości strzelcy text NOT NULL, widzow varchar(10) NOT NULL default '', sedzia varchar(50) NOT NULL default '', godzina varchar(50) NOT NULL default '', opis text NOT NULL,[/sql:1:78f5911b78] Próbowałem juz wyszystkiego ze zmiennymi $_POST itd ale nici.... |
|
|
![]()
Post
#16
|
|
![]() Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 6.05.2003 Skąd: Gdynia, Poland Ostrzeżenie: (0%) ![]() ![]() |
Spróbuj tak:
[php:1:eaeed50ef1]<?php ... echo ("<SELECT NAME="kategoria[]" SIZE="1" MULTIPLE>"); // Zamiast size=1 możesz dać np. size=5 etc. $sql = "select * from news_kategorie order by nazwa"; $result = mysql_query($sql); { while ($row = mysql_fetch_array($result)) { $nazwa = $row["nazwa"]; echo ("<option value=$nazwa>$nazwa</option>"); } echo ("</select>"); ... ?>[/php:1:eaeed50ef1] -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 26.06.2025 - 14:34 |