Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL] Problem ze skryptem
shtoc
post
Post #1





Grupa: Zarejestrowani
Postów: 128
Pomógł: 0
Dołączył: 18.11.2008
Skąd: Polska

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


Witam mam takie pytanko napisałem skrypt który ma za zadanie przypisać message_id rekordom z taka zależnością że jak w bazie pole references jest puste to identiti = 0 a jak nie to ma wyciagnać wszystkie rekordy o takim samym message_id i przypisać im w message_id ta sama liczbe.

Niestety z pustymi mam ok ale z pełnym caly czas dostaje rozne liczby w takich samych rekordach. sprawdzałem przez echo $sql i mam tak ze znajduje przykładowo 3 takie same rekordy ale aktualizuje message_id tylko dla jednego ktory jest pierwszy 3 razy :/

Czy moze ktos powiedzieć gdzie jest błąd?

  1. <?php
  2. mysql_connect('localhost', 'admin', 'hasło') or die('Błąd połączenia: '.mysql_error());
  3. mysql_selectdb('messages') or die('Błąd wyboru bazy: '.mysql_error());
  4. mysql_query("SET NAMES utf8");
  5.  
  6. $sql="SELECT * FROM messages2";
  7. $dane=mysql_query($sql);
  8. $i=1;
  9. $a=0;
  10. while($row = mysql_fetch_array($dane))
  11. {
  12.  
  13. $references=mysql_escape_string($row['references']);
  14. $id=mysql_escape_string($row['id']);
  15.  
  16. if (empty($references))
  17. {
  18. $sqll="UPDATE messages2 SET message_id='$a' WHERE id='$id'";
  19. $danee= mysql_query($sqll);
  20.  
  21. }
  22. else
  23. {
  24. $sqlr="SELECT * FROM messages2 WHERE `references`='$references' && message_id='0'";
  25. $daner= mysql_query($sqlr);
  26.  
  27.  
  28.    while($roww = mysql_fetch_array($daner))
  29.    {
  30.    $idd=mysql_escape_string($row['id']);
  31.    $ref=mysql_escape_string($row['references']);
  32.    $sqlll="UPDATE messages2 SET message_id='$i' WHERE id='$idd'";
  33.    $daneee= mysql_query($sqlll);
  34.  
  35.    unset($idd,$ref);
  36.    }
  37. }
  38. $i++;
  39.  
  40. }
  41.  
  42. ?>


(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

Ten post edytował shtoc 27.04.2009, 16:34:02
Go to the top of the page
+Quote Post
Darti
post
Post #2





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

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


Wiersz 29 to raczej

  1. <?php
  2. while($row = mysql_fetch_array($daner))
  3. ?>


p.s. nazywaj sensownie te zmienne to Ci się nie będą mylić ...
lepiej poświęcić 2 sekundy na wymyslenie nazwy zmiennej niż później 2 dni na szukanie błędu

Ten post edytował Darti 28.04.2009, 11:18:20
Go to the top of the page
+Quote Post
slawny
post
Post #3





Grupa: Zarejestrowani
Postów: 214
Pomógł: 26
Dołączył: 7.11.2007
Skąd: Warszawa

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


Ten 29 zostaw bez zmian. Zmień to:
  1. <?php
  2. $idd=mysql_escape_string($row['id']);
  3.    $ref=mysql_escape_string($row['references']);
  4. ?>

na
  1. <?php
  2. $idd=mysql_escape_string($roww['id']);
  3.    $ref=mysql_escape_string($roww['references']);
  4. ?>
Go to the top of the page
+Quote Post
Darti
post
Post #4





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

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


Cytat(slawny @ 28.04.2009, 10:20:52 ) *
Ten 29 zostaw bez zmian.



racja, to pętla w pętli ...
Go to the top of the page
+Quote Post
shtoc
post
Post #5





Grupa: Zarejestrowani
Postów: 128
Pomógł: 0
Dołączył: 18.11.2008
Skąd: Polska

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


Faktycznie dzięki (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) wszystko przez literówkę.
Go to the top of the page
+Quote Post

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: 22.08.2025 - 23:46