Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z warunkami w PHP
Forum PHP.pl > Forum > PHP
kuba242
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>
nospor
http://nospor.pl/wyszukiwarka-zapytanie-za...runkow-n31.html

uzywaj bbcode
nospor
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]
kuba242
Skoro popełniłem masę błędów, to czy mógłbyś mi je wskazać ? Dopiero zaczynam z PHP.
nospor
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
kuba242
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 "[]" ?
nospor
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
kuba242
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>
mike
Cytat(kuba242 @ 10.04.2009, 13:15:42 ) *
W jakim celu jest to "[]" ?
http://pl.php.net/manual/pl/language.types.array.php
mike
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
kuba242
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() ?
erix
A google gryzą? tongue.gif Pierwszy lepszy kurs PHP ma osobny dział przeznaczony na tablice...
kuba242
Nie gryzą, ale szczerze mówiąc niewiele z tego zrozumiałem.
nospor
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
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.