Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]portal ogłoszeniowy
Forum PHP.pl > Forum > Przedszkole
fantaff
witam

przyszlo mi napisac projekt na studia. ma to byc portal ogloszeniowy (sprzedaz samochodow). prosilbym o pomoc z ponizszymi kodami. i kilkoma poradami.

wyszukiwarka ogloszen:

mam formularz, mam wyszukiwarke. wyszukiwarka szuka...kod dziala ale nie mam pojecia jak wyswietlic rekordy. wszedlem w taki zaulek ze juz nie wiem co z tym zrobic.

formularz:
  1. <table width="821" border="0" align="center" cellspacing="20" id="glowna">
  2. <tr>
  3. <td width="779">
  4.  
  5. <form action="search.php" method="post"><div>
  6. <label>
  7. <table width="700" border="0" cellspacing="5">
  8. <tr>
  9. <td colspan="3" align="center"><p><strong>Zaawansowane szukanie</strong></p>
  10. <p>&nbsp;</p></td>
  11. </tr>
  12. <tr>
  13. <td width="174">Marka:</td>
  14. <td width="607"><select name="marka" id="marka">
  15. <option></option>
  16. <option>Acura</option>
  17. <option>Alfa Romeo</option>
  18. <option>Aston Martin</option>
  19. <option>Audi</option>
  20. <option>BMW</option>
  21. <option>Bentley</option>
  22. <option>Chevrolet</option>
  23. <option>Chrysler</option>
  24. <option>Citroen</option>
  25. <option>Daewoo</option>
  26. <option>Dodge</option>
  27. <option>Ferrari</option>
  28. <option>Fiat</option>
  29. <option>Ford</option>
  30. <option>Honda</option>
  31. <option>Hyundai</option>
  32. <option>Jaguar</option>
  33. <option>Kia</option>
  34. <option>Lancia</option>
  35. <option>Mazda</option>
  36. <option>Mercedes-Benz</option>
  37. <option>Mitsubishi</option>
  38. <option>Nissan</option>
  39. <option>Opel</option>
  40. <option>Peugeot</option>
  41. <option>Porsche</option>
  42. <option>Renault</option>
  43. <option>Skoda</option>
  44. <option>Suzuki</option>
  45. <option>Toyota</option>
  46. <option>Volkswagen</option>
  47. <option>Volvo</option>
  48. </select></td>
  49. <td width="607">&nbsp;</td>
  50. </tr>
  51. <tr>
  52. <td>Model: </td>
  53. <td><input type="text" name="model" /></td>
  54. <td>&nbsp;</td>
  55. </tr>
  56. <tr>
  57. <td>Typ nadwozia: </td>
  58. <td><select name="typ">
  59. <option></option>
  60. <option>Cabrio</option>
  61. <option>Hatchback</option>
  62. <option>Kombi</option>
  63. <option>Pickup</option>
  64. <option>SUV</option>
  65. <option>Sedan</option>
  66. <option>Coupe</option>
  67. <option>Van</option>
  68. <option>Terenowy</option>
  69. </select></td>
  70. <td>&nbsp;</td>
  71. </tr>
  72. <tr>
  73. <td>Pojemność silnika od:</td>
  74. <td>od
  75. <input type="text" name="poj_silnika_od" />
  76. cm3 </td>
  77. <td>do
  78. <input type="text" name="poj_silnika_do" />
  79. cm3</td>
  80. </tr>
  81. <tr>
  82. <td>Rodzaj paliwa:</td>
  83. <td><select name="rodzaj_silnika" />
  84. <option></option>
  85. <option>Benzyna</option>
  86. <option>Benzyna+LPG</option>
  87. <option>Diesel</option>
  88. <option>Hybryda</option></td>
  89. <td>&nbsp;</td>
  90. </tr>
  91. <tr>
  92. <td>Rok produkcji: od</td>
  93. <td>od
  94. <input type="text" name="rok_produkcji_od" /></td>
  95. <td>do
  96. <input type="text" name="rok_produkcji_do" /></td>
  97. </tr>
  98. <tr>
  99. <td>Moc silnika od:</td>
  100. <td>od
  101. <input type="text" name="moc_silnika_od" />
  102. KM </td>
  103. <td>do
  104. <input type="text" name="moc_silnika_do" />
  105. KM </td>
  106. </tr>
  107. <tr>
  108. <td>Przebieg od: </td>
  109. <td>od
  110. <input type="text" name="przebieg_od" />
  111. km </td>
  112. <td>do
  113. <input type="text" name="przebieg_do" />
  114. km </td>
  115. </tr>
  116. <tr>
  117. <td>Skrzynia biegów: </td>
  118. <td><select name="skrzynia_biegow" />
  119. <option></option>
  120. <option>Manualna</option>
  121. <option>Automatyczna</option></td>
  122. <td>&nbsp;</td>
  123. </tr>
  124. <tr>
  125. <td>Stan: </td>
  126. <td><select name="stan" />
  127. <option></option>
  128. <option>Nowy</option>
  129. <option>Uzywany</option></td>
  130. <td>&nbsp;</td>
  131. </tr>
  132. <tr>
  133. <td>Uszkodzony:</td>
  134. <td><select name="uszkodzony" />
  135. <option></option>
  136. <option>Tak</option>
  137. <option>Nie</option></td>
  138. <td>&nbsp;</td>
  139. </tr>
  140. <tr>
  141. <td>Cena</td>
  142. <td>od
  143. <input type="text" name="cena_od" />
  144. </td>
  145. <td>do
  146. <input type="text" name="cena_do" />
  147. </td>
  148. </tr>
  149. </table>
  150. <option></option><br />
  151.  
  152. <p align="center"><input type="submit" name="znajdz" value="Szukaj" />
  153. </p><br />
  154. </form>


i nieszczesna wyszukiwarka:
  1. <?php
  2.  
  3. // łączymy się z bazą danych
  4. $connection = @mysql_connect('localhost', 'test', 'test')
  5. or die('Brak połączenia z serwerem MySQL');
  6. $db = @mysql_select_db('samochody', $connection)
  7. or die('Nie mogę połączyć się z bazą danych');
  8.  
  9. echo'<h2>Wyniki wyszukiwania</h2>';
  10.  
  11. if(isset($_POST['znajdz']))
  12. {
  13.  
  14. $wh = array();
  15. if (!empty($_POST['marka']))
  16. $wh[] = "MARKA LIKE '%$marka%'";
  17. if (!empty($_POST['model']))
  18. $wh[] = "MODEL LIKE '%$model%'";
  19. if (!empty($_POST['typ']))
  20. $wh[] = "TYP LIKE '%$typ%'";
  21. if (!empty($_POST['rodzaj_silnika']))
  22. $wh[] = "RODZAJ_SILNIKA LIKE '%$rodzaj_silnika%'";
  23. if (!empty($_POST['poj_silnika_od']))
  24. $wh[] = 'POJ_SILNIKA >= '.$_POST['poj_silnika_od'];
  25. if (!empty($_POST['poj_silnika_do']))
  26. $wh[] = 'POJ_SILNIKA <= '.$_POST['poj_silnika_do'];
  27. if (!empty($_POST['moc_silnika_od']))
  28. $wh[] = 'MOC_SILNIKA >= '.$_POST['moc_silnika_od'];
  29. if (!empty($_POST['moc_silnika_do']))
  30. $wh[] = 'MOC_SILNIKA <= '.$_POST['moc_silnika_do'];
  31. if (!empty($_POST['przebieg_od']))
  32. $wh[] = 'PRZEBIEG >= '.$_POST['przebieg_od'];
  33. if (!empty($_POST['przebieg_do']))
  34. $wh[] = 'PRZEBIEG <= '.$_POST['przebieg_do'];
  35. if (!empty($_POST['skrzynia_biegow']))
  36. $wh[] = "SKRZYNIA_BIEGOW LIKE '%$skrzynia_biegow%'";
  37. if (!empty($_POST['stan']))
  38. $wh[] = "STAN LIKE '%$stan%'";
  39. if (!empty($_POST['uszkodzony']))
  40. $wh[] = "USZKODZONY LIKE '%$uszkodzony%'";
  41. if (!empty($_POST['cena_od']))
  42. $wh[] = 'CENA >= '.$_POST['cena_od'];
  43. if (!empty($_POST['cena_do']))
  44. $wh[] = 'CENA <= '.$_POST['cena_do'];
  45. print '<pre>';
  46. print_r($_POST);
  47. print '</pre>';
  48.  
  49. if (!empty($wh))
  50. $where = 'where '.implode(' and ', $wh);
  51. else
  52. $where = '';
  53. $zapytanie = 'SELECT * FROM `samochod` '.$where;
  54. $wynik = mysql_query($zapytanie);
  55.  
  56. ?>
  57. <table cellpadding="2" cellspacing="2" border=0>
  58. <tr>
  59. <th></th>
  60. <th><font face="Arial, Helvetica, sans-serif">Nazwa</font></th>
  61. <th><font face="Arial, Helvetica, sans-serif">Przebieg</font></th>
  62. <th><font face="Arial, Helvetica, sans-serif">Cena</font></th>
  63. <tr>
  64. <?php
  65. while( $wiersz = mysql_fetch_array($wynik) )
  66.  
  67. {
  68.  
  69. echo "<tr>";
  70. echo "<td></td>";
  71. echo "<td>".$wiersz['MARKA']."</td>";
  72. echo "<td>".$wiersz['PRZEBIEG']."</td>";
  73. echo "<td>".$wiersz['MODEL']."</td>";
  74. echo "</tr>";
  75.  
  76. }
  77. ?>
  78. </table>
  79. <?php
  80. print '<pre>';
  81. print_r($_POST);
  82. print '</pre>';
  83. mysql_close($connection);
  84. }
  85. ?>


i kilka pytan:
1. najprawdopodopodobniej znajde informacje w internecie ale nie jestem pewien czy bede ich poprawnie uzywal takze chcialbym wiedziec czy sa jakies wytyczne/porady jak powinno sie wyswietlac ogloszenia z bazy danych i jak je linkowac.

2. kiedy w formularzu powyzej klikne "szukaj" wyskakuja mi rekordy na bialym tle. jak zrobic aby wyswitlalo mi tak jak reszte stron? odrazu powiem ze index php wyglada mniej wiecej tak:
  1. <table width="1024" border="1" id="glowna" align="center">
  2. <tr>
  3. <td colspan="4" id="top2"><img src="grafika/logo.jpg" width="800" height="212" /></td>
  4. </tr>
  5. <tr>
  6. <td id="top"><a href="index.php?menu=glowna">Strona Główna</a></td>
  7. <td id="top"><a href="index.php?menu=ogloszenia">Ogłoszenia</a></td>
  8. <td id="top"><a href="index.php?menu=dodaj">Dodaj Ogłoszenie</a></td>
  9. <td id="top"><a href="index.php?menu=szukaj">Szukaj</a></td>
  10. </tr>
  11. <tr>
  12. <td colspan="4">
  13.  
  14. <?php
  15. if($_GET["menu"]=="glowna"){
  16. include("glowna.php");
  17. }else if ($_GET["menu"]=="ogloszenia"){
  18. include("ogloszenia.php");
  19. }else if ($_GET["menu"]=="dodaj"){
  20. include("dodaj.php");
  21. }else if ($_GET["menu"]=="szukaj"){
  22. include("szukaj.php");
  23. }else{
  24. echo "";
  25. }
  26. ?>
  27. </td>
  28. </tr>
  29. <tr>
  30. <td colspan="4" align="right"><font size="-3" color="#FF0000">Copyright Motox</font></td>
  31. </tr>
  32. </table>


czyli chcialbym zeby wynik szukania trafial do komorki tabeli w index.php tak jak reszta podstron. lub moze to sie robi inaczej?

3. jak dodawac zdjecia w formularzu kiedy chcialbym aby ogloszenie dodawac mogli niezarejestrowani uzytkownicy? myslalem nad: formularz wysyla zdjecie do katalogu zdjecia, a link do pliku zapisuje w bazie danych, no i w bazie przypisac zdjeciu numer ogloszenia. probowalem w ten sposob ale napotkalem problemy. czy jest jakis lepszy sposob?

z gory dzieki za jakiekolwiek uwagi/rady.


PanGuzol
ad 1. Wyświetlasz jak Ci się podoba
ad 2. To o co pytasz to jest HTML i CSS a nie MySQL i PHP.
ad 3. jakie problemy napotykasz?
fantaff
1.szukalem w necie ale nie mam pojecia jak linkowac ogloszenie. jestem na etapie ze ladnie wyswietla mi liste ogloszen. i teraz nie wiem co robic. wychodze z zalozenia ze w petli ktora wyswietla liste trzeba dac <a hreff ...> ale nie rozumiem w jaki sposob strona kazdego ogloszenia ma sie generowac dynamicznie i jak zrobic do takiej strony szablon.

2.czyli sformatowac wynik wyszukiwania css-em tak zeby wygladalo jak szablon z indexu. i nie da sie zrobic aby wyniki zostaly wpisane w komórke indexu?

3. do formualrza ogloszenia dodalem pole zdjecie, zdjecie dodawalo sie do folderu mojastrona/zdjecia/ ale nie dodawala rekordow w bazie danych takze cos musialem zrobic nie tak. nie wiem tez jak zrobic zeby przypisac do zdjecia id ogloszenia oraz co najwazniejsze nie umialem zrobic zeby caly formularz wysylalo naraz. tzn. wysylalo albo sam formularz albo uploadowalo zdjecie. nie wiem jak polaczyc te dwie rzeczy zeby caly formularz wysylal sie razem.
Daiquiri
1. Łopatologicznie rzecz ujmując smile.gif:
Możesz stworzyć sobie stronę ogloszenie.php a w niej dać warunek
  1. if(isset($_GET['ID']) { // jeżeli ustawiono ID
  2. // tutaj pobieranie danych z bazy, o ogłoszeniu np. SELECT * FROM jakaś tabela WHERE ID = $_GET['ID'];
  3. // a następnie:
  4. echo $pobrane_dane['tytul'];
  5. echo $pobrane_dane['tresc'];
  6. }
Pseudokod oczywiście przykładowy.

Linki w liście wyglądałyby wtedy następująco: <a href="ogloszenie.php?ID=1">link</a>, gdzie 1 jest przykładowa. W jej miejsce podstawiasz zmienną z ID ogłoszenia w pętli, inną dla każdego ogłoszenia. Nie musi to być oczywiście ID, tylko dowolne pole, które jednoznacznie identyfikuje Ci pojedyncze ogłoszenie. Dzięki temu strona ogloszenie.php dynamicznie załaduje Ci zawartość wybranego ogłoszenia. Ta strona jest jednocześnie Twoim szablonem.

To jest tylko przykład smile.gif. Możesz to zrobić zupełnie inaczej.

2. Nie rozumiem smile.gif. Możesz w swój kod ładować tyle CSSa ile dusza zapragnie.
fantaff
okej z 2. sobie poradzilem. faktycznie bez problemow poszlo.

1 i 3 sie zajme jak wroce z uczelni ale dzieki wielkie Daiquiri za podpowiedz. przynajmniej wiem co z czym i jak:] mysle ze dojde jak to zrobic.

edit:
okej doszedlem do linkowania ogloszenia. ogloszenia wyswietlane na liscie sa polinkowane. kiedy klikne na jakies ogloszenie pojawia sie link ogloszenie.php?ID=x gdzie x to ID rekordu.

teraz chcialbym wyciagnac z bazy rekordy dotyczace konkretnego ID. czy da sie jakos pobrac ID z linku do strony? czy moze nalezy to zrobic inaczej?

wyciagnalem ID z linka GET-em teraz nie wiem co dalej:P
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.