Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php/mysql] Problem z updatem danych
Forum PHP.pl > Forum > Przedszkole
cameleeck
Witam. Jest to mój pierwszy post wiec chciałbym się przywitać.

Mam problem z update'm informacji w bazie danych. Mam taki fragment odpowiadający za wrzucanie do bazy danych odpowiednich informacji.
Połącznie z bazą danych
  1. <?php
  2. $lacz = new mysqli('localhost', 'root', 'kamilek', 'home')
  3. or die('Nie można połączyć z bazą danych' . mysqli_error());
  4. ?>



Deklaracja zmiennych:
  1. <?php
  2. require_once 'lacz.php';
  3. $action = $_POST['action'];
  4. $tytul = $_POST['tytul'];
  5. $tresc = $_POST['tresc'];
  6. $data = date("Y-m-d H:i:s");
  7. $id = $_POST['id'];
  8. ?>


Sam skrypt wstawiania:
  1. <?php
  2. case 'Zapisz':
  3. $wynik = $lacz->query("update home_articles 
  4. set title = '$tytul' , tresc = '$tresc' 
  5. where artykul_id = '$id' ")
  6. or die('Nie można zmodyfikować artykułu ' . mysqli_error($lacz));
  7. header("Location: artykul.php?PHPSESID=" .session_id() ."");
  8.  
  9. break;
  10. ?>


Wszystko działa jak należy skrypt nie wyświetla błędów, przechodzi na stronę artykul.php, ale w bazie danych nie ma śladu działalności skryptu.
Sprawdziłem możliwość nie przesłania wartości zmiennych ale wszystko jest na miejscu. Same polecienie SQL-owe działa gdzyż testowałem je w PHPmyAdminie i wszystko w bazie danych się zmienia tak jak powinno no ale już podczas zmiany ze strony nie działa.
Odrazu zastrzegam że połączenie z bazą jest gdyż w innej części skryptu jest polecenie insert do tej samej bazy danych i z tym samym połączeniem i tam wszystko działa.
krzyszbi
witam
ja mam tak i jest ok - dane są updetowane
  1. <?php
  2. $wynik = $lacz->query("update test 
  3. set title = '$tytul' , tresc = '$tresc' 
  4. where id = $id ")
  5. ?>

możliwe że przez 'nie chciało ci poprawaić danych
struktura mojej testowej tabeli
  1. CREATE TABLE `test` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `title` varchar(100) collate latin1_general_ci NOT NULL,
  4. `tresc` text collate latin1_general_ci NOT NULL,
  5. `data` datetime NOT NULL,
  6. PRIMARY KEY (`id`)
  7. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=1 ;
cameleeck
Napewno ci wgrywa questionmark.gif Twój kod różni się od mojego jedynie inną klauzulą where i nie chodzi mi bynajmniej o nazwe kolumny ale u ciebie $id jest bez ' '. U mnie jak wpisze takie coś niestety wywala bład składni polecienia, wiec raczej zgubiłes ' ' wpisując go do ramki
nospor
najwyraźniej jednak ten warunek where artykul_id = '$id' nie jest spelniony. Wyswietl sobie to $id: echo $id, przed wykonaniem zapytania i sprawdź czy oby napewno ono jest poprawne
cameleeck
Problem rozwiążany smile.gif Wielkie dzięki. Wystarczyło zmienić jedna literkę w formularzu wysyłkowym:) Poprostu zmienna $id nie była przekazywana do pliku który przetwarzał.
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.