Cześć, mam problem ze zmiennymi. Mój programik ma dobierać procesor, płytę główną, ram oraz inne podzespoły komputera w zależności co do ceny. Wszystko działa ok w momencie kiedy podam poprawne dane polegające na tym że wybieram jeden procesor (i3/i5/i7) ale kiedy cena jest za niska np. na procesor i7 to krzyczy błędem "Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given (...) on line 57".

Czy można te zmienne jakoś ustawić żeby w momencie jak użytkownik wpisze za niską cenę to byłaby ona ustawiana na 0 bądź można by było wywołać jakieś echo?

  1. if ($cenakomputera <= 2300){
  2. $cenaprocesora = $cenakomputera * (21/100);
  3. //////SELECT PROCESORA
  4. $queryprocesor = 'SELECT nazwaprocesora, typgniazda, cena
  5. FROM procesory
  6. WHERE cena BETWEEN 0 AND '. $cenaprocesora.'
  7. and linia like \'%' . $connection->escape($_POST['procesor']) . '%\'
  8. and kartagraficzna="TAK"
  9. order by cena desc
  10. LIMIT 1';
  11. $wynikprocesor = $connection->query($queryprocesor);
  12. $tablicazapytaniaprocesora = mysql_fetch_array(mysql_query($queryprocesor));
  13. $cenaprocesora2 = $tablicazapytaniaprocesora['cena'];
  14. $typgniazdaprocesora = $tablicazapytaniaprocesora['typgniazda'];
  15. //////KONIEC SELECTA PROCESORA
  16. //////SELECT PŁYTY GLOWNEJ
  17. $cenaplyty = $cenakomputera * (23/100);
  18. $queryplyta = 'SELECT producent, nazwa, typ_gniazda, ilosc_slotow_pamieci, wielkosc, cena
  19. FROM plyty_glowne
  20. WHERE cena BETWEEN 0 AND '. $cenaplyty.'
  21. and producent like \'%' . $connection->escape($_POST['plytaglowna']) . '%\'
  22. and typ_gniazda = ' ."'" . $typgniazdaprocesora . "'" . '
  23. order by cena desc
  24. LIMIT 1';
  25. $wynikplyta = $connection->query($queryplyta);
  26.  
  27. $tablicazapytaniaplyty = mysql_fetch_array(mysql_query($queryplyta)); //zapisanie ilosc slotow plyty
  28. $zmiennailoscikosci = $tablicazapytaniaplyty['ilosc_slotow_pamieci']; //zapisanie ilosc slotow plyty
  29. $cenaplyty2 = $tablicazapytaniaplyty['cena'];
  30. $wielkoscplytyglownej = $tablicazapytaniaplyty['wielkosc'];
  31.  
  32. //////KONIEC SELEKTA PLYTY GLOWNEJ
  33. //////SELECT KARTY GRAFICZNEJ
  34. $cenakarty = $cenakomputera * (0/100);
  35. $querykarty = 'SELECT producent, nazwa, cena
  36. FROM karty_graficzne
  37. WHERE cena BETWEEN 0 AND '. $cenakarty.'
  38. and producent like \'%' . $connection->escape($_POST['kartagraficzna']) . '%\'
  39. order by cena desc
  40. LIMIT 1';
  41. $wynikkarty = $connection->query($querykarty);
  42. $tablicazapytaniakartygraficznej = mysql_fetch_array(mysql_query($querykarty)); //zapisanie ilosc slotow plyty
  43. $cenakartygraficznej = $tablicazapytaniakartygraficznej['cena'];
  44. }
  45.  
  46. //////KONIEC SELECTA KARTY GRAFICZNEJ
  47. //////SELECT RAMU
  48. $cenaramu = $cenakomputera * (4/100);
  49. $queryram = 'SELECT producent, pojemnosc, czestotliwosc, iloscslotow, cena
  50. FROM ramy
  51. WHERE cena BETWEEN 0 AND '. $cenaramu.'
  52. and producent like \'%' . $connection->escape($_POST['ramy']) . '%\'
  53. and `iloscslotow` <= '. $zmiennailoscikosci .'
  54. order by cena desc
  55. LIMIT 1';
  56. $wynikram = $connection->query($queryram);
  57. $tablicazapytaniaramu = mysql_fetch_array(mysql_query($queryram)); //zapisanie ilosc slotow plyty
  58. $cenaramu2 = $tablicazapytaniaramu['cena'];
  59. //////KONIEC SELECTA RAMU
  60. $cenakomputerabezmonitora = ($cenaprocesora2 + $cenaplyty2 + $cenakartygraficznej + $cenaramu2);


Dane wyświetlam w takiej tabelce:
[php] echo'<td>' .(($row = mysql_fetch_array($wynikprocesor))? $row['nazwaprocesora']:'' ). '</td>';
echo'<td>' .(($row = mysql_fetch_array($wynikplyta))? ($row['producent'] . ' ' . $row['nazwa']) :'').'</td>';
echo'<td>' .(($row = mysql_fetch_array($wynikkarty))? ($row['producent'] . ' ' . $row['nazwa']) :'').'</td>';
echo'<td>' .(($row = mysql_fetch_array($wynikram))? ($row['producent'] . ' ' . $row['pojemnosc'] . ' ' . $row['czestotliwosc']) :'').'</td>';

Przeglądarka krzyczy mi jeszcze błędem w drugim kodzie w linijce 4 podczas wyświetlania danych.
Z góry dzięki za pomoc.