Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php/MySQL] wyciąganie danych i bunczuczny błąd
dr_NO
post
Post #1





Grupa: Zarejestrowani
Postów: 197
Pomógł: 15
Dołączył: 10.09.2006
Skąd: Siemianowice Śląskie / Katowice

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


Hmm mam problem za każdym razem gdy chcę wyciągnąć dane z bazy dostaję błąd:
Cytat
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in c:[...]\funkcje\stronicowanie.php on line 57

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:[...]\moduly\news.php on line 5

wyciąganie danych z bazy w pliku stronicowanie.php wygląda tak:
  1. <?php
  2. $zap = mysql_query("SELECT count(*) FROM ".$_GET['modul']."");
  3.  $total = mysql_result($zap, 0);
  4.  $zap = mysql_query("SELECT * FROM `".$_GET['modul']."` ORDER BY `id` DESC LIMIT $start, $display");
  5. ?>

Środkowa linijka to niby ta "felerna" 57.

Natomiast plik news.php:
  1. <?php
  2. while($rows=mysql_fetch_array($result)){ 
  3. [...]
  4. ?>

Za kazdym razem wyala ten sam blad ;/
Probowalem juz uzywac bez zmiennych ... dalej nic ...

W innym "module" działa bez zarzutu ;/


--------------------
woop woop.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 12)
matlas
post
Post #2





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 26.12.2006
Skąd: Wrocław

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


daj echo $zap i pokaz zapytanie jakie wychodzi


--------------------
Zapraszam na bloga: http://matlas.obsysa.net/
Go to the top of the page
+Quote Post
dr_NO
post
Post #3





Grupa: Zarejestrowani
Postów: 197
Pomógł: 15
Dołączył: 10.09.2006
Skąd: Siemianowice Śląskie / Katowice

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


już doszłem co był za błąd ... z mojej winy, literówka w zmiennej get przekazywana do strony, dla tego nie mogło wykonać zapytania ... anyway thx smile.gif

Na początek sory za post pod postem, ale nowy problem ... podbijam temat mam taki kod:
  1. <!-- WYSWIETLANIE ARTYKUŁU O PODANYM ID ARTYKULOW -->
  2.  
  3. <? if ($_GET['modul'] == 'artykuly' && $_GET['nr'] == $ida){
  4. $numer = $_GET['nr'];
  5. $zap = mysql_query("SELECT * FROM `artykul` WHERE `id` = $numer ");
  6. while($rows=mysql_fetch_array($zap)){ 
  7.  
  8. ?>
  9. <? echo $numer; ?>
  10. <? echo $rows['tytul']; ?>
  11. <BR>
  12.  
  13. <? }} ?>
  14.  
  15.  
  16. <!-- WYSWIETLANIE LISTY ARTYKULOW -->
  17.  
  18. <? if ($_GET['modul'] == 'artykuly' && $_GET['kategoria'] == $kategoria){
  19. $zap = mysql_query("SELECT * FROM `artykul` WHERE `kategoria`='$kategoria' ORDER BY `tytul` ASC");
  20. while($rows=mysql_fetch_array($zap)){ 
  21. $ida = $rows['id']; 
  22. $title = $rows['tytul']; 
  23.  
  24. ?>
  25. <a href="index.php?modul=artykuly&nr=<? echo $rows['id']; ?>"><? echo $rows['tytul']; ?></a>
  26. <BR>
  27.  
  28. <? }} ?>
  29.  
  30. <!-- WYSWIETLANIE KATEGORII -->
  31.  
  32. <? if ($_GET['modul'] == 'artykuly' && $_GET['co'] == spis){
  33. $zap = mysql_query("SELECT * FROM `kategorie` ORDER BY `nazwa` ASC");
  34. while($rows=mysql_fetch_array($zap)){ 
  35. $kategoria = $rows['nazwa']; 
  36.  
  37.  
  38. ?>
  39.  
  40. <table>
  41. <tr>
  42. <td>
  43. <a href="index.php?modul=artykuly&kategoria=<? echo $rows['nazwa']; ?>"><? echo $rows['nazwa']; ?></a>
  44. </td><td>ile</td>
  45. </tr>
  46. <tr>
  47. <td colspan="2"><? echo $rows['opis']; ?></td>
  48. </tr>
  49. </table><br />
  50.  
  51. <? }} ?>

i wyświetlanie listy kategorii działa, wyświetlanie listy artykułów działa, ale za to nie moge dojśc dla czego nie mogę wyświetlić artykułu o konkretnym ID, skoro poprawnie ID się przekazuje poprzez &_GET ....

//EDYTKA
No i znów sam doszedłem w czym tkwił bład tongue.gif trochę to trwało, i wymagało "posiedzenia nadzwyczajnego" hrrrhrrr ale się udało smile.gif

BUMP, podobny problem, z wyciąganiem danych z bazy, więc nie tworze nowego tematu smile.gif

mam taki kodzik:
  1. <?php
  2. $zap2 = mysql_query("SELECT * FROM `komentarze` WHERE `newsid`=$nr");
  3. while($row=mysql_fetch_array($zap2)){
  4.  
  5. $tresc2 = bbcode($row['tresc']); 
  6. $tytul2 = $row['tytul'];
  7. $autor2 = $row['autor'];
  8. $data2 = $row['data'];
  9. $newsid = $row['newsid'];
  10.  
  11. $zap33 = mysql_query("SELECT * FROM `uzytkownicy`");
  12. $rows33=mysql_fetch_array($zap33);
  13. $userek = $rows33['login'];
  14.  
  15.  
  16.  
  17. if ($userek == $autor2) 
  18. { 
  19. $test = "<a href="index.php?modul=uzytkownicy&akcja=zobacz&kto=$autor2">$autor2</a>"; 
  20. } else { 
  21. $test = $autor2;
  22. }
  23. ?>

I chodzi o to że, "likuje" tylko pierwszy rezultat z bazy, czyli pierwszy rekord z tablicy ($rows33['login']). Jak wrzucam do while $userek = ....; to w ogóle nie "linkuje" gdyż wszystkie kolejne wyrazy się "sklejają", jak mogę zrobić żeby się nie "sklejały" albo inaczej, co mam zrobić żeby powyższy sposób działał jak należy, czyli jeżeli znajidze usera, to wyrzuca link do jego profilu, jak nie znajdzie to wyrzuca sama nazwę usera ? już próbowałem chyba na milion sposobów, jednakże bez powodzenia ;/

Ten post edytował dr_NO 29.12.2006, 19:29:27


--------------------
woop woop.
Go to the top of the page
+Quote Post
fx69
post
Post #4





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 8.10.2006
Skąd: świat astralny

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


  1. <?php
  2. $test = ''; 
  3. while($rows33=mysql_fetch_array($zap33)) {
  4. if($row33['login'] == $autor2)
  5.  $test .= '<a href="index.php?modul=uzytkownicy&akcja=zobacz&kto='. $autor2 .'">'. $autor2 .'</a><br>';
  6. else $test .= $autor2 .'<br>';
  7. }
  8. ?>


Ten post edytował fx69 20.01.2007, 11:26:55
Go to the top of the page
+Quote Post
dr_NO
post
Post #5





Grupa: Zarejestrowani
Postów: 197
Pomógł: 15
Dołączył: 10.09.2006
Skąd: Siemianowice Śląskie / Katowice

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


coś nie teges ... działa jak mój przypadek.


--------------------
woop woop.
Go to the top of the page
+Quote Post
Cienki1980
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

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


Te linijki :
  1. <?php
  2. $zap33 = mysql_query("SELECT * FROM `uzytkownicy`");
  3. $rows33=mysql_fetch_array($zap33);
  4. $userek = $rows33['login'];
  5. ?>

przesun poza pierwsze zapytanie, czyli najpierw wstaw te linjki a dopiero potem zapytanie:
  1. SELECT * FROM artykuly....


--------------------
404
Go to the top of the page
+Quote Post
dr_NO
post
Post #7





Grupa: Zarejestrowani
Postów: 197
Pomógł: 15
Dołączył: 10.09.2006
Skąd: Siemianowice Śląskie / Katowice

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


i nic ... teraz w ogóle nie linku je :F ... nie wiem dla czego ;/ wieczorem przysiądem na d problemem i przepiszę jeszcze raz cały kod tongue.gif


--------------------
woop woop.
Go to the top of the page
+Quote Post
Cienki1980
post
Post #8





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

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


tak patrze raz jeszcze i widze, ze wyciagasz wszystkich uzytkownikow a zawsze zapisujesz do zmiennej $userek pierwszy wyciagniety rekord
Wiec zawsze będzie tylko zlinkowany pierwszy


--------------------
404
Go to the top of the page
+Quote Post
dr_NO
post
Post #9





Grupa: Zarejestrowani
Postów: 197
Pomógł: 15
Dołączył: 10.09.2006
Skąd: Siemianowice Śląskie / Katowice

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


w mojej pierwszej wiadmości:
Cytat
I chodzi o to że, "likuje" tylko pierwszy rezultat z bazy, czyli pierwszy rekord z tablicy ($rows33['login']). Jak wrzucam do while $userek = ....; to w ogóle nie "linkuje" gdyż wszystkie kolejne wyrazy się "sklejają", jak mogę zrobić żeby się nie "sklejały"

... czytamy ze zrozumieniem tongue.gif

sklejają czyli np: JanekKarolBasia i jak porównuje $userek == $autor2 to porównuje cały ciąg ... i niewiem jak to zrobić żeby poszczególne elemety z tablicy.

Ten post edytował dr_NO 20.01.2007, 12:01:52


--------------------
woop woop.
Go to the top of the page
+Quote Post
Cienki1980
post
Post #10





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

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


No to w takim bądź razie nie mam zielonego pojęcia co się dzieje nie tak.

Nie wiem jaki jest wynik a jaki wynik być powinien.

Czyżbyś chciał otrzymać listę autorów danego tekstu komentarza z tym, że jeżeli dany użytkownik który to przegląda jest autorem jednego z komentarza to ma sie pojawic tam link prowadzacy gdzies tam ?

Ten post edytował Cienki1980 20.01.2007, 12:06:51


--------------------
404
Go to the top of the page
+Quote Post
dr_NO
post
Post #11





Grupa: Zarejestrowani
Postów: 197
Pomógł: 15
Dołączył: 10.09.2006
Skąd: Siemianowice Śląskie / Katowice

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


ech już tłumacze ...
User wpisuje komentarz do artykulu powiedzmy, jezeli autor komentarza istnieje istnieje jako zarejestrowany uzytkownik, to powinien sie wyswietlic link do jego profilu, jezeli zas nie istnieje to tylko nazwa ... sprawa wyglada tak, ze przy pisaniu komentarza jako nie zalogowany, to do nicka jest przypisywany prefix, i NIEMA SILY, takiego uzytkownika (z tym frefiksem, w moim przypadku '~') w bazie po prostu byc nie moze.

A jak wsadze zapytanie odnosnie usera (wypisane powyzej) do petli, to potem wyswietla sie przykladowo takie cos (cala tablica uzytkownicy): Autor: JanekBasiaZygmuntGosiaZdzislawDzadekMamaTata, myslalem nad explode, ale niezbyt mi wyszlo ...


--------------------
woop woop.
Go to the top of the page
+Quote Post
maryaan
post
Post #12





Grupa: Zarejestrowani
Postów: 380
Pomógł: 2
Dołączył: 5.01.2007

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


jesli wszystkim niezalogowanym dodajesz ~ to linkuj wszystkie profile bez ~ na poczatku :roll2:

wyciaganie wszystkich, wstawianie ich do tablicy i przegladanie calej tablicy to jak dla mnie pomysl nietrafiony, bo wystarczy zrobic zapytanie
  1. SELECT ... WHERE uzytkownik = $autorKomentarza
jesli cos zostanie zwrocone to mozna linkowac profil autora a jesli nie to byl gosc.


--------------------
Wybierasz się do Zakopanego? Odwiedź Willę Pod Górami. Następnym razem na pewno do niej wrócisz :)
Go to the top of the page
+Quote Post
Cienki1980
post
Post #13





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

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


A spróbuj taka skrócona wersja. W razie czego sobie ją rozwiniesz.

  1. <?php
  2. $zap33=mysql_query("select * from uzytkownicy");
  3. while($row33=mysql_fetch_array($zap33)
  4. {
  5.  $userek[]=$row33['login'];
  6. }
  7.  
  8.  
  9. $zap2=mysql_query("select * from komentarze where newsid='".$nr."'");
  10. while($row=mysql_fetch_array($zap2)
  11. {
  12. if(in_array($row['autor'],$userek))
  13.  $test. = "<a href="index.php?modul=uzytkownicy&akcja=zobacz&kto=".$row['autor']."">".$row['autor']."</a>&nbsp;<br>";
  14. else
  15.  $test.="".$row['autor']."<br>";
  16.  
  17. }
  18. ?>


@maryaan: W przypadku gdy autorów komentarza będzie dużo ( bardzo dużo ) to będziesz robił dużo ( albo bardzo dużo ) zapytań do bazy. Tak masz jedno zapytanie i sprawdzanie czy użytkownik jest zarejestrowany w jednej lini.


--------------------
404
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 20.08.2025 - 20:22