Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MYSQL]/[PHP], Błąd Select Max
InzaghiX
post
Post #1





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 20.01.2008

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


Witam, mam taki problem odnośnie wyświetlenia wartości maksymalnej z kolumny gdy wyświetlam kod

  1. <?php
  2. $sql2 = "SELECT (id_film) FROM filmy";
  3. $result2 = mysql_query($sql2) or die( mysql_error() );
  4. while ($row = mysql_fetch_array($result2) )
  5.  echo "$row[id_film]<br/>";
  6.  mysql_free_result($result2);
  7. ?>


A jak chce zrobić aby wyświetliło maksymalna wartość kolumny i powiększyło ją o 1 w góre to nic nie wyświetla

  1. <?php
  2. $sql2 = "SELECT MAX(id_film)+1 FROM filmy";
  3. $result2 = mysql_query($sql2) or die( mysql_error() );
  4. while ($row = mysql_fetch_array($result2) )
  5.  echo "$row[id_film]<br/>";
  6.  mysql_free_result($result2);
  7. ?>
Go to the top of the page
+Quote Post
-Wieviór-
post
Post #2





Goście







Chcesz by tylko pokazało większą wartość o jeden, czy dopisało w tabeli jeden?

  1. <?php
  2. $sql = "SELECT MAX(id_film) FROM filmy";
  3. $result = mysql_query($sql) or die(mysql_error());
  4. $row = mysql_fetch_array($result);
  5.  
  6. $numer = $row[id_film]+1;
  7. echo $numer.'<br/>';
  8.  
  9. $sql2 = "UPDATE filmy SET id_film=id_film+1 WHERE id='".$row[id_film]."'";
  10. mysql_query($sql2) or die(mysql_error());
  11. ?>


Wyczytujesz maksymalny id, pokazujesz go powiększonego o jeden, potem dodajesz do tego maksymalnego id w bazie jeden. Ja bym natomiast zmienił nazwę pola, id_film niech tylko będzie kluczem, a to co powiększasz niech będzie coś na zasadzie "pozycja_film", bo domyślam się, że o coś takiego chodzi.

Ten post edytował Wieviór 14.02.2008, 00:28:25
Go to the top of the page
+Quote Post
nowotny
post
Post #3





Grupa: Zarejestrowani
Postów: 875
Pomógł: 122
Dołączył: 2.02.2008

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


Bez sensu... skoro wybierasz element o wartości maksymalnej to już większej nie ma... wybieranie MAX()+1 nic nie zwróci bo takiej wartości nie ma...
Go to the top of the page
+Quote Post
Danone
post
Post #4





Grupa: Zarejestrowani
Postów: 169
Pomógł: 16
Dołączył: 18.10.2006
Skąd: Olsztyn/Wrocław

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


Możesz zrobić sobie tak

  1. <?php
  2. $sql2 = "SELECT MAX(id_film) FROM filmy";
  3. $result2 = mysql_query($sql2) or die( mysql_error() );
  4. $wynik = $row[id_film] + 1;
  5. while ($row = mysql_fetch_array($result2) )
  6.  echo $wynik;
  7.  mysql_free_result($result2);
  8. ?>
Go to the top of the page
+Quote Post
Danone
post
Post #5





Grupa: Zarejestrowani
Postów: 169
Pomógł: 16
Dołączył: 18.10.2006
Skąd: Olsztyn/Wrocław

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


Chciałbym wiedzieć, dlaczego zakładasz dwa takie same tematy? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) dziwna sprawa (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Temat: MYSQL PHP
Go to the top of the page
+Quote Post
--InzaghiX--
post
Post #6





Goście







Hmmm... nie pomaga ten kodzik który napisałeś, wypisuje tylko wartość 1 czyli jakbym wstawił tam 5 to wypisze wartość 5 a jak usune wogole dodanie to nic nie wyświetla ...jakiś inny pomysł?
Go to the top of the page
+Quote Post
InzaghiX
post
Post #7





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 20.01.2008

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


Zrobiłem teraz coś takiego

  1. <?php
  2. $liczba=1;
  3.  
  4.  $sql = "SELECT (id_film) FROM filmy";
  5.  $result = mysql_query($sql) or die(mysql_error());
  6.  $row = mysql_fetch_array($result);
  7.  
  8.  $numer = $row[id_film]+$liczba;
  9.  echo $numer.'<br/>';
  10. ?>


Lecz dodaje 1 ale nie do maksymalnej wartości kolumny lecz pierwszej wartośći , a jak dopisze SELECT MAX to wyświetla znów 1...
Go to the top of the page
+Quote Post
-Wieviór-
post
Post #8





Goście







Zrób tak:
  1. <?php
  2. $sql = "SELECT * FROM filmy ORDER BY id_film DESC LIMIT 1";
  3. $result = mysql_query($sql) or die(mysql_error());
  4. $row = mysql_fetch_array($result);
  5.  
  6. $numer = $row[id_film]+1;
  7. echo $numer.'<br/>';
  8.  
  9. $sql2 = "UPDATE filmy SET id_film=id_film+1 WHERE id='".$row[id_film]."'";
  10. mysql_query($sql2) or die(mysql_error());
  11. ?>
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 - 13:28