Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php][mysql] Wyciąganie danych do petli
bemol
post 22.12.2007, 10:45:05
Post #1





Grupa: Zarejestrowani
Postów: 286
Pomógł: 29
Dołączył: 5.04.2007
Skąd: Rymanów Zdrój/Rzeszów

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


  1. <?php
  2. 7. $query = "SELECT * FROM users";
  3. 8. while ($row = mysql_fetch_array($query))
  4. 9. {
  5. 10. $pass_db[] = $row['pass'];
  6. 11.$login_db[] = $row['login'];
  7. 12. }
  8. ?>


Kod
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/poligrafia1/ftp/helmut/plaza/admin/login.php on line 8


Co jest źle? Czy rzeczywiście chodzi tutaj o 8 linijke? :/
Proszę o pomoc

Ten post edytował bemol 22.12.2007, 10:45:19


--------------------
Tym ludziom zaufałem i dobrze na tym wyszedłem:
kresh
Darti
piotrekkr
Bez nich wiele bym nie zrobił. Dzięki im za to!
Go to the top of the page
+Quote Post
cornholio666
post 22.12.2007, 10:46:15
Post #2





Grupa: Zarejestrowani
Postów: 472
Pomógł: 8
Dołączył: 14.03.2004
Skąd: Rzeszów

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


brakuje ci mysql_query()


--------------------
I need TP for my bunghole!!!

Mój nowy przyjaciel - tytanowa płytka na stałe
------------------------------------------------------
AEGEE, kwiaciarnia rzeszów , notariusz rzeszów, zakład krawiecki rzeszów, paweł jakubowicz
Go to the top of the page
+Quote Post
Sadu2
post 22.12.2007, 10:49:48
Post #3





Grupa: Zarejestrowani
Postów: 229
Pomógł: 13
Dołączył: 31.05.2007

Ostrzeżenie: (10%)
X----


A tak będzie działać?

  1. <?php
  2. $query = mysql_query("SELECT * FROM users");
  3. while ($row = mysql_fetch_array($query))
  4. {
  5. $pass_db[] = $row['pass'];
  6. $login_db[] = $row['login'];
  7. }
  8. ?>
Go to the top of the page
+Quote Post
bemol
post 22.12.2007, 18:26:28
Post #4





Grupa: Zarejestrowani
Postów: 286
Pomógł: 29
Dołączył: 5.04.2007
Skąd: Rymanów Zdrój/Rzeszów

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


wielkie dzięki, wszystko już ok. no prawie...
mam pytanie, jak zrobić tak, by po skasowaniu rekordu z bazy danych, id tez się resetowalo?
moze przedstawie to obrazowo.
W bazie mam 5 rekordow

id "login" 'haslo'
1 "ja" 'zenek2'
2 "ty" 'zenek3'
3 "on" 'zenek7'
4 "ona" 'zenek1'
5 "ono" 'zenek0'

Przypuśćmy usuwam wszystkie rekordy. Dodaje nowy i będzie on wyglądał tak:

6 "my" 'zenek6'

A jak zrobić by wyglądał tak:

1 "my" 'zenek6'

?
Będe bardzo wdzięczny za podpowiedź.


--------------------
Tym ludziom zaufałem i dobrze na tym wyszedłem:
kresh
Darti
piotrekkr
Bez nich wiele bym nie zrobił. Dzięki im za to!
Go to the top of the page
+Quote Post
phpion
post 22.12.2007, 18:33:46
Post #5





Grupa: Moderatorzy
Postów: 6 070
Pomógł: 860
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Jeśli chcesz wyczyścić tabelę czyli usunąć wszystkie rekordy i wyzerować ew. auto_increment to zamiast:
  1. DELETE FROM tabela;

użyj:
  1. TRUNCATE TABLE tabela;

Działa szybciej niż DELETE bo nie usuwa rekordu po rekordzie tylko usuwa całą tabelę oraz odbudowuje jej strukturę w wyniku czego uzyskujesz nową, czystą tabelę.
Go to the top of the page
+Quote Post
bemol
post 22.12.2007, 18:38:25
Post #6





Grupa: Zarejestrowani
Postów: 286
Pomógł: 29
Dołączył: 5.04.2007
Skąd: Rymanów Zdrój/Rzeszów

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


to była tylko teoria, bo same rekordy usuwam z poziomu phpMyAdmin'a.
nie ma innego sposobu, by kolejne rekordy dodawało na najniższy możliwy id?
bo poki co dodaje sobie rekordy zeby sprawdzic czy działa i nie chce żeby pozniej gdy beda juz wyswietlane na stronce było: Numer newsa: 17 (np)

Ten post edytował bemol 22.12.2007, 18:39:47


--------------------
Tym ludziom zaufałem i dobrze na tym wyszedłem:
kresh
Darti
piotrekkr
Bez nich wiele bym nie zrobił. Dzięki im za to!
Go to the top of the page
+Quote Post
webdice
post 22.12.2007, 18:42:59
Post #7


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Cytat(bemol @ 22.12.2007, 18:38:25 ) *
to była tylko teoria, bo same rekordy usuwam z poziomu phpMyAdmin'a.
nie ma innego sposobu, by kolejne rekordy dodawało na najniższy możliwy id?
bo poki co dodaje sobie rekordy zeby sprawdzic czy działa i nie chce żeby pozniej gdy beda juz wyswietlane na stronce było: Numer newsa: 17 (np)


Przy polu AUTO_INCREMENT nie, chyba że ID będziesz podawał sam, a nie poprzez nadanie wartości NULL.

Ten post edytował webdicepl 22.12.2007, 18:43:26
Go to the top of the page
+Quote Post
bemol
post 22.12.2007, 18:49:18
Post #8





Grupa: Zarejestrowani
Postów: 286
Pomógł: 29
Dołączył: 5.04.2007
Skąd: Rymanów Zdrój/Rzeszów

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


ok, wyłączyłem auto_increment i rozwiązałem to tak:

  1. <?php
  2. $query = mysql_query ("SELECT id FROM news");
  3. $numery = mysql_num_rows($query);
  4. $numer = $numery +1;
  5. ?>


  1. <?php
  2. $news = "INSERT INTO news (id, data, autor, tresc) VALUES ('$numer' , now(), '$autor', '$tresc')";
  3. ?>


Dzieki za podpowiedz smile.gif


--------------------
Tym ludziom zaufałem i dobrze na tym wyszedłem:
kresh
Darti
piotrekkr
Bez nich wiele bym nie zrobił. Dzięki im za to!
Go to the top of the page
+Quote Post
webdice
post 22.12.2007, 19:06:28
Post #9


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




mysql_num_rows" title="Zobacz w manualu PHP" target="_manual to zło. Korzystaj z COUNT(*):

  1. <?php
  2. $query = mysql_query ("SELECT COUNT(*) as `count` FROM `news`");
  3.  
  4. $row = mysql_fetch_assoc ($query);
  5.  
  6. $numer = $row['count']+1;
  7. ?>
Go to the top of the page
+Quote Post
bemol
post 22.12.2007, 19:48:39
Post #10





Grupa: Zarejestrowani
Postów: 286
Pomógł: 29
Dołączył: 5.04.2007
Skąd: Rymanów Zdrój/Rzeszów

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


oki, dzięki, skorzystałem z tego co napisałeś smile.gif
A teraz kolejne pytanie. Wypisuje wszystkie newsy do tabeli (<table>) z tabeli MySQL (`news`).
I teraz chce zrobić tak, żeby wypisywało komunikat "Brak newsów do wyświetlenia." jeśli nie ma rekordów, czyli $row['id'] == 0.

  1. <?php
  2. $show = mysql_query("SELECT * FROM news ORDER BY id DESC");
  3. while ($row = mysql_fetch_array($show)) {
  4. echo '<TABLE><TR>';
  5. echo "<TD>Numer newsa:</TD><TD>".$row['id']."</TD>";
  6. echo '</TR>';
  7. echo '<TR>';
  8. echo "<TD>Data newsa:</TD><TD>".$row['data']."</TD>";
  9. echo '</TR>';  
  10. echo '<TR>';
  11. echo "<TD>Autor newsa:</TD><TD>".$row['autor']."</TD>";
  12. echo '</TR>';
  13. echo '<TR>';
  14. echo "<TD>Treść newsa:</TD><TD>".$row['tresc']."</TD>";
  15. echo '</TR>';
  16. echo '</TABLE>';
  17. if ($row['id'] == null) echo "Brak newsów do wyświetlenia.";
  18. }
  19. ?>


Próbowałem na różne sposoby i nie chce mi wyjść :/


--------------------
Tym ludziom zaufałem i dobrze na tym wyszedłem:
kresh
Darti
piotrekkr
Bez nich wiele bym nie zrobił. Dzięki im za to!
Go to the top of the page
+Quote Post
webdice
post 22.12.2007, 23:18:10
Post #11


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Skorzystaj z mojego zapytania, i zamiast

  1. <?php
  2. if ($row['id'] == 0) { ... }
  3. ?>



zrób tak:

  1. <?php
  2. if ($row['count'] == 0) { ... }
  3. ?>
Go to the top of the page
+Quote Post
dadexix
post 23.12.2007, 04:00:00
Post #12





Grupa: Zarejestrowani
Postów: 439
Pomógł: 21
Dołączył: 28.06.2007
Skąd: Bielsko-Biała

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


Kod
mysql_num_rows to zło
nie prawda.. czuje się urażony... a co jeśli wykonuje zapytanie chce sprawdzić ilość rekordów pobranych a potem operować przez np. mysql_fetch_array na wyniku? Hm? 2 zapytania? chłopaka nauczysz że to jest zło i potem będzie na dole strony "zapytań do SQL: 1923"


--------------------
"Na przykład zmiennej $jestem_najlepszy przypisujemy wartość logiczną TRUE"
Ja: użyj funkcji[...]
Grins: mów normalnie do mnie a nie po polsku
Ja: normalnie to znaczy jak?
Grins: No w PHP... inaczej mój parser ledwo kuma:)
Go to the top of the page
+Quote Post
bemol
post 23.12.2007, 15:20:05
Post #13





Grupa: Zarejestrowani
Postów: 286
Pomógł: 29
Dołączył: 5.04.2007
Skąd: Rymanów Zdrój/Rzeszów

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


Poprzedni problem rozwiązany, a co z takim plikiem:
  1. <?php
  2. error_reporting(E_ALL ^ NOTICE);
  3. include('connection.php');
  4. $laczenie = mysql_connect(SERWER, ADMIN, PASS) or die ('Błąd połączenia z bazą danych MySQL.');
  5. $laczenie2 = mysql_select_db(DB) or die ('Błąd podczas wybierania bazy danych.');
  6.  
  7. $ilosc_newsow = $_POST['ilosc_newsow'];
  8. $active = $_POST['active'];
  9. $type = $_POST['type'];
  10. $rozmiar = $_POST['rozmiar'];
  11. $min_rozmiar = $_POST['min_rozmiar'];
  12.  
  13. $query = "UPDATE config SET active='$active' type='$type' ilosc_newsow='$ilosc_newsow' rozmiar='$rozmiar' min_rozmiar='$min_rozmiar' WHERE id=1";
  14. $wynik = mysql_query($query);
  15. /*if ($wynik) {echo "Zmiany pomyślnie zachowane.";
  16. }
  17. else "Błąd podczas zmiany ustawień.";
  18. var_dump($query);*/
  19. ?>


Czy są tutaj jakieś błędy logiczne? W tabeli nie nadpisuje danych :/


--------------------
Tym ludziom zaufałem i dobrze na tym wyszedłem:
kresh
Darti
piotrekkr
Bez nich wiele bym nie zrobił. Dzięki im za to!
Go to the top of the page
+Quote Post
webdice
post 23.12.2007, 15:28:47
Post #14


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




  1. <?php
  2. active='$active', type='$type', ...
  3. ?>


Zapomniałeś o przecinkach.
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 Wersja Lo-Fi Aktualny czas: 28.04.2024 - 17:53