Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Edytowanie wpisów w bazie danych
Forum PHP.pl > Forum > PHP
demolka666
Napisałam skrypt w PHP edytujący wpisy do bazy danych. Na moim lokalnym serwerze działa bez zastrzeżeń, natomiast szwankuje po uploadzie. Gdzie może być błąd?
  1. <center><?php
  2.  
  3. $_GET[d] = $d;
  4. include("funkcje/baza.php");
  5.  
  6. if(isset($_POST[wyslij])){
  7. $_POST[tytul] = $tytul;
  8. $_POST[tresc] = $tresc;
  9. $_POST[data] = $data;
  10.  
  11. mysql_query("UPDATE news SET tytul = '$tytul', tresc = '$tresc', data = '$data' WHERE ID = '$d' ") OR DIE(mysql_error());
  12. echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Wiadomość została zaktualizowana!<br>";
  13. }
  14.  
  15. $zapytanie = "SELECT * FROM news WHERE id= '$d'"; //pobieranie zawartosci rekordu
  16. $wynik = mysql_query($zapytanie) OR DIE(mysql_error());
  17. while($row = mysql_fetch_row($wynik)){
  18. $tytul = $row['1'];
  19. $tresc = $row['2'];
  20. }
  21.  
  22. ?>
  23. <form action="<?php $_SERVER['SCRIPT NAME']; ?>" method="post">
  24. <table>
  25. <tr><td>Tytuł</td><td><input name="tytul" value="<?php echo $tytul; ?>" size="54"></td></tr>
  26. <tr><td>Treść</td><td><textarea name="tresc" cols="40" rows="15"><?php echo $tresc; ?></textarea></td></tr>
  27. <tr><td>Data</td><td><input name="data" size="54" value="<?php $czas = date("Y-m-d"); echo $czas; ?>"></td></tr>
  28. </table>
  29. <input type="submit" name="wyslij" value="Aktualizuj"><br><br>
  30.  
  31. </form>
  32.  
  33. </center>
  34.  


Client API version:
mój: 3.23.49
serwera: 5.0.81
Pozatym brak różnic w konfiguracji mysqla

W czym jest problem?
Kshyhoo
  1. if(isset($_POST[wyslij])){
  2. $_POST[tytul] = $tytul;
  3. $_POST[tresc] = $tresc;
  4. $_POST[data] = $data;

A nie tak:
  1. if(isset($_POST[wyslij])){
  2. $tytul = $_POST[tytul];
  3. $tresc = $_POST[tresc];
  4. $data = $_POST[data];

questionmark.gif
demolka666
Zmieniłam to, ale dalej nie działa na serwerze... sciana.gif
ADeM
A nie czasem:
  1. $d = $_GET['d'];
  2. if(isset($_POST['wyslij'])){
  3. $tytul = $_POST['tytul'];
  4. $tresc = $_POST['tresc'];
  5. $data = $_POST['data'];
demolka666
Dalej nic, próbowałam pozmieniać różne małe detale jak apostrofy itp ale dalej nic. Na serwerku lokalnym śmiga, a w internecie nie chce. Jakieś pomysły?
Kshyhoo
Wylistuj sobie tablice globalne, włącz pełne raportowanie błędów w php i mysql...
piotr94
lub debuguj - np. wyświetlaj wartości poprzez echo co jakiś czas
poza tym jak objawia się to nie działanie??
demolka666
Niedziałanie objawia się na tym, że:
1. Na serwerze lokalnym w polach tekstowych wyświetla się aktualny wpis z bazy na podstawie nr ID. Na serwerze w internecie dostaję puste(nie wypełnione niczym) pola tekstowe.
2. Na serwerze lokalnym działa update bez problemu. Na serwerze w necie nawet po wpisaniu czegokolwiek do pola tekstowego i zatwierdzeniu wpis nie uaktualnia się.

Jak tylko wrócę do domu spróbuję wyechować zmienne i wpisy pobrane z bazy i napiszę jaki jest rezultat.
Kshyhoo
Odpal na serwerze taki skrypt:
  1. <?php
  2. /* Łączenie i wybranie bazy */
  3. $link = mysql_connect("localhost", "root", "pass") or die ("Nie można się połączyć<br />");
  4. print ("Połączenie nawiązane<br />");
  5. mysql_select_db ("nazwa_bazy") or die ("Nie można wybrać bazy danych<br />");
  6.  
  7. /* Wysyłanie zapytania SQL */
  8. $query = "SELECT * FROM tabela";
  9.  
  10. $result = mysql_query ($query) or die ("Zapytanie zakończone niepowodzeniem<br />");
  11.  
  12. /* Wyświetlenie wyników w HTML */
  13. print "<table>\n";
  14. while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
  15. print "\t<tr>\n";
  16. foreach ($line as $col_value) {
  17. print "\t\t<td>$col_value</td>\n";
  18. }
  19. print "\t</tr>\n";
  20. }
  21. print "</table>\n";
  22.  
  23. /* Zwalnianie pamięci */
  24.  
  25. /* Rozłączanie */
  26. mysql_close($link);
  27. ?>

demolka666
Skrypt działa zarówno na serwerze lokalnym jak i na serwerze hostingowym.

Ale, może powinnam była napisać to wcześniej, inne operacje bazodanowe też działają mi na hostingu - mogę dodawać i usuwać wpisy do bazy, i poprawnie je wyświetlać na stronie. Jedyne co nie działa kompletnie to ten update(i wyświetlanie wpisów z bazy na stronie updatowej w formularzu) .
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.