Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Poruszanie się po tabeli mysql w php
Grunthor
post
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 17.06.2014

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


Witam serdecznie.

Od niedawna zacząłem przygodę z php i potrzebuję niewielkiej pomocy przy pisaniu skryptów.

Stworzyłem system logowania i dodawania danych do bazy danych mysql. Teraz chciałbym zmieniać te dane automatycznie na serwerze codziennie(dodawać jakieś wartości do poszczególnych rekordów tabeli). Dodam, że każdy wiersz tabeli to jest pojedynczy użytkownik który się wcześniej zarejstrował, a kolumny to są poszczególne dane użytkownika(id, email, haslo, tel, etc). Chciałbym aby skrypt pobierał sobie jakiś konkretny rekord użytkownika, następnie dodał do tego rekordu znaną mi wartość i nadpisał wcześniej wartość już tą po dodaniu. Następnie przeskoczył do kolejnego wiersza i powtórzył tą operacje aż do momentu gdy wiersze tabeli się skończą.

Jedyne rozwiązanie jakie przychodzi mi do głowy to pobranie całej tabeli z bazy danych i po każdej operacji dodawania, przeskakiwanie do kolejnych wierszy za pomocą pętli "for()" i na końcu wysłania całej tabeli do bazy danych.

Czy jest to prawidłowe rozwiązanie, czy może jest jakaś prostrza metoda na automatyczne uaktualnianie bazy danych nowymi wartościami??

Z góry dziękuję za pomoc i wyrozumiałość.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kartin
post
Post #2





Grupa: Zarejestrowani
Postów: 246
Pomógł: 79
Dołączył: 25.05.2010

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


Poszukaj sobie jakiś kurs podstaw SQL i poczytaj. Dobrze na tym wyjdziesz. Wszystko co chcesz zrobić można zrobić w bazie danych, a na siłę chcesz pobierać całą tablicę i przeszukiwać ją w PHP.
  1. SELECT ...
  2. FROM ...
  3. WHERE pole > 666
Znajdzie wszystkie wiersze w których pole ma wartość większą nic 666
Go to the top of the page
+Quote Post
Grunthor
post
Post #3





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 17.06.2014

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


Cytat(kartin @ 17.06.2014, 19:57:07 ) *
Poszukaj sobie jakiś kurs podstaw SQL i poczytaj. Dobrze na tym wyjdziesz. Wszystko co chcesz zrobić można zrobić w bazie danych, a na siłę chcesz pobierać całą tablicę i przeszukiwać ją w PHP.


Masz rację, to chyba będzie najlepsze rozwiązanie.
Przypisywanie do tablicy jest z C/C++ bo tam tylko tak wykonywałem tego typu rzeczy:P.

Dziękuje wszystkim za pomoc!

Wybaczcie, lecz nie chciałem zakładać nowego wątku.
  1. <?php
  2. include("config.php");
  3.  
  4. mysql_query("UPDATE Dane_Użytkownika SET Przebieg = Przebieg + Miesieczny_przebieg_auta/365");
  5. $wynik = mysql_query("SELECT Przebieg, email Nazwa Podzespołu, Przebieg do zniszczenia FROM Dane_Użytkownika as a
  6. INNER JOIN Główne_dane as b ON a.Przebieg>=b.Przebieg do zniszczenia"); //or die(mysql_error());
  7. //mysql_query("UPDATE Dane_Użytkownika SET Warning = 1 WHERE Przebieg > 80000");
  8. while($r = mysql_fetch_assoc($wynik))
  9. {}
  10. while($r = mysql_fetch_assoc($wynik)){
  11. $od = "From: grunek1@gmail.com \r\n";
  12. $od .= 'MIME-Version: 1.0'."\r\n";
  13. $od .= 'Content-type: text/html; charset=iso-8859-2'."\r\n";
  14. $adres = "grunek1@gmail.com";
  15. $tytul = "Alert o zbliżającej się wymianie";
  16. $wiadomosc = "Elementy wymagające uwagi:\n".$r['Nazwa Podzespołu']."\n";
  17. mail($adres, $tytul, $wiadomosc, $od);
  18. }
  19.  
  20.  
  21. ?>


Powyższy kod ma za zadanie:
1) Zaktualizować kolumnę "Przebieg"
2) Następnie wybrać te rekordy w których Przebieg jest wiekszy/równy niż Przebieg do zniszczenia
3) wrzucam te rekordy do zmiennej $r
4) jeżeli odpowiednie rekordy wylądują w tablicy asocjacyjnej to ma wysłać maila na podany adres o treści" ..."

Nie wiem czy jest to właściwa konstrukcja??

Zamysł jest taki, że posiadam dwie tabele: Jedna to Dane użytkownika, a druga to jakieś dane z elementami.
skrypt musi sprawdzić czy np. Pole Przebieg u pierwszego użytkownika nie jest wieksze niż pola z elementami w drugiej tabeli. Jeżeli jest wieksze to wtedy skrypt musi pobrać ten element. I tak musi pobrać wszystkie takie elementy, wypisać ich nazwy aby użytkownik wiedział gdzie szukać i na koniec wysłać maila z tymi elementami do tego użytkownika. Muszę tą czynność powtórzyć oczywiście tyle razy ilu jest użytkowników czyli tyle razy ile jest wierszy w tabeli 1.

Prosiłbym o pomoc, gdyż to co napisałem niestety nie działa, a już sięgnałem po troche wiedzy z SQLa.

Z góry serdecznie dziękuję
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: 28.12.2025 - 02:08