Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z warunkami w PHP
kuba242
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 10.04.2009

Ostrzeżenie: (0%)
-----


Chcę zrobić stronę w PHP, która odczytuje, zapisuje i wyszukuje wartości z bazy danych. Odczytywanie mam zrobione, teraz się zajmuje wyszukiwaniem i mam problem. Zrobiłem w HTML'u formularz o polach Marka, Model, Rocznik, Kolor (odpowiednio $a, $b, $c, $d). Chcę zrobić tak, by po wpisaniu np. Astra, 1999 wyszukało mi wszystkie astry niezależnie od koloru i ofc marki tongue.gif lub Honda, zielona i wyszuka mi wszystkie zielone hondy niezależnie od rocznika i modelu. Próbowałem to zrobić po warunkach. Już pierwszy warunek nie działa, albo raczej nie mam pojęcia jak go zrobić. Pierwszy musi sprawdzać czy wszystkie pola są zapełnione. Jeśli nie to kolejne 4 warunki muszą sprawdzać, które pole jest puste (która zmienna nie została zdefiniowana) i do każdego z nich 3 sprawdzające kolejne zmienne itd. Poniżej umieszczam kod z pierwszym tylko warunkiem. Nie działa, więc podpowiedzcie co zmienić i czy wogóle da sie to zrobić tak jak ja myślę. Z góry dzięki.

CODE

Menu






$a=$_POST["a"];
$b=$_POST["b"];
$c=$_POST["c"];
$d=$_POST["d"];


$i=mysql_connect('localhost', 'root', 'krasnal');


if(!@mysql_connect('localhost', 'root', 'krasnal'))
{
exit('Wystąpił błąd numer ('.mysql_errno().'): '.mysql_error().'
');
}

mysql_query("use kuba");




if(!empty($a=' ') && !empty($b=' ') && !empty($c=' ') && !empty($d=' '))
{


$w=mysql_query("SELECT * FROM Samochody WHERE Marka='$a'AND Model='$b' AND Rocznik='$c' AND Kolor='$d' ");

echo('
');
echo('
Samochody');

while ($r=mysql_fetch_assoc($w))
{
echo('
Marka: '.$r[Marka].'');
echo('
Model: '.$r[Model].'');
echo('
Rocznik: '.$r[Rocznik].'');
echo('
Kolor: '.$r[Kolor].'');
echo('
');
}
echo('
');

}

else
{
}

?>








<HTML>
<TITLE>Menu</TITLE>
<BODY bgcolor="black">
<FONT color="white">



<?php

$a=$_POST["a"];
$b=$_POST["b"];
$c=$_POST["c"];
$d=$_POST["d"];


$i=mysql_connect('localhost', 'root', 'krasnal');


if(!@mysql_connect('localhost', 'root', 'krasnal'))
{
exit('Wystąpił błąd numer ('.mysql_errno().'): <b>'.mysql_error().'</br>');
}

mysql_query("use kuba");




if(!empty($a=' ') && !empty($b=' ') && !empty($c=' ') && !empty($d=' '))
{


$w=mysql_query("SELECT * FROM Samochody WHERE Marka='$a'AND Model='$b' AND Rocznik='$c' AND Kolor='$d' ");

echo('<table border="0">');
echo('<TR><TD colspan="2"><B>Samochody</B></TD></TR>');

while ($r=mysql_fetch_assoc($w))
{
echo('<TR><TD align="right"><FONT color="white" size="4" face="Arial"><B>Marka: </B></TD><TD><FONT color="white" size="4" face="Arial">'.$r[Marka].'</TD></TR>');
echo('<TR><TD align="right"><FONT color="white" size="4" face="Arial"><B>Model: </B></TD><TD><FONT color="white" size="4" face="Arial">'.$r[Model].'</TD></TR>');
echo('<TR><TD align="right"><FONT color="white" size="4" face="Arial"><B>Rocznik: </B></TD><TD><FONT color="white" size="4" face="Arial">'.$r[Rocznik].'</TD></TR>');
echo('<TR><TD align="right"><FONT color="white" size="4" face="Arial"><B>Kolor: </B></TD><TD><FONT color="white" size="4" face="Arial">'.$r[Kolor].'</TD></TR>');
echo('<TR><TD colspan="2">&nbsp;</TD></TR>');
}
echo('</Table>');

}

else
{
}

?>


</BODY>
</FONT>
</HTML>
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




http://nospor.pl/wyszukiwarka-zapytanie-za...runkow-n31.html

uzywaj bbcode


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
nospor
post
Post #3





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




nie, nie zrobiles. popelniles mase bledow.

zobacz jak ja przypisuje cos do tablicy a jak ty...

po raz ostatni prosze o wlasciwe bbcode! dla php ma to byc [php]


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
kuba242
post
Post #4





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 10.04.2009

Ostrzeżenie: (0%)
-----


Skoro popełniłem masę błędów, to czy mógłbyś mi je wskazać ? Dopiero zaczynam z PHP.
Go to the top of the page
+Quote Post
nospor
post
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




zle sie wyrazilem: popelniles jeden blad powielony wiele razy winksmiley.jpg

u mnie jest: $wh[] =
a u ciebie: $z =

chodzi o brak []

pozatym skoro Model to tekst to powinno byc:
$z[]="Model='$d'";
analogicznie reszta.
analizuj troche to lepiej


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
kuba242
post
Post #6





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 10.04.2009

Ostrzeżenie: (0%)
-----


Poprawiłem to, lecz nadal wyskakuje błąd w 60 linii:
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in c:\usr\krasnal\www\kuba\wyszukaj.php on line 60

W jakim celu jest to "[]" ?
Go to the top of the page
+Quote Post
nospor
post
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




zjadles spacje:
  1. <?php
  2. $w=mysql_query('SELECT * FROM Samochody '.$e);
  3. ?>

poczatkujacy poczatkujacym, ale kopiowac moglbys lepiej.

rozbuduj to o:
  1. <?php
  2. $w=mysql_query('SELECT * FROM Samochody '.$e) or die (mysql_error().' warunki:'.$e);
  3. ?>


Cytat
W jakim celu jest to "[]" ?
zeby dodac cos do tablicy a nie nadpisac zmienna co ty robiles


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
kuba242
post
Post #8





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 10.04.2009

Ostrzeżenie: (0%)
-----


To jest aktualny kod:
  1. <HTML>
  2. <TITLE>Menu</TITLE>
  3. <BODY bgcolor="black">
  4. <FONT color="white">
  5.  
  6.  
  7.  
  8. <?php
  9.  
  10. $a=$_POST["a"];
  11. $b=$_POST["b"];
  12. $c=$_POST["c"];
  13. $d=$_POST["d"];
  14.  
  15.  
  16. $i=mysql_connect('localhost', 'root', 'krasnal');
  17.  
  18.  
  19. if(!@mysql_connect('localhost', 'root', 'krasnal'))
  20.         {
  21.         exit('Wystąpił błąd numer ('.mysql_errno().'): <b>'.mysql_error().'</br>');
  22.         }
  23.  
  24. mysql_query("use kuba");
  25.  
  26.  
  27. $z=array();
  28. if(!empty($a))
  29.  $z[]="Marka='$a'";
  30.  
  31.  
  32. if(!empty($b))
  33.  $z[]="Model='$b'";
  34.  
  35.  
  36. if(!empty($c))
  37.  $z[]="Rocznik='$c'";
  38.  
  39.  
  40. if(!empty($d))
  41.  $z[]="Model='$d'";
  42.  
  43.  
  44. if(!empty($z))
  45.  $e='WHERE '.implode(' AND ',$z);
  46.  
  47. else
  48.  $e='';    
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55. $w=mysql_query('SELECT * FROM Samochody'.$e);
  56.  
  57. echo('<table border="0">');
  58. echo('<TR><TD colspan="2"><B>Samochody</B></TD></TR>');
  59.  
  60. while ($r=mysql_fetch_assoc($w))
  61.     {    
  62.     echo('<TR><TD align="right"><FONT color="white" size="4" face="Arial"><B>Marka: </B></TD><TD><FONT color="white" size="4" face="Arial">'.$r[Marka].'</TD></TR>');
  63.     echo('<TR><TD align="right"><FONT color="white" size="4" face="Arial"><B>Model: </B></TD><TD><FONT color="white" size="4" face="Arial">'.$r[Model].'</TD></TR>');
  64.     echo('<TR><TD align="right"><FONT color="white" size="4" face="Arial"><B>Rocznik: </B></TD><TD><FONT color="white" size="4" face="Arial">'.$r[Rocznik].'</TD></TR>');
  65.     echo('<TR><TD align="right"><FONT color="white" size="4" face="Arial"><B>Kolor: </B></TD><TD><FONT color="white" size="4" face="Arial">'.$r[Kolor].'</TD></TR>');
  66.     echo('<TR><TD colspan="2">&nbsp;</TD></TR>');
  67.     }
  68.     echo('</Table>');
  69.  
  70.  
  71.  
  72.  
  73.  
  74. ?>
  75.  
  76.  
  77. </BODY>
  78. </FONT>
  79. </HTML>
Go to the top of the page
+Quote Post
mike
post
Post #9





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


Cytat(kuba242 @ 10.04.2009, 13:15:42 ) *
W jakim celu jest to "[]" ?
http://pl.php.net/manual/pl/language.types.array.php
Go to the top of the page
+Quote Post
mike
post
Post #10





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


Cytat(kuba242 @ 10.04.2009, 13:20:03 ) *
Zaraz to pozmieniam
A ja zaraz idę do toalety. I co kogo to obchodzi!
Skup się na kodzie i wal posta za postem. To nie jest helpdesk tongue.gif
Go to the top of the page
+Quote Post
kuba242
post
Post #11





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 10.04.2009

Ostrzeżenie: (0%)
-----


Wszystko działa, dzięki smile.gif

Moglibyście mi jeszcze wytłumaczyć, do czego służy i czemu została zastosowana akurat tablica array() ?
Go to the top of the page
+Quote Post
erix
post
Post #12





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




A google gryzą? tongue.gif Pierwszy lepszy kurs PHP ma osobny dział przeznaczony na tablice...


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

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
kuba242
post
Post #13





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 10.04.2009

Ostrzeżenie: (0%)
-----


Nie gryzą, ale szczerze mówiąc niewiele z tego zrozumiałem.
Go to the top of the page
+Quote Post
nospor
post
Post #14





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




no $z to tablica wiec zostalo uzyte array() smile.gif

  1. <?php
  2. $z = array();
  3. ?>

jawnie mowisz ze $z to tablica. teraz bez problemu mozesz operowac na $z jak na tablicy. Jakbys tego nie zrobil to php rzucałby ci NOTICEami


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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 Aktualny czas: 21.08.2025 - 23:42