Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zapytanie mysql
Forum PHP.pl > Forum > PHP
set4812
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 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
wookieb
Temat: Jak poprawnie zadac pytanie -> Wykonywanie zapytań do bazy
set4812
Zapomniałem
  1. BŁĄD:You have an error IN your SQL syntax; CHECK the manual that corresponds TO your MySQL server version FOR the RIGHT syntax TO USE near '' at line 1

Niech teraz fachowcy przetłumacza bo nie rozumiem
wookieb
chryste...
$GET_ co to w linii 65? Masz taką zmienną?
artur_dziocha
Raz stosujesz apostrofy raz cudzysłowy np:

$query='SELECT * FROM katalogi WHERE id='.$GET_['idk'].''; -> wywal cudzysłów z końca. jest coś takiego jak $GET_ questionmark.gif

$query= 'SELECT * FROM raporty WHERE idk='.$_GET['idk'].'';-> tutaj znów cudzysłów

EDIT: Jednak to są apostrofy:)
set4812
nie spałem od 24 godzin tongue.gif
nastepny tez nie rozumiem bardzo,
Cytat
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\raporty\reports.php on line 58
BŁĄD:Unknown column 'pass' in 'field list'


mój adres url gdy jest bład
Kod
http://localhost/raporty/index.php?id=reports&idk=5&pass=d41d8cd98f00b204e9800998ecf8427e


Działa na 2 cudzysłowiach, jak wywale tekst mi notepad przestanie kolorowac to sa 2 ''
artur_dziocha
ja się pomyliłem. Zapytanie jest OK, ale nie pobiera Ci danych w lini 56-57. Do mysql_fetch_assoc nie przekazuje żadnych danych. Sprawdź za pomocą mysql_num_rows lub var_dump($z);
thek
Normalnie wspominają mi się jak żywe serwisy pisane X lat temu przez "fahofcuff" 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 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.
set4812
Podminiłem zapytanie z wczesniejszego błedu i działa nie wiem jakim cudem dziekuje za pomoc

Thek porozbijałem zeby łatwiej mi było dojsc tongue.gif co do czego, miałem to w ciagu i tez mi działało tongue.gif
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.