Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Identyczne zapytania różne wyniki
Forum PHP.pl > Forum > Przedszkole
knefelio
2 funkcje:

  1. function tytul($nr) {
  2. $result = mysql_query("SELECT ogl_tytul FROM ogloszenia WHERE ogl_id = '$nr'");
  3. $row = mysql_fetch_array($result);
  4. return $row[ogl_tytul];
  5. }
  6.  
  7. function nazwa_kat($nr1) {
  8. $wykonaj= mysql_query ("SELECT kat_nazwa FROM kategorie WHERE kat_id = '$nr1'");
  9. $row = mysql_fetch_array($wykonaj);
  10. return $row[kat_nazwa];
  11. }


oraz wywołania:

  1. if ($_GET['kat_id']) {
  2. $nr1 = htmlspecialchars(stripslashes(strip_tags(trim($_GET['kat_id']))), ENT_QUOTES);
  3. $title = nazwa_kat($nr1);
  4. }
  5. if ($_GET['ogl_id']) {
  6. $nr = htmlspecialchars(stripslashes(strip_tags(trim($_GET['ogl_id']))), ENT_QUOTES);
  7. $title = tytul($nr);
  8. }


Dla funkcji tytul() dostaję na stronie prawidłową wartość z bazy, czyli tytuł, dla drugiej pojawia mi się link zamiast wartości z bazy. Gdzie leży błąd?
Shido
Przypadkiem powodem tego nie jest to że w obie funkcję przypisujesz do $title ?
Rysh
Wydaje mi się, że swoje dwa zapytania możesz zastąpić jednym. Będzie to bardziej odpowiednie dla skryptu i oczywiście szybsze.
knefelio
Cytat(Shido @ 4.07.2012, 08:31:44 ) *
Przypadkiem powodem tego nie jest to że w obie funkcję przypisujesz do $title ?


no ale title musi być jedną zmienną, bo dotyczy tego samego elementu na stronie

Cytat(Rysh @ 4.07.2012, 09:00:25 ) *
Wydaje mi się, że swoje dwa zapytania możesz zastąpić jednym. Będzie to bardziej odpowiednie dla skryptu i oczywiście szybsze.


  1. if ($_GET['kat_id']) {
  2. $nr1 = htmlspecialchars(stripslashes(strip_tags(trim($_GET['kat_id']))), ENT_QUOTES);
  3. $title = nazwa_kat($nr1);
  4. }
  5. else
  6. {
  7. $nr = htmlspecialchars(stripslashes(strip_tags(trim($_GET['ogl_id']))), ENT_QUOTES);
  8. $title = tytul($nr);
  9. }


użyłem else ale efekt jest ten sam niestety :/

nikt nie pomoże?
Rysh
Jak byś powiedział co dokładnie mają zwracać zapytania, a co zwracają byłoby łatwiej.
knefelio
No tak jak pisze w pierwszym poście - tytul() zwraca mi prawidłowy title dla podstrony z bazy, ale już nazwa_kat() zwraca link podstrony a nie title z bazy - a linku nigdzie w bazie nie ma, więc jest to pewnie jakiś typowy błąd w konstrukcji, ale ja go nie potrafię znaleźć.
Rysh
Pokaż cały kod.
knefelio
Cytat(Rysh @ 5.07.2012, 19:24:52 ) *
Pokaż cały kod.


ale o którym pliku mówimy?

Problematyczny jest index, bo tam jest jest wywołanie tych funkcji oraz plik gdzie są te 2 funkcje.
Rysh
Im więcej dasz, tym szybciej zlokalizujemy błąd.
knefelio
index.php:

  1. <? ob_start() ?>
  2. <? require ('adm/funkcje.php');
  3. if ($_GET['kat_id']) {
  4. $nr1 = htmlspecialchars(stripslashes(strip_tags(trim($_GET['kat_id']))), ENT_QUOTES);
  5. $title = nazwa_kat($nr1);
  6. }
  7. else
  8. {
  9. $nr = htmlspecialchars(stripslashes(strip_tags(trim($_GET['ogl_id']))), ENT_QUOTES);
  10. $title = tytul($nr);
  11. }
  12.  
  13.  
  14. ?>
  15.  
  16. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  17. <html xmlns="http://www.w3c.org/1999/xhtml" xml:lang="pl" lang="pl">
  18. <head>
  19. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  20. <title><? echo $title; ?></title>
  21. <meta name="keywords" content="">
  22. <meta name="description" content="">
  23. <meta name="classification" content="global,all">
  24. <meta name="robots" content="all,index,follow">
  25. <meta name="revisit-after" content="2 days">
  26. <link rel="stylesheet" type="text/css" href="style.css">
  27. <link rel="stylesheet" href="thumbnail_view/thumbnailviewer.css" type="text/css">
  28. <script src="thumbnail_view/thumbnailviewer.js" type="text/javascript">
  29. </script>
  30. </head>
  31. <body>
  32.  
  33.  
  34. <div class="glowne">
  35. <div class="logo"><a href="http://<?php echo $_SERVER['HTTP_HOST']; ?>"><img border="0" src="grafika/testgif" alt=""></a></div>
  36. <div class="menuGlowne">
  37. <ul id="menuGlowne">
  38.  
  39.  
  40. </ul>
  41. </div>
  42.  
  43. <div class="tlo_pasek_1"></div>
  44. <!-- pasek pod 1 -->
  45. <div class="tlo_pasek_2"></div>
  46. <!-- pasek pod 2 -->
  47. <!-- baner glowny -->
  48. <!--<div class="baner_1"></div> -->
  49. <!-- kreska --><!-- kreska -->
  50. <div class="lewe">
  51. <div class="lewe_box">
  52. <div class="pasekKategoria">KATEGORIE</div>
  53. <!-- kategorie -->
  54. <? require('kategorie.php'); ?>
  55. </div>
  56.  
  57. <div class="lewe_box">
  58. <div class="pasekKategoria" style="background: #143CBE;">SZUKAJ</div>
  59. <!-- szukanie size="24"-->
  60. <form method="POST" action="ogloszenia">
  61. <p><label style="padding-left:3px">Wpisz słowo:</label>
  62. <input class="input_form" style="margin: -1 3 3 3; width:184px; height: 25px; background:#f8f8f8;" type="text" name="fraza" value="<? $fraza_szukaj ?>" tabindex="1">
  63. </p>
  64. <p><input class="button" style="margin-left:85px;margin-top: -9px" type="submit" value="Szukaj" name="przycisk"></p>
  65. <a href="wyszukiwanie">Wyszukiwanie Zaawansowane</a>
  66.  
  67. </form>
  68. </div>
  69.  
  70.  
  71.  
  72. <div class="srodek">
  73.  
  74. <?php
  75. switch($_GET['strona']) {
  76. case "najnowsze": include "ogloszenia_start.php"; break;
  77. case "ogloszenia": include "ogloszenia_all.php"; break;
  78. case "ogloszenia_show": include "ogloszenia_show.php"; break;
  79. case "add-ogloszenie": include "ogloszenia_add.php"; break;
  80. case "aktywacja": include "ogloszenia_aktyw.php"; break;
  81. case "edit": include "ogloszenia_edit.php"; break;
  82. case "edit_foto": include "ogloszenia_foto.php"; break;
  83. case "usuniecie": include "ogloszenia_usun.php"; break;
  84. case "weryfikacja": include "ogloszenia_weryf.php"; break;
  85. case "kontakt": include "m_kontakt.php"; break;
  86. case "regulamin": include "m_regulamin.php"; break;
  87. case "kontakt-zgloszenie": include "kontakt_blad.php"; break;
  88. case "szukaj": include "m_szukaj.php"; break;
  89. case "error": include "error_404.php"; break;
  90. case "info": include "m_info.php"; break;
  91. case "przedluz": include "ogloszenie_przedluz.php"; break;
  92. default: include "ogloszenia_start.php"; break;
  93. }
  94. ?>
  95. </div>
  96. <!-- end srodek -->
  97.  
  98. <div class="dolne_1"><a href="regulamin">REGULAMIN</a></div>
  99. <div class="showSmall" style="text-align: right;">Online: <? include ('adm/online.php'); //licznik ?></div>
  100. <div class="dolne_kreski">
  101. <SPAN style="color:black;font-weight: bold; margin-right: 50px;"></SPAN>
  102. <SPAN style="font-size: 9px;">
  103.  
  104. <div style="text-align: right; margin-top:-13px">
  105. </div>
  106. </SPAN>
  107. </div><br>
  108.  
  109. </div>
  110. <?php
  111. include ('adm/connect.php');
  112. $wykonaj= mysql_query ("SELECT smartcontext, smartcontext_code FROM platnosci WHERE platnosci_id =1");
  113. while ($wiersz = mysql_fetch_array($wykonaj))
  114. {
  115. if ( $wiersz['smartcontext'] == "1" ) {echo $wiersz['smartcontext_code']; }
  116. }
  117. ?>
  118. <!-- end glowny -->
  119.  
  120. </body>
  121. </html>
  122.  


funkcje.php:

  1. <?
  2.  
  3. $sciezka_zdjec="./obrazki/";
  4.  
  5. include('connect.php');
  6.  
  7. function zamienLink($tekst)
  8. {
  9. $co = array('Ę','Ó','Ą','Ś','Ł','Ż','Ź','Ć','Ń','ę','ó','ą','ś','ł','ż','ź','ć','ń',' ');
  10. $naco = array('E','O','A','S','L','Z','Z','C','N','e','o','a','s','l','z','z','c','n','-');
  11. //zamienia na male litery nazwa kategorii
  12. $tekst = strtolower( str_replace($co, $naco, $tekst ));
  13. // usuń wszytko co jest niedozwolonym znakiem
  14. $tekst = preg_replace('/[^0-9a-z\-]+/', '', $tekst );
  15. // zredukuj liczbę myślników do jednego obok siebie
  16. $tekst = preg_replace('/[\-]+/', '-', $tekst );
  17. // usuwamy możliwe myślniki na początku i końcu
  18. $tekst = trim($tekst, '-');
  19. return $tekst;
  20. }
  21.  
  22. function tytul($nr) {
  23. $result = mysql_query("SELECT ogl_tytul FROM ogloszenia WHERE ogl_id = '$nr'");
  24. $row = mysql_fetch_array($result);
  25. return $row[ogl_tytul];
  26. }
  27.  
  28. function nazwa_kat($nr1) {
  29. $wykonaj= mysql_query ("SELECT kat_nazwa FROM kategorie WHERE kat_id = '$nr1'");
  30. $row = mysql_fetch_array($wykonaj);
  31. return $row[kat_nazwa];
  32. }
  33.  
  34. function czas ($data) {
  35. // sprawdzam czy jest plik w katalogu
  36. //$data = $wiersz[ogl_data];
  37. $pozostalo = (time() - strtotime($data) )/ (60*60*24);
  38. //if ( floor($pozostalo)> 2) {$data = "przedwczoraj";}
  39. if ( floor($pozostalo) == 2) {$data = "przedwczoraj";}
  40. if ( floor($pozostalo) == 1) { $data = "wczoraj";}
  41. if ( floor($pozostalo) == 0) { $data = "dzisiaj";}
  42. return $data; }
  43. ?>


kategorie.php:

  1. <?
  2. require ('adm/connect.php');
  3. $nr_kat = $_GET['kategoria']; //numer
  4. echo "<ul id='menu'>";
  5. // wyswietla wszystkie kategorie i podkategorie w kolejnosci
  6. $wykonaj= mysql_query ("SELECT c1.*
  7. FROM kategorie c1
  8. LEFT JOIN kategorie c2 ON(c2.kat_id = c1.kat_rodzic
  9. OR (c1.kat_rodzic = 0 AND c2.kat_id = c1.kat_id))
  10. ORDER BY c2.kat_sort, c2.kat_nazwa, c1.kat_rodzic, c1.kat_sort, c1.kat_nazwa");
  11. //dac warunek jesli GET
  12. // z get sprawdza i oddaje wartoœć rodzica inaczej '0'
  13. $result = mysql_query ("SELECT kat_rodzic FROM kategorie WHERE kat_id = '$nr_kat' AND kat_rodzic <> '0'");
  14. $row = mysql_fetch_array($result);
  15. $rodzic = $row[kat_rodzic]; // oddaje wartosc rodzica (głowna = 0)
  16.  
  17. while ($wiersz = mysql_fetch_array($wykonaj)){
  18. $czyMaPodkat = mysql_query ("SELECT count(kat_id) AS licznik_podkat
  19. FROM kategorie WHERE kat_rodzic = '$wiersz[kat_id]' ");
  20. $row = mysql_fetch_array($czyMaPodkat);
  21. // $row[licznik_podkat];
  22. if ( $row[licznik_podkat] == '0' ) {
  23. $licznik = mysql_query (" SELECT count(ogl_id) AS licznik FROM ogloszenia
  24. WHERE ogl_kategoria = '$wiersz[kat_id]'
  25. AND ogl_aktywne = '1' ");
  26. } else {
  27. $licznik = mysql_query ("SELECT count(ogl_kategoria) AS licznik
  28. FROM ogloszenia, kategorie
  29. WHERE kategorie.kat_rodzic = '$wiersz[kat_id]'
  30. AND ogloszenia.ogl_kategoria = kategorie.kat_id
  31. AND ogl_aktywne = '1'");
  32. }
  33. // echo mysql_result($licznik_subkat, 0);
  34. $row = mysql_fetch_array($licznik);
  35. //echo $row[licznik];
  36.  
  37. $ciag = zamienLink($wiersz[kat_nazwa]);
  38. //kategorie główne
  39. if ( $wiersz[kat_rodzic] == '0' ) {
  40. echo "<li><a href='{$ciag}-k{$wiersz[kat_id]}' title='{$wiersz[kat_nazwa]}'>
  41. $kreska$wiersz[kat_nazwa] ($row[licznik])</a></li>";
  42. }
  43. // podkategorie ($nr_kat == $wiersz[kat_id] AND $wiersz[kat_rodzic]> '0')
  44. if ( $nr_kat == $wiersz[kat_rodzic] || $rodzic == $wiersz[kat_rodzic]) {
  45. $licznik = mysql_query (" SELECT count(ogl_id) AS licznik FROM ogloszenia
  46. WHERE ogl_kategoria = '$wiersz[kat_id]'
  47. AND ogl_aktywne = '1' ");
  48. $row = mysql_fetch_array($licznik);
  49. $_POST[otwarty] = '1';
  50. echo "<li><a style='padding-left:6px' href='{$ciag}-k{$wiersz[kat_id]}' title='{$wiersz[kat_nazwa]}'>
  51. - $wiersz[kat_nazwa] ($row[licznik])</a></li>";
  52. }
  53. }
  54.  
  55. echo "</ul>";
  56.  
  57. ?>
Rysh
Spróbuj takiego kodu:
  1. if(isset($_GET['kat_id'])) {
  2. $nr1 = htmlspecialchars(stripslashes(strip_tags(trim($_GET['kat_id']))), ENT_QUOTES);
  3. $title = nazwa_kat($nr1);
  4. } elseif(isset($_GET['ogl_id'])) {
  5. $nr = htmlspecialchars(stripslashes(strip_tags(trim($_GET['ogl_id']))), ENT_QUOTES);
  6. $title = tytul($nr);
  7. }
knefelio
Cytat(Rysh @ 5.07.2012, 21:23:18 ) *
Spróbuj takiego kodu:
  1. if(isset($_GET['kat_id'])) {
  2. $nr1 = htmlspecialchars(stripslashes(strip_tags(trim($_GET['kat_id']))), ENT_QUOTES);
  3. $title = nazwa_kat($nr1);
  4. } elseif(isset($_GET['ogl_id'])) {
  5. $nr = htmlspecialchars(stripslashes(strip_tags(trim($_GET['ogl_id']))), ENT_QUOTES);
  6. $title = tytul($nr);
  7. }


nadal wyświetla linki :/

Cytat(knefelio @ 5.07.2012, 21:46:44 ) *
nadal wyświetla linki :/


nikt nie ma pomysłu? bo siedzę nad tym też, ale jesetm za cienki z php by to rozwiązać :/
Rysh
A co pokazuje Ci var_dump? Przy jednym i drugim pytaniu.
krzywy36
w jakim sensie zwraca link? jaki link? przy okazji, dodaj or die(mysql_error()); do mysql_query, może jakiś błąd wywala wink.gif
knefelio
Cytat(Rysh @ 7.07.2012, 19:31:09 ) *
A co pokazuje Ci var_dump? Przy jednym i drugim pytaniu.


var_dump dla zmiennych $nr1, $nr zwraca dla nazwa_kat() NULL, NULL
a dla funkcji tytul() jest to kolejno NULL, string(2) "40" string(52) i title jest tutaj prawidłowo wczytany z bazy, nie wiem czemu dla dobrego zapytania z poziomu bazy funkcja nazwa_kat() daje takie wartości, może trzeba ją napisać inaczej.

Cytat(krzywy36 @ 7.07.2012, 19:36:24 ) *
w jakim sensie zwraca link? jaki link? przy okazji, dodaj or die(mysql_error()); do mysql_query, może jakiś błąd wywala wink.gif


dodałem ten warunek ale nie zwraca żadnych błędów, mówiąc link mam na myśli że pokazuje w wtedy zamiast wartości z bazy link do podstrony, ale gdy usunąć te 2 warunki to w obu przypadkach zwraca linki.

odświeże, może ktoś będzie miał jeszcze pomysł
krzywy36
wrzuć samo zapytanie w np. phpmyadmin i zobacz co zwraca. Nie mam w ogóle pojęcia skąd miało by Ci tu wziąć link, trzymasz w bazie linki? masz jakąś funkcję generującą linki? nic się nie bierze samo z siebie.

Edit: piszesz, że var_dump zwraca NULL, to w końcu pojawia się jakiś link, czy nic? skoro jest NULL to nie może być żadnego linka.
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.