Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z zapytaniem, Problem z zapytaniem
qwake
post
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 31.01.2010

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


Witam,
mam problem z zapytaniem - nie wiem ja je sprecyzować!
mam tabele w mysql i próbuje zrobić formularz, w którym dane zastępują dane oto przykład
moja tabela czytelnicy:
Nazwisko|Imię|Ulica|Miasto

formularz na stronie:
nazwisko-...|nowe nazwisko-...
imie-...|nowe imie-...
Ulica-...|nowa ulica-...
miasto-|nowe miasto-...

chcę aby po wpisaniu nazwiska,imienia,ulicy,miasta zastąpić dane w bazie na nowe nazwisko itp
starałem się zrobić zapytanie -
  1. $zapytanie = "update czytelnicy set nazwisko = ('".$nnazwisko."'), imie = ('".$nimie."'), ulica = ('".$nulica."'), miasto = ('".$nmiasto."') where nazwisko = ('".$nazwisko."'), imie = ('".$imie."'), ulica = ('".$ulica."'), miasto = ('".$miasto."')";

ale nie daje rady tego wykonac
prosze o pomoc, wrzucam także pełny kod

Kod
<html>
   <head>
     <title>Biblioteka Wiejska</title>
   </head>
   <body>
   <h1>Biblioteka Wiejska</h1>
   <h2>Menu</h2>
   <h3>Edycja czytelnika</h3>
  
  
   <?php
     // utworzenie krótkich anzw zmiennych
     $nazwisko=$_POST['nazwisko'];
     $imie=$_POST['imie'];
     $ulica=$_POST['ulica'];
     $miasto=$_POST['miasto'];
     $nnazwisko=$_POST['nnazwisko'];
     $nimie=$_POST['nimie'];
     $nulica=$_POST['nulica'];
     $nmiasto=$_POST['nmiasto'];
  
     if (!$nazwisko || !$imie || !$ulica || !$miasto|| !$nnazwisko || !$nimie || !$nulica || !$nmiasto)
     {
        echo 'Nie podano wszystkich potrzebnych danych.
   '
             .'Wróć do poprzedniej strony i spróbuj ponownie.';
            
        exit;
     }
  
     if (!get_magic_quotes_gpc())
     {  
       $nazwisko = addslashes($nazwisko);
       $imie = addslashes($imie);
       $ulica = addslashes($ulica);
       $miasto = addslashes($miasto);
       $nnazwisko = addslashes($nnazwisko);
       $nimie = addslashes($nimie);
       $nulica = addslashes($nulica);
       $nmiasto = addslashes($nmiasto);
     }
    
  
     @ $db = new mysqli('localhost', 'root', 'vertrigo', 'biblioteka');
  
     if (mysqli_connect_errno())
     {
        echo 'Bł±d: : Poł±czenie z baz± danych nie powiodło się. Spróbuj jeszcze raz póĽniej.';
        exit;
        
     }
  
    $zapytanie = "update czytelnicy set nazwisko = ('".$nnazwisko."'), imie = ('".$nimie."'), ulica = ('".$nulica."'), miasto = ('".$nmiasto."') where nazwisko = ('".$nazwisko."'), imie = ('".$imie."'), ulica = ('".$ulica."'), miasto = ('".$miasto."')";
  
    
     $wynik = $db->query($zapytanie);
     if ($wynik)
         echo  $db->affected_rows.' Zmieniono dane czytelnika.';
        
   ?>
  
         <a href="http://localhost/nazwakonta/index.html">Powroc do Menu</a>
  
  
  
   </form>
  
   </body>
   </html>


Może ktoś mi pomoże użyć zapytania w inny sposób np insert a później delete.
proszę o szybką odp
Go to the top of the page
+Quote Post
l3l0
post
Post #2





Grupa: Zarejestrowani
Postów: 94
Pomógł: 16
Dołączył: 24.07.2009
Skąd: Gdańsk

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


  1. <html>
  2. <head>
  3. <title>Biblioteka Wiejska</title>
  4. </head>
  5. <body>
  6. <h1>Biblioteka Wiejska</h1>
  7. <h2>Menu</h2>
  8. <h3>Edycja czytelnika</h3>
  9.  
  10. <?php
  11. // utworzenie krótkich anzw zmiennych
  12. $nazwisko = $_POST['nazwisko'];
  13. $imie = $_POST['imie'];
  14. $ulica = $_POST['ulica'];
  15. $miasto = $_POST['miasto'];
  16. $nnazwisko = $_POST['nnazwisko'];
  17. $nimie = $_POST['nimie'];
  18. $nulica = $_POST['nulica'];
  19. $nmiasto = $_POST['nmiasto'];
  20.  
  21. if (!$nazwisko || !$imie || !$ulica || !$miasto|| !$nnazwisko || !$nimie || !$nulica || !$nmiasto)
  22. {
  23. echo 'Nie podano wszystkich potrzebnych danych.
  24. '
  25. .'Wróć do poprzedniej strony i spróbuj ponownie.';
  26.  
  27. }
  28.  
  29. {
  30. $nazwisko = addslashes($nazwisko);
  31. $imie = addslashes($imie);
  32. $ulica = addslashes($ulica);
  33. $miasto = addslashes($miasto);
  34. $nnazwisko = addslashes($nnazwisko);
  35. $nimie = addslashes($nimie);
  36. $nulica = addslashes($nulica);
  37. $nmiasto = addslashes($nmiasto);
  38. }
  39.  
  40.  
  41. @ $db = new mysqli('localhost', 'root', 'vertrigo', 'biblioteka');
  42.  
  43. if (mysqli_connect_errno())
  44. {
  45. echo 'Błąd: : Połączenie z bazą danych nie powiodło się. Spróbuj jeszcze raz póĽniej.';
  46.  
  47. }
  48.  
  49. $zapytanie = 'UPDATE czytelinicy SET naziwisko = ?, imie = ?, ulica = ?, miasto = ?
  50. WHERE nazwisko = ? AND imie = ? AND ulica = ? AND miasto = ?';
  51.  
  52. $stmt = $db->prepare($zapytanie);
  53. $stmt->bind_param('ssssssss', $nnazwisko, $nimie, $nulica, $nmiasto, $nazwisko, $imie, $ulica, $miasto);
  54. $stmt->execute();
  55. $wynik = $stmt->affected_rows
  56.  
  57. if ($wynik)
  58. echo $wynik . ' Zmieniono dane czytelnika.';
  59.  
  60. ?>
  61.  
  62. <a href="http://localhost/nazwakonta/index.html">Powroc do Menu</a>
  63.  
  64.  
  65.  
  66. </form>
  67.  
  68. </body>
  69. </html>


Witam,

Skoro używasz mysqli możesz używać jego metod które są dosyć przydatne.

Ogólnie przebudował bym ten skrypt tak abyś mógł używać do aktualizacji danych użytkownika jakiegos unikalnego id.
Zastanowił bym się też czy warto pisać takie rzeczy od początku... czy nie lepiej użyć gotowych rozwiązań (CMS-y lub frameworki) i ewentualnie je dopasować do swoich potrzeb...
Napewno było by to bezpieczniejsze i bardziej przemyślane.

Pozdrawiam
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 05:21