Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zapytanie mysql
set4812
post
Post #1





Grupa: Zarejestrowani
Postów: 150
Pomógł: 3
Dołączył: 13.04.2010

Ostrzeżenie: (0%)
-----


Mam zapytanie mysql którym chce pobrac id uzytkownika który jest włascicielem katalogu i porównac z id sesji czy własciwa osoba jest zalogowana
oto mój kod
  1. <?php
  2. function connect(){
  3. $link = mysql_connect('localhost', 'root', '');
  4. $result = mysql_select_db('forum');
  5. }
  6. function raporty(){
  7. $idk=$_GET['idk'];
  8.  
  9. $query= 'SELECT * FROM raporty WHERE idk='.$_GET['idk'].'';
  10. $z=mysql_query($query);
  11. while ($row=mysql_fetch_assoc($z))
  12. {
  13. echo '<div class="NEWST"><center>';
  14.  
  15. echo '<img src="'.$row['link'].'"/>';
  16. echo '</center></div>';
  17. }}
  18. function addraport(){
  19. <form action="index.php?id='.$_GET['id'].'&idk='.$_GET['idk'].'" method="post">Podaj link do raportu</font><input type="text" name="raport" size="15"><br/>
  20. <input type="submit" value="Wyślij" name="wyslij" ></form>';
  21. if(isset ($_POST['wyslij'])){
  22. $patterns = '#\/report/#';
  23. $replacements = '/report-img/';
  24. $_POST['raport'] = preg_replace($patterns, $replacements, $_POST['raport']);
  25. file_get_contents($_POST['raport']);
  26. $patterns = '#\/report-img/#';
  27. $replacements = '/img/';
  28. $_POST['raport'] = preg_replace($patterns, $replacements, $_POST['raport']);
  29. $_POST['raport']= $_POST['raport'].'.png';
  30. $query= "INSERT INTO raporty (id,idk,link) VALUES ('','".$_GET['idk']."','".$_POST['raport']."')";
  31. mysql_query($query);
  32. }}
  33. function haslo(){
  34. echo 'Chcesz aby raporty mogli obejrzec innie?? wpisz w polu hasło a inni beda mogli obejrzec te raporty po podaniu odpowiedniego linku';
  35. echo '<form action="index.php?id='.$_GET['id'].'&idk='.$_GET['idk'].'" method="post">Hasło</font><input type="text" name="haslo" size="15"><br/>
  36. <input type="submit" value="Wyślij" name="acs" ></form>';
  37. if (isset($_POST['acs'])){
  38. $_POST['acc']= md5($_POST['acc']);
  39. echo $_POST['acc'];
  40. $query= 'UPDATE katalogi SET haslo="'.$_POST['acc'].'" WHERE id='.$_GET['idk'].'';
  41. mysql_query($query);
  42. echo 'twoj link index.php?id=reports&idk='.$_GET['idk'].'&pass='.$_POST['acc'];
  43. }}
  44. if(!isset($_SESSION['id']))
  45. {
  46. // Sesja si꡺aczyna, wiec inicjujemy u࠹tkownika anonimowego
  47. $_SESSION['id'] = 0;
  48. echo 'Zaloguj siꧻ
  49. echo '<html><head><meta http-equiv="refresh" content="3;url=http://localhost/forum/loguj.php"/></head><body></body></html>';
  50. }
  51. if($_SESSION['id']>0 or isset($_GET['pass'])){
  52. connect();
  53. if (isset($_GET['pass'])){
  54. $query='SELECT pass FROM katalogi WHERE id='.$_GET['idk'].'';
  55. $z=mysql_query($query);
  56. $row=mysql_fetch_assoc($z);
  57. if (strcasecmp($_GET['pass'], $row['haslo']) == 0)
  58. raporty();}
  59. else{
  60. raporty();}
  61. }
  62. if ($_SESSION['id']>0){
  63. $query='SELECT * FROM katalogi WHERE id='.$GET_['idk'].'';
  64. $z=mysql_query($query);
  65. $row=mysql_fetch_assoc($z);
  66. echo $row['idu'];
  67. if($row['idu']==$_SESSION['id']){
  68. addraport();
  69. haslo();
  70. }}
  71. ?>

moze zagmotany kod (IMG:style_emoticons/default/tongue.gif) problem jest w 2 miejscach tam gdzie sprawdzam id uzytkownika z katalogiem oraz czy istnieje zmienna pass w tablicy get tez mi wyrzuca ten sam bład o to bład
Cytat
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\raporty\reports.php on line 67

Prosze o pomoc nie mam juz litosci szukania igły w całym
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Normalnie wspominają mi się jak żywe serwisy pisane X lat temu przez "fahofcuff" (IMG:style_emoticons/default/winksmiley.jpg)
  1. //funkcje start
  2. funkcja X() {
  3. //kod
  4. }
  5. Funkcja Y() {
  6. //kod
  7. X();
  8. }
  9. //funkcje end
  10. Y();
gdzie porozbijano całą stronę po prostu na bloczki, choć można było to zrobić "ciągiem" i na dodatek jeszcze w tychże funkcjach z powodu takiego podziału używano global dla zmiennych (IMG:style_emoticons/default/winksmiley.jpg) Potem jednej funkcji szukałeś po całym dokumencie bo nie wiedziało się gdzie była wywołana. A Ty masz tak z wszystkimi funkcjami raport, addraporty, haslo. Inna sprawa to popatrz na kolorowanie składni na forum. Krzaki zrąbały składnię, ale i tak nie wiem w liniach 54-63 co jest grane. Klamry są tak pozamykane, że sam nie wiem kiedy się wykonuje raport() jesli chodzi o spełnienie bądź nie określonych warunków.

Sam bug tyczy się byka w linii 65, gdzie masz $query. To zapytanie musi być niepoprawne bo mysql_query zwraca błąd (FALSE w wyniku niemal na 100%! ) i dlatego mysql_fetch_assoc nie potrafi zrobić tego co do niego należy. Bo jak ma wyciągać tablicę asocjacyjną skoro nie dostaje resource'a tylko FALSE do obrobki? Kompletnie olaleś sprawę sprawdzenia co Ci zapytania zwracają i się dziwisz że masz byki? Nie masz nawet tak podstawowego "ujęcia" jak
  1. $zapytanie = 'jakiś sql';
  2. $resource = mysql_query( $sql );
  3. if( $resource ) {
  4. if( mysql_num_rows( $resource ) > 0 ) {
  5. //dopiero tutaj robię co chce z kodem(!)
  6. } else {
  7. echo 'Ja pierdzielę, zapytanie nie ma nawet jednego rekordu pasującego!';
  8. }
  9. } else {
  10. echo 'Ja pierdzielę, błąd! '.mysql_error();
  11. }
To jest minimum jakie powinieneś mieć by cokolwiek o debugu mówić. A błąd jaki dostajesz jest związany z najprawdopodobniej skopaną składnią zapytania na tyle, że parser błędów nawet dobrze nie wie gdzie byk i wskazuje na pusty ciąg w zapytaniu.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 9.10.2025 - 06:39