Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: odświeżenie strony po dodaniu rekordu 2
Forum PHP.pl > Forum > PHP
mozart2008
Witam,
Chciałem zrobić aby wyświetlało mi napis kiedy ktos doda rekord.
Zrobiłem tak i nie działa:


  1. $wyswietlaa = "select wiadomosc from chat_snowboard order by id desc limit 1";
  2. $nowi_was_zapytanieaa = mysql_query($wyswietlaa);
  3. ?>
  4. <script type="text/javascript">
  5. for (<?php $osobaas = mysql_fetch_row($nowi_was_zapytanieaa) ; ?>; ; <?php $zapis = mysql_fetch_row($nowi_was_zapytanieaa) ; ?>)
  6. {
  7. if (<?php $osobaas!=$zapis ;?>)
  8. break;
  9. document.write("przekierowanie");
  10. }
  11. </script>



Prosze mi powiedziec gdzie bład.Z góy dzięki.;(
marcint83
Zobacz co Ci zwracają zmienne $osoba i $zapis bo jeśli są różne (a mam wrażenie że tak jest ) to nigdy się nie wykona instrukcja document.write . Zresztą widzę ze masz w zapytaniu limit 1, pobierasz jeden wiersz a chcesz dostać dwa winksmiley.jpg (dwa razy wywolujesz mysql_fetch_row
mozart2008
Zrobiłem tak i nic nie działa...

  1. $wyswietlaab = mysql_query("SELECT DISTINCT `id` FROM `chat_snowboard`");
  2. $wyswietlaa = mysql_query("SELECT DISTINCT `id` FROM `chat_snowboard`");
  3. $osobaas = mysql_num_rows($wyswietlaa);
  4.  
  5.  
  6. for( $zapis = mysql_num_rows($wyswietlaab) ; $osobaas!=$zapis; $i=1 )
  7. if ($i==1) {
  8. echo "tekst" ;
  9. }
  10.  
frytek92
Pętla for działa troche inaczej smile.gif, jeżeli chcesz sprawdzić ile rekordów zostało dodanych to : mysql_affected_rows, ale mysle ze chodzi o dodawanie posta to zrób coś w tym stylu

Kod
if(isset($_POST['submit')){

// Sprawdzanie danych

// Dane sprawdzone wartość została dodana

}


Kolejna sprawa to popracuj nad nazwami straszny chaos wprowadzaja, ja osobiscie stosuje jezeli chce coś podliczyc to daje $i_ jezeli tablica to $o_ np :

Kod
<?php

$list = mysql_query("ZAPYTANIE");

$o_list = mysql_array($list);

$i_list = mysql_num_rows($list);


Polecam również jakas fajna ksiazke o PHP bo z internetu nauczysz sie tylko złych praktyk na poczatku.

Pozdrawiam
mozart2008
Nadal nie rozumiem jak np. wyswietlic napis kiedy ktos doda rekord do bazy...
Nobo jak wyswietlam rekordy na jakiejsc stronie... noto kiedy np. ktoś z innej przeglądarki rekord noto niewyświetla mi go ... żeby wyswietlało musze odświeżyć strone...


a niew iem jak zrobic sprawdzanie czy ktos w tej chwili dodał rekord który nei jest wyswietlony...


wiem że coś trzeba z pętlą nieskończoną...

Z góry dzięki.winksmiley.jpg
wiiir
mozna to zrobic tak:
  1. if(isset($_POST['submit'])){ //sprawdzenie czy zostal wyslany formularz
  2. $sql = 'INSERT INTO ....
  3. VALUES (...)';
  4. $result = @mysql_query($sql);
  5. $last_record = mysql_insert_id();
  6. // teraz robisz zaptanie
  7.  
  8. $wyswietlaab = @mysql_query("SELECT DISTINCT `id` FROM `chat_snowboard` where id=$last_record");
  9. $row = mysql_fetch_assoc($wyswietlaab)
  10.  
  11. echo "Ostatnio dodany rekord do bazy to id = ".$row[id];
  12. }

Mysle ze o to ci chodzi...
Jak bedzie dzialac to zmodyfikuj o sprawdzanie czy zapytania sa dobrze wykonane itd
marcint83
Musiałbyś to zrobić za pomocą AJAX'a - i co jakiś czas wywoływać funkcję korzystając z window.setTimeout(), pobrać sobie ostatnio dodane Id rekordu i sprawdzać np co 10 s czy pojawił się nowy rekord.

Opis do setTimeout masz tu: klikni
wiiir
Cytat(marcint83 @ 30.08.2010, 11:33:51 ) *
Musiałbyś to zrobić za pomocą AJAX'a - i co jakiś czas wywoływać funkcję korzystając z window.setTimeout(), pobrać sobie ostatnio dodane Id rekordu i sprawdzać np co 10 s czy pojawił się nowy rekord.

Opis do setTimeout masz tu: klikni



chryste panie.. przeciez nie chodzi o to zeby sprawdzac czy jest nowy rekord co 10 sek bo przeciez po co maja mi sie wyswietlac informacje ze ktos tam inny wstawil rekord.. bo tak to by dzialalo, ze przgladam sobie strone az tu nagle pojawia mi sie komunikat "Dodano nowy rekord"... heheheh beka co nie miara
Jesli ajax to zrob sobie funckje powrotu po instercie ktora wstawi html-a w jakiegos diva, czyli document.getElementById("odpowiedz").innerHTML = "Dodano nowy rekord";
marcint83
Cytat(wiiir @ 30.08.2010, 12:29:21 ) *
chryste panie.. przeciez nie chodzi o to zeby sprawdzac czy jest nowy rekord co 10 sek bo przeciez po co maja mi sie wyswietlac informacje ze ktos tam inny wstawil rekord.. bo tak to by dzialalo, ze przgladam sobie strone az tu nagle pojawia mi sie komunikat "Dodano nowy rekord"... heheheh beka co nie miara
Jesli ajax to zrob sobie funckje powrotu po instercie ktora wstawi html-a w jakiegos diva, czyli document.getElementById("odpowiedz").innerHTML = "Dodano nowy rekord";


wiiir no ja wiem że sprawdzanie co 10 s czy jest nowy rekord jest bez sensu ale z jego posta wywnioskowałem że o coś takiego może mu chodzić winksmiley.jpg
wiiir
Cytat(marcint83 @ 30.08.2010, 14:28:56 ) *
wiiir no ja wiem że sprawdzanie co 10 s czy jest nowy rekord jest bez sensu ale z jego posta wywnioskowałem że o coś takiego może mu chodzić winksmiley.jpg



No w sumie tez tak mozna bylo zalozyc smile.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.