Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php/MySQL] wyciąganie danych i bunczuczny błąd
Forum PHP.pl > Forum > Przedszkole
dr_NO
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 ;/
matlas
daj echo $zap i pokaz zapytanie jakie wychodzi
dr_NO
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 ;/
fx69
  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. ?>
dr_NO
coś nie teges ... działa jak mój przypadek.
Cienki1980
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....
dr_NO
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
Cienki1980
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
dr_NO
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.
Cienki1980
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 ?
dr_NO
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 ...
maryaan
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.
Cienki1980
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.
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.