Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem - mysql & php
Forum PHP.pl > Forum > Gotowe rozwiązania
Fo
no wiec mam taki kodzik i utkwilem w jednym miejscu :
/////////////////////////////////
[php:1:931667346e]<?php
wybieranie z pól typu select
echo "<form method="post">";
echo "<input type="hidden" value="załaduj">";
<select name="zabawka" value="$zabawka" size="1">";
echo "<option value="zab1">zabawka1";
echo "<option value="zab2">zabawka2";
echo "</select>";
echo "<select name="miejce" value="$pani" size="1">";
echo "<option value="m1">miejsce1";
echo "<option value="m2">miejsce2";
<input type="submit" value="załaduj"></form>";
-----------------------------------------------------------------------------
$wynik = mysql_query ("SELECT * FROM $zabawka WHERE miejsce='$miejsce';");
while ($record = @mysql_fetch_array ($wynik))
{
$id = $record[0];
$zabawka = $record[1];
$miejsce= $record[2];
-----------------------------------------------------------------------------

echo "$zabawka<br>";
echo "$miejsce<br>";
?>[/php:1:931667346e]
o co mi dokladnie chodzi :
otoz jesli wybiore sobie z rozwijanego menu np. zab1 i miejsce2 to ponizej wyswietla mi sie odpowiednie dane wybrane z bazy - ta i one sie wyswietlaja tak jak chce; ALE nie wiem jak mam zrobic zeby jesli nie wybiore niczego z listy zabawek lub z listy miejsc to chcialbym zobaczyc komunikat typu - niestety ale nie wybrales niczego z pola np. zabawka lub nie wybrales niczego z pola miejsce

Bardzo prosze o pomoc jesli jest ktos w stanie mi jej udzielic - prosilbym rowniez nie odsylac mie w zadne inne miejsce(manula etc) tylko bardzo potrzebowalbym poprawiony kod - i jeszcze jedna sprawa musze to miec do 28 tego miesiaca czyli jeszcze pare dni :cry:
DeyV
No to się nie musimy się śpiwszyć. Do 28 jeszcze sporo czasu aaevil.gif
[php:1:c1e664781b]<?php
-----------------------------------------------------------------------------
$zabawka = $_REQUEST['zabawka'];
$miejsce = $_REQUEST['miejsce'];
blad = false;
if (!$zabawka){
echo 'BŁĄD <br /> Musisz wybrać zabawkę';
$blad = true;
}
if (! $miejsce){
echo 'BŁĄD <br /> Musisz wybrać miejsce';
$blad = true;
}

if (! $blad) {
### wykonywane, gdy nie ma błedów ###
$wynik = mysql_query ("SELECT * FROM $zabawka WHERE miejsce='$miejsce';");
while ($record = @mysql_fetch_array ($wynik))
{
$id = $record[0];
$zabawka = $record[1];
$miejsce= $record[2];
}
} // koniec kodu wykonywanego, gdy nie ma błędów
-----------------------------------------------------------------------------
?>[/php:1:c1e664781b]
Fo
z gory dzieki za tak szybka odpowiedz ale jest jedno ale :
chcialbym aby ten komunikat byl wyswiatlany za kazdym razem kiedy wybiore cos zle a nie tylko za pierwszym bo tak sie dzieje .....ma ktos moze jeszcze jakis pomysl questionmark.gif jest mi to bardzo potrzebne - z goory duze DZIEKS dla tych co poswieca troche swojego czasu na odpisanie na moj (pewnie prosty) problem - ach bycie poczatkujacym bolli sad.gif
Fo
wyprostuje to jak juz tylko sie da najbardziej :
wybieram jedno ale nie wybieram drugiego ---> no to komunikat
wybieram drugie ale nie wybieram pierwszego smile.gif ---> no to komunikat
nic nie wybieram i klikam zaladuj ---> no to tez komunikat

ale mam lipe co nie ? :cry:
KaMeLeOn
Cytat
[php:1:c08dd34107]<?php
$zabawka = $_REQUEST['zabawka'];  
$miejsce = $_REQUEST['miejsce'];
?>[/php:1:c08dd34107]

Nie potrzebnie robisz kopie zmiennych... Można tak...
[php:1:c08dd34107]<?php
$zabawka =& $_REQUEST['zabawka'];
$miejsce =& $_REQUEST['miejsce'];
?>[/php:1:c08dd34107]
Ale po co ?
Mała modyfikacja...
[php:1:c08dd34107]<?php
-----------------------------------------------------------------------------
if( isset($_POST['zabawka']) || isset($_POST['miejsce']) )
{
if( empty($_POST['zabawka']) && empty($_POST['miejsce']) ){
echo 'BŁĄD <br /> Musisz wybrać zabawkę i miejsce';
} else
if ( empty($_POST['zabawka']) ){
echo 'BŁĄD <br /> Musisz wybrać zabawkę';
} else
if ( empty($_POST['miejsce']) ){
echo 'BŁĄD <br /> Musisz wybrać miejsce';
} else {
### wykonywane, gdy nie ma błedów ###
$wynik = mysql_query("SELECT * FROM ".$_POST['zabawka']." WHERE miejsce='".$_POST['miejsce']."';");
while ($record = @mysql_fetch_array ($wynik))
{
$id = $record[0];
$zabawka = $record[1];
$miejsce= $record[2];
}
} // koniec kodu wykonywanego, gdy nie ma błędów
}
-----------------------------------------------------------------------------
?>[/php:1:c08dd34107]
Fo
To jest caly kod DeyV
[php:1:06688f4048]<?php

-----------------------------------------------------------------------------
require_once("config.php");
mysql_connect ("$dbhost", "$dbuname", "$dbpass") or
die ("Nie mozna uzyskac polaczenia z hostem");
mysql_select_db ("$dbname") or
die ("Nie mozna uzyskac polaczenia z baza danych");

#z config.php wybieraja sie w tym przypadku jedynie wartosci potrzebne do wlasciwego polaczenia z baza danych

echo "<form method="post">";
echo "<input type="hidden" value="załaduj">";
echo "<select name="zabawka" value="$zabawka" size="1">";
//dostepne dane do edycji
echo "<option selected>wybierz cos";
echo "<option value="zabawka1">zabawka1";
echo "<option value="zabawka2">zabawka2";
echo "</select>";

# menu dostepnych miejsc
echo "<select name="miejsce" value="$miejsce" size="1">";
echo "<option selected>wybierz miejsce";
echo "<option value="pokoj">pokoj";
echo "<option value="garaz">garaz";
echo "</select>";

echo "<input type="submit" value="załaduj"></form>";
# formularz umozliwiajacy wybor z bazy danych tego co sie chce... smile.gif s
# $prefiks - przedrostek w nazwie tabeli bazy - moja_tabelka czyli moja_ = prefiks
$wynik = mysql_query ("SELECT * FROM $prefiks$zabawka WHERE miejsce='$miejsce';");
while ($record = @mysql_fetch_array ($wynik))
{
$id = $record[0];
$miejsce = $record[1];
$zabawka = $record[2];
$tresc = $record[3];

#wyciaga sie w tym miejscu bo jak jest poza klamra (ta nizej) to mi sie z bazy tylko jeden rekord wybiera - a tak wszystko
echo "$zabawka<br>";
echo "$miejsce<br>";
echo "$tresc<br>";

}

-------------------------------------------------------------------------------
?>[/php:1:06688f4048]

#
chodzi o to ze jak nie wybieram niczego i klikam zaladuj to ma sie pokazywac komunikat
nie wybiore pierwszego i klikne zaladuj ---> komunikat
nie wybiore drugiego i klikne zaladuj ---> komunikat
nic nie wybiore i klikne zaladuj ---> komunikat
jak juz cos wybiore to sie tresc z bazy wybiera - tresc ktora sie wybrala to ta ktora jest zgodna z warunkiem miejsca i zabawki - za kazdym razem jest inna - tzn. wybieram zab1 i miej1 - jedno
wybieram zab1 - miej2 - drugie
wybieram zab2 - miej1 -trzecie
wybieram zab2 - miej 2 -czwatre rozwiazanie

#kod ktory umieszczony zostal powyzej to moj kod calkowity skryptu
re: Kameleon - cos dalej nie jest tak zobacz na kompletny kod powyzej - to jusz jest naprade kompletny kod.
DeyV
Zróbmy inaczej. Bez sensu bedzie, jeśli my ci poprawimy kod, a ty i tak nie będziesz rozumiał zasady jego działania.
Tak więc spróbuję pokazać Ci, co ten skrypt powinien zawierać

1. wybieranie interesujących nas danych. Tu pola select. Dla przypomnienia - poszczególne elementy pola select tworzy się tak
<option value="" > text </option> , a nie tak, jak ty to robiłeś.

2. Sprawdzanie, czy odpowiednie pozycje zostały wybrane.
Jak? Po wysłaniu formularza każdy element formularza staje się elementem odpowiedniej tablicy (tu $_POST lub $_REQUEST ) o takiej nazwie, jaką miał w formularzu, i wybranej przez użytkownika wartości (value z selecta). Wiec w przypadku gdy value=0, np w <option selected>wybierz cos</option> wysyłamy do użytkownika odpowiedni komunikat, oraz ustawiamy zmienną $blad.
3. Sprawdzamy, czy wartości spełniają nasze wymogi, np. czy $zabawka jest prawidłową nazwą tabeli. Można to zrobić funkcją in_arrray($zabawka, array('nazwa1', 'nazwa2')
4. Jeśli nie ma żadnego błędu - wyświetlamy dane z bazy danych - to już umiesz.

A teraz spróbuj napisać ten skrypt jeszcze raz, zgodnie z tym co ci napisałem, oraz nszymi przykłdami. I pisz, konkretnie, których komend nie rozumiesz.
itsme
i otocz kod php znacznikami php [php:1:f1011d6170]<?php
echo "Prosze smile.gif))";
?>[/php:1:f1011d6170]
Fo
Aaaaaaaaaaaaaa kij z tym zalatwilem to prościej :
wystarczyla mi funkcja if - ze tez na to wczsniej nie wpadlem :/ yhheh - wszo przez to ze za malo spie [4-6godzin dziennie to dla mnei za malo]
[php:1:02b3c967ee]
<?

---------------------------------------------------------------------------
if ($zabawka == "") {
echo "Należy wybrać zabawke i miejsce aby otrzymać prawidłowy wynik wyszukiwania";
exit;
}
elseif ($miejsce == "") {
echo "Należy wybrać zabawke i miejsce aby otrzymać prawidłowy wynik wyszukiwania";
exit;
}
# formularz umozliwiajacy wybor z bazy danych tego co sie chce... smile.gif ssasasa
$wynik = mysql_query ("SELECT * FROM $prefiks$zabawka WHERE miejsce='$miejsce';");
while ($record = @mysql_fetch_array ($wynik))
-------------------------------------------------------------------------------
no i dalej jak w poprzednich az do tad

echo "$zabawka<br>";
echo "$miejsce<br>";
echo "$tresc<br>";

}
// i po wszystkim jeszcze raz if smile.gif
if ($tresc == "") {
echo "Brak danych";
exit;
}
?>
[/php:1:02b3c967ee]

Dziekuje wszystkim za to ze wyrazili chec pomocy - dzieki DeyV ze troche swojego czasu poswieciles na to aby mi to wszystko wyjasnic - wmiare zebym qmal - tera chyba zrobie to jeszcze wg. Twojego sposobu smile.gif
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.