Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] wyświetlanie rekordu o danym id
Forum PHP.pl > Forum > Przedszkole
Darekxp
Witam! Troche popracowałem nad poprzednim tematem w którym znalazłem cześciowo odpowiedź(http://forum.php.pl/index.php?showtopic=106769&st=0&p=534813�entry534813), przynajmniej tak mi sie wydaje.
podejrzewam że znowu coś mam z linkami popierdzielone np: index.php?page=cogloszenia.php?id=1 (że nie mogą być dwa znaki zapytania, a jeśli mogą muszą być gdzieś zdefiniowane). jeśli ustawie method=get i $_post zamienie na $_get( w ogłoszenia.php) to nie działa pokazywanie ogłoszeń z działów, więc to może być 2 mój błąd którego nie moge i tak zmienić. Czekam na rady i pomoc;)


index.php
  1. <? include("db.php"); ?>
  2. //dalsza część serwisu
  3. <?php
  4.   if(isset($_GET['page']))
  5.     if(file_exists("pages/".$_GET['page']))
  6.       include("pages/".$_GET['page']);
  7.     else
  8.       include("pages/error.php");
  9.   else
  10.     include("pages/glowna.php");
  11.      
  12. ?>
  13. //dalsza część serwisu



ogloszenia.php
  1. <p><table width="387" border="0">
  2.  <tr bgcolor="#FFFFCC">
  3.    <td width="50"><div align="center">Fotka</div></td>
  4.    <td width="153"><div align="center">Tytuł</div></td>
  5.    <td width="86"><div align="center">Miasto</div></td>
  6.    <td width="70"><div align="center">Dodano</div></td>
  7.  </tr></table></p>
  8. <?php
  9.  
  10. $tabela = "ogloszenia";
  11.  
  12. $poziom = $_POST['poziom'];
  13. $poziomRange = $_POST['poziomRange'];
  14.  
  15. if($poziom and $poziomRange) {
  16.    
  17.  
  18.    if (mysql_connect($server, $user, $pass) and mysql_select_db($name)) {
  19.        
  20.  
  21.        $wynik = mysql_query("SELECT * FROM ogloszenia WHERE poziom='$poziom' AND poziomRange='$poziomRange' order by id desc")
  22.        or die("Błšd w zapytaniu!");
  23.        
  24.        mysql_close();
  25.    }
  26.    else echo "Nie mogę połšczyć się z bazš danych!";
  27.  
  28.    echo "<table width=384 border=0>";
  29.    while($r = mysql_fetch_array($wynik, MYSQL_NUM)){
  30.  
  31.  echo "<tr>";
  32.    echo "<td><div align=center><a href=http://www.strona.pl/fotki/".$r[12]." ><img src=http://www.strona/fotki/".$r[12]." width=50 height=50 alt=brak > </div></td>";
  33.    echo "<td><div align=center><a href=index.php?page=cogloszenia.php?id=$r[0]>".$r[1]."</a></div></td>";
  34.    echo "<td><div align=center>".$r[4]."</div></td>";
  35.    echo "<td><div align=center>".$r[8]."</div></td>";
  36.  echo "</tr>";
  37.    }
  38.    echo "</table>";
  39. }
  40.  
  41. ?>


cogloszenia.php (całe ogłoszenie)

  1. <?php
  2.  
  3. mysql_connect($server, $user, $pass); mysql_query("SET NAMES 'latin2'");
  4.  
  5. $wynik = mysql_query(" SELECT * FROM ogloszenia WHERE id='$id' ")
  6. or die("Błąd zapytania");
  7.  
  8. if(mysql_num_rows($wynik) > 0) {
  9.  
  10.    echo "<table width=384 border=0>";
  11.    while($r = mysql_fetch_array($wynik)) {
  12.  
  13.  echo "<tr>";
  14.    echo "<td><div align=center></div>".$r[0]."</td>";
  15.    echo "<td><div align=center>".$r[1]."</div></td>";
  16.    echo "<td><div align=center>".$r[2]."</div></td>";
  17.    echo "<td><div align=center>".$r[3]."</div></td>";
  18.  echo "</tr>";
  19.    }
  20.    echo "</table>";
  21. }
  22.  
  23. ?>


menu odpowiedzialne za wybór działu

  1. <script type="text/javascript">
  2. function zamiana(wybor)
  3. {
  4. var praca = new Array ("szukam","zatrudnie");
  5. var uslugi = new Array ("zlece","wykonam");
  6. var kupie = new Array ("rtv","komputery","agd","dom","moto");
  7. var sprzedam = new Array ("rtv","komputery","agd","dom","moto");
  8.  
  9. if (wybor == "praca") {
  10. var dlugosc = praca.length-1;
  11. document.formularz.elements.poziomRange.options.length = praca.length;
  12. for (var i=0; i<= dlugosc; i++) {
  13. document.formularz.poziomRange.options[i] = new Option(praca[i]);
  14. document.formularz.poziomRange.options[i].value = praca[i];
  15. }
  16. }
  17. if (wybor == "uslugi") {
  18. var dlugosc = uslugi.length-1;
  19. document.formularz.elements.poziomRange.options.length = uslugi.length;
  20. for (var i=0; i<= dlugosc; i++) {
  21. document.formularz.poziomRange.options[i] = new Option(uslugi[i]);
  22. document.formularz.poziomRange.options[i].value = uslugi[i];
  23. }
  24. }
  25. if (wybor == "kupie") {
  26. var dlugosc = kupie.length-1;
  27. document.formularz.elements.poziomRange.options.length = kupie.length;
  28. for (var i=0; i<= dlugosc; i++) {
  29. document.formularz.poziomRange.options[i] = new Option(kupie[i]);
  30. document.formularz.poziomRange.options[i].value = kupie[i];
  31. }
  32. }
  33. if (wybor == "sprzedam") {
  34. var dlugosc = sprzedam.length-1;
  35. document.formularz.elements.poziomRange.options.length = sprzedam.length;
  36. for (var i=0; i<= dlugosc; i++) {
  37. document.formularz.poziomRange.options[i] = new Option(sprzedam[i]);
  38. document.formularz.poziomRange.options[i].value = sprzedam[i];
  39. }
  40. }
  41. }

  1. <form action="index.php?page=ogloszenia.php" method="post" name="formularz">
  2. <select name="poziom" onChange="zamiana(this.value);" style="width: 150px;">
  3. <option value="praca">Praca</option>
  4. <option value="uslugi">Usługi</option>
  5. <option value="kupie">Kupię</option>
  6. <option value="sprzedam">Sprzedam</option>
  7. </select>
  8. <select name="poziomRange" onChange="zamiana(this.value);" style="width: 150px;" >
  9. <option value="szukam">Szukam</option>
  10. <option value="zatrudnie">Zatrudnię</option>
  11. </select>
  12. <input name="submit" type="submit" value=" pokaż "></input>
  13. </form>
  14. </div>
kefirek
Tutaj powinno być
  1. <?php
  2. <a href=index.php?page=cogloszenia.php&id=$r[0]>".$r[1]."</a>
  3. ?>


Nie może być dwa razy ?
Darekxp
hmm no blisko bo już nic się nie pokazuje,pusta strona a ostatnio pokazywało brak strony czyli idziem w dobrą stronę chyba;) ale jak wpisze http://www.strona.pl/pages/cogloszenia.php?id=3 też nic nie pokazuje. jakieś pomysły?
erix
Cytat
[php$wynik = mysql_query(" SELECT * FROM ogloszenia WHERE id='$id' ")
or die("Błąd zapytania");[/php]

Nie $id, tylko $_GET['id'].

Poza tym, proponuję poczytać o SQL Injection.
Darekxp
Wszystko ok, tylko dlaczego rekordy są wyświetlanie podwójnie?(w całych ogłoszeniach-cogloszenia.php)
np
1 położę kafelki tel: 123456789 warszawa
1 położę kafelki tel: 123456789 warszawa
erix
A jak masz w bazie? Bo z tego, co widzę, to masz dwa rekordy o takim samym ID.
Darekxp
tzn nie to przykład wyświetlania, niezależnie od działu po wejściu w jakieś ogłoszenia pokazuje jak powyżej napisałem. a w bazie mam 3 rekordy dla tesu narazie (id:1,2,3)
erix
A mysql_num_rows" title="Zobacz w manualu PHP" target="_manual co faktycznie zwraca (ile)?
Darekxp
mam w tabeli 1 rekord o id=1. nie wiem co jest
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.