Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> MULTIPLE
matt
post 29.08.2003, 18:25:36
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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 15)
sivyer
post 29.08.2003, 19:53:43
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.
Go to the top of the page
+Quote Post
matt
post 29.08.2003, 20:02:40
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]
Go to the top of the page
+Quote Post
adwol
post 29.08.2003, 20:06:10
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?
Go to the top of the page
+Quote Post
matt
post 29.08.2003, 20:08:38
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 sad.gif((
Go to the top of the page
+Quote Post
spenalzo
post 29.08.2003, 20:10:21
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.


--------------------

Go to the top of the page
+Quote Post
matt
post 29.08.2003, 20:12:00
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 :/
Go to the top of the page
+Quote Post
spenalzo
post 29.08.2003, 20:16:20
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?


--------------------

Go to the top of the page
+Quote Post
matt
post 29.08.2003, 20:17:57
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> ?
Go to the top of the page
+Quote Post
spenalzo
post 29.08.2003, 20:25:34
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.


--------------------

Go to the top of the page
+Quote Post
matt
post 29.08.2003, 20:31:08
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 sad.gif((
Go to the top of the page
+Quote Post
spenalzo
post 29.08.2003, 20:43:02
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 sad.gif((

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.


--------------------

Go to the top of the page
+Quote Post
Omega
post 29.08.2003, 22:00:11
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?questionmark.gif Nie było by problemów z rozwijaniem i wielokrotnymi zaznaczeniami...


--------------------
<<< EB >>>
Go to the top of the page
+Quote Post
spenalzo
post 29.08.2003, 22:05:42
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?questionmark.gif Nie było by problemów z rozwijaniem i wielokrotnymi zaznaczeniami...

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.


--------------------

Go to the top of the page
+Quote Post
matt
post 29.08.2003, 22:17:05
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....
Go to the top of the page
+Quote Post
KeeKee
post 29.08.2003, 22:23:00
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]


--------------------
Z poważaniem,
cert|KeeKee
http://cert-clan.com
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 26.06.2025 - 14:34