Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][sql]
Forum PHP.pl > Forum > Przedszkole
kozioł
Witam

to część kodu odpowiedzialna za wyświtlanie tabelki która pobiera dane z bazy sql ,

męczyłęm się z dodaniem ostatniego pola rozwijalnego , ale się udało ,

teraz mam problem jak po naciśnięciu przycisku zapisz przesłać ostatni wiersz z pola rozwijalnego do tabeli sql w kolumnie 'rezultat' , nie mam na to pomysłu ,i coś mi sie wydaje że idę złą drogą


  1. <?php
  2. echo "<TABLE BORDER='2'>";
  3. echo "<TR>";
  4. echo "<TH>kierunek</TH><TH>telefon</TH><TH>klient</TH><TH>rodzaj</TH><TH>odbiorca</TH><TH>rezultat</TH>";
  5. echo "</TR>";
  6.  
  7. while ($row = mysql_fetch_array($result))
  8. {
  9. echo "<TR>";
  10. echo "<TD>", $row['kierunek'],"</TD><TD>", $row['telefon'] ,"</TD><TD>", $row['klient'] ,"</TD><TD>", $row['rodzaj'] ,"</TD>
  11. <TD>", $row['odbiorca'] ,"</TD>";
  12. echo '<TD><SELECT NAME="Rezultat"><OPTION>Pozytywne<OPTION>Negatywne<OPTION>Nieskuteczne</SELECT></TD>';
  13. echo "</TR>";
  14. }
  15. echo "</TABLE>";
  16. echo '<input type="button" value="Zapisz" onClick="Zapis()">'
  17. ?>
  18. </CENTER>
  19. </BODY>
wojtekwro
musisz skorzystać z tego

  1. echo '<form action="index.php" method="post">';


i stworzyć osobny skrypcik w którym przekażesz zmnienne do tabeli

  1. <?php
  2. s
  3. // odbieramy dane z formularza
  4. $rezultat = $_POST['rezultat'];
  5.  
  6.  
  7. if($rezultat ) {
  8. //laczenie z bd
  9. $connection = @mysql_connect('localhost', 'root', 'hasło')
  10. or die('brak polaczenia z BD');
  11. $db = @mysql_select_db("nazwa")
  12. or die('Nie mogę połączyć się z bazą danych');
  13. //dodajemy rekordy';
  14. $ins = @mysql_query("INSERT INTO tabela SET rezultat='$rezultat'");
  15.  
  16. if($ins) echo "Rekord został dodany poprawnie ";
  17. else echo "Błąd nie udało się dodać nowego rekordu";
  18.  
  19. mysql_close($connection);
  20. }
  21. ?>


chyba o to ci chodziło questionmark.gif
kozioł
nie działa mi :-( ,

to znaczy jak wcisnę przycisk zapisz , to nic sie nie dzieje , nie zostaje przekierowany do nastepnej strony ,

na dole pojawia sie tylko na chwilę żółty trójkącik z informacją nłąd na stronie.

Jak odpalę sam skrypt odpowiedzailny za wpisanie tcy danych do bazy to mam komunikat że dane nie zostały zapisane.

to wygląda tak

1) skrypt z danymi z bazy i małym formularzem

i przyciskiem zapisz

baza.php

  1. <html>
  2. <head>
  3. <title>
  4. Zawartosc bazy
  5. </title>
  6. </head>
  7. <body>
  8. <form action = "rez.php" method = "POST">
  9. <center>
  10. <H1>ZAWARTOŚĆ BAZY SQL</H1>
  11. <?php
  12. $conn = mysql_connect("localhost", "root", "vertrigo") 
  13. or die(mysql_error()); 
  14. $db = mysql_select_db("baza1",$conn)
  15. or die ("nie mogę połączyć z bazą");
  16. $rodzaj=$_POST['rodzaj'];
  17. $typ=$_POST['typ'];
  18. if($typ='ws')
  19. {
  20. $query .= "SELECT * FROM neo WHERE rezultat not like 'p' and rodzaj = '$rodzaj' ";
  21.  
  22. }
  23. else
  24.  
  25. {
  26. $query = "SELECT * FROM neo WHERE rezultat = '$rodzaj' and typ = '$typ' ";
  27. }
  28.  
  29. $result = mysql_query($query)
  30. or die("Wykonanie zapytania nie powiodło się: ".mysql_error());
  31.  
  32.  
  33.  
  34. function Zapis()
  35. {
  36.  
  37. global $typ;
  38.  
  39. $query = "INSERT INTO neo (typ) Values ('$typ')";
  40. $result = mysql_query($query);
  41. if ($result > 0)
  42. {
  43. print ("Dane zostaly zapisane");
  44. }
  45. else
  46. {
  47. print ("Nieudany zapis danych");
  48. }
  49. }
  50.  
  51.  
  52.  
  53.  
  54. echo "<TABLE BORDER='2'>";
  55. echo "<TR>";
  56. echo "<TH>kierunek</TH><TH>telefon</TH><TH>klient</TH><TH>rodzaj</TH><TH>odbiorca</TH><TH>rezultat</TH>";
  57. echo "</TR>";
  58.  
  59. while ($row = mysql_fetch_array($result))
  60. {
  61. echo "<TR>";
  62. echo "<TD>", $row['kierunek'],"</TD><TD>", $row['telefon'] ,"</TD><TD>", $row['klient'] ,"</TD><TD>", $row['rodzaj'] ,"</TD>
  63. <TD>", $row['odbiorca'] ,"</TD>";
  64. echo '<TD><SELECT NAME="Rezultat"><OPTION>Pozytywne<OPTION>Negatywne<OPTION>Nieskuteczne</SELECT></TD>';
  65. echo "</TR>";
  66. }
  67. echo "</TABLE>";
  68. echo '<input type="button" value="Zapisz" onClick="Submit()">'
  69.  
  70. ?>
  71. </CENTER>
  72. </BODY>
  73. </HTML>


2) oraz skrypt do zapisu danych do bazy
rez.php
  1. <html>
  2. <head>
  3. <title>
  4. rozliczenie
  5. </title>
  6. </head>
  7. <body>
  8. <center>
  9. <H1>Rozliczenie BAZY</H1>
  10. <?php
  11. // odbieramy dane z formularza
  12. $rezultat = $_POST['rezultat'];
  13.  
  14.  
  15.  
  16. $conn = mysql_connect("localhost", "root", "vertrigo") 
  17. or die(mysql_error()); 
  18. $db = mysql_select_db("baza1",$conn)
  19. or die ("nie mogę połączyć z bazą");
  20. $ins = mysql_query("INSERT INTO neo SET rezultat='$rezultat'");
  21.  
  22. if($ins) echo "Rekord został dodany poprawnie ";
  23. else echo "Błąd nie udało się dodać nowego rekordu";
  24.  
  25.  
  26.  
  27.  
  28.  
  29. ?>
  30. </CENTER>
  31. </BODY>
  32. </HTML>
wojtekwro
w tym pliku baza.php nie widze echo '</form/>';
  1. <p style="text-align: center;" algin="center">
  2. <span style="text-decoration: underline;">Pr&oacute;ba
  3. NVU</span></p>
  4. <form action="01do.php" method="post">Ankieta
  5. BIUROSERWIS
  6. <hr>*Wypełniający (imię i nazwisko, firma) <br>
  7. <input name="firma" size="60" type="text" value="anonimowa"><br>
  8. <hr>Czy towar został dostarczony w um&oacute;wionym
  9. terminie?<br>
  10. <select name="dostawa"><option>TAK</option><option>NIE</option></select>
  11. <hr>
  12. Czy dostarczony towar był zgodny z zam&oacute;wieniem?<br>
  13. <select name="zam"><option>TAK</option><option>NIE</option></select>
  14. <hr> Czy uzyskalicie Państwo pomoc naszych
  15. pracownik&oacute;w przy wyborze tawaru?<br>
  16. <select name="prac"><option>TAK</option><option>NIE</option></select>
  17. (...)
  18. <hr><input value="dodaj" type="submit">
  19. </form>
  20. </body></html>


i w tej formie działa mój formularz
kozioł
to tak jednak nie zadziała jak bym chciał

teraz dodaje mi tylko jedną wartość do bazy jaką wybiorę z formularza ,
pomimo iz zaznaczam w kilku wierszach różne wartości(bierze pierwszą)
i to wstawia ją w osobnym wierszu w bazie. :-(

nie wiem co robić

może wyświetlić zamiast dane w tabelce to w formularzu czy jak?

muszę jakoś powiązać dane z tabeliki na stronie www z tym ostatnim polem kótr zrobiłem w formie formularza

ale jak ,

dajcie jakiś pomysł

będę wdzięczny

pozdrawiam

nikt nie pomoże sad.gif

na pewne gdzieś są takie tabele gdzie ostatnie pole można modyfikować ,

teraz mam tak że jak wybiorę modyfikację ostatniego w kilku wierszach pola to wybiera

pierwszą wartość i zapisuje do wszsytkich wierszy w bazie.

podejrzewam że poprostu nie powiązuje ostatniego pola na stronie z całą resztą tabelki

jeszcze raz dzięki
www0_0
po analizie twojego kodu, i informacji co chcesz osiągnąć wydaje mi się że to może ci się przydać:) Ja bym przynajmniej to jakoś tak zrobiłsmile.gif
baza.php
  1. <html>
  2. <head>
  3. <title>
  4. Zawartosc bazy
  5. </title>
  6. </head>
  7. <body>
  8. <form action = "rez.php" method = "POST">
  9. <center>
  10. <H1>ZAWARTOŚĆ BAZY SQL</H1>
  11. <?php
  12. $conn = mysql_connect("localhost", "root", "vertrigo") or die(mysql_error());
  13. $db = mysql_select_db("baza1",$conn) or die ("nie mogę połączyć z bazą");
  14. $rodzaj=$_POST['rodzaj'];
  15. $typ=$_POST['typ'];
  16. if($typ='ws')
  17. {
  18. $query = "SELECT * FROM neo WHERE rezultat not like 'p' and rodzaj = '$rodzaj' ";
  19. }
  20. else
  21. {
  22. $query = "SELECT * FROM neo WHERE rezultat = '$rodzaj' and typ = '$typ' ";
  23. }
  24. $result = mysql_query($query) or die("Wykonanie zapytania nie powiodło się: ".mysql_error());
  25. echo '
  26. <TABLE BORDER="2">
  27. <TR>
  28. <TH>kierunek</TH>
  29. <TH>telefon</TH>
  30. <TH>klient</TH>
  31. <TH>rodzaj</TH>
  32. <TH>odbiorca</TH>
  33. <TH>rezultat</TH>
  34. </TR>
  35. ';
  36. while ($row = mysql_fetch_array($result))
  37. {
  38. echo '<TR>';
  39. echo '<TD>' .$row['kierunek']. '</TD>';
  40. echo '<TD>' .$row['telefon']. '</TD>';
  41. echo '<TD>' .$row['klient']. '</TD>';
  42. echo '<TD>' .$row['rodzaj']. '</TD>';
  43. echo '<TD>' .$row['odbiorca']. '</TD>';
  44. echo '<TD>
  45. <SELECT NAME="' .$row['klient']. '">
  46. <OPTION value="1">Pozytywne</option>
  47. <OPTION value="2">Negatywne</option>
  48. <OPTION value="3">Nieskuteczne</option>
  49. </SELECT>
  50. </TD>';
  51. echo '</TR>';
  52. }
  53. echo '<input type="hidden" name="rodzaj" value="' .$rodzaj. '" /><input type="hidden" name="typ" value="' .$typ. '" />';
  54. echo '</TABLE>';
  55. echo '<input type="submit" value="Zapisz">';
  56. ?>
  57. </form>
  58. </CENTER>
  59. </BODY>
  60. </HTML>


rez.php
  1. <html>
  2. <head>
  3. <title>
  4. rozliczenie
  5. </title>
  6. </head>
  7. <body>
  8. <center>
  9. <H1>Rozliczenie BAZY</H1>
  10. <?php
  11. $conn = mysql_connect("localhost", "root", "vertrigo") or die(mysql_error());
  12. $db = mysql_select_db("baza1",$conn) or die ("nie mogę połączyć z bazą");
  13. $rodzaj=$_POST['rodzaj'];
  14. $typ=$_POST['typ'];
  15. if($typ='ws')
  16. {
  17. $query = "SELECT * FROM neo WHERE rezultat not like 'p' and rodzaj = '$rodzaj' ";
  18. }
  19. else
  20. {
  21. $query = "SELECT * FROM neo WHERE rezultat = '$rodzaj' and typ = '$typ' ";
  22. }
  23. $result = mysql_query($query) or die("Wykonanie zapytania nie powiodło się: ".mysql_error());
  24. while ($row = mysql_fetch_array($result))
  25. {
  26. $id = $row['klient'];
  27. $wartosc = $_POST[$id];
  28. $query = "UPDATE neo SET rezultat = $wartosc WHERE klient = $id";
  29. $result = mysql_query ($query) or die("Wykonanie zapytania nie powiodło się: ".mysql_error());
  30. }
  31. ?>
  32. </CENTER>
  33. </BODY>
  34. </HTML>
kozioł
zmodyfikowałem trochę ten drugi plik

rez.php

  1. <html>
  2. <head>
  3. <title>
  4. rozliczenie
  5. </title>
  6. </head>
  7. <body>
  8. <center>
  9. <H1>Rozliczenie BAZY</H1>
  10. <?php
  11. $conn = mysql_connect("localhost", "root", "vertrigo") or die(mysql_error());
  12. $db = mysql_select_db("baza1",$conn) or die ("nie mogę połączyć z bazą");
  13. $id = $row['klient'];
  14. $wartosc = $_POST[$id];
  15. $query = "UPDATE neo SET rezultat = $wartosc WHERE klient = $id";
  16. $result = mysql_query ($query) or die("Wykonanie zapytania nie powiodło się: ".mysql_error());
  17.  
  18. ?>
  19. </CENTER>
  20. </BODY>
  21. </HTML>



ale wyskakuje mi błąd

Wykonanie zapytania nie powiodło się: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE klient =' at line 1
www0_0
nigdzie nie deklarujesz tej zmiennej:
$row['klient']
a jest wymagana w zapytaniu pod postacią $id dlatego masz ten błąd.
Poza tym mój kod był tak skonstruowany, aby poprawić każdemu wartość pola rezultat, kto był wcześniej wyświetlany. Natomiast twoja modyfikacja spowodowała że może poprawić tylko jednej osobie, do której na dodatek nie masz teraz wartości:) bo nie znasz nazw zmiennych to właśnie spowodowała twoje modyfikacja:)
kozioł
teraz mam tak:

baza.php

  1. <html>
  2. <head>
  3. <title>
  4. Zawartosc bazy
  5. </title>
  6. </head>
  7. <body>
  8. <form action = "rez.php" method = "POST">
  9. <center>
  10. <H1>ZAWARTOŚĆ BAZY SQL</H1>
  11. <?php
  12. $conn = mysql_connect("localhost", "root", "vertrigo") or die(mysql_error());
  13. $db = mysql_select_db("baza1",$conn) or die ("nie mogę połączyć z bazą");
  14. $rodzaj=$_POST['rodzaj'];
  15.  
  16. $query = "SELECT * FROM neo WHERE rezultat not like 'p' and rodzaj = '$rodzaj' ";
  17. $result = mysql_query($query) or die("Wykonanie zapytania nie powiodło się: ".mysql_error());
  18. echo '
  19. <TABLE BORDER="2">
  20. <TR>
  21. <TH>kierunek</TH>
  22. <TH>telefon</TH>
  23. <TH>klient</TH>
  24. <TH>rodzaj</TH>
  25. <TH>odbiorca</TH>
  26. <TH>rezultat</TH>
  27. </TR>
  28. ';
  29. while ($row = mysql_fetch_array($result))
  30. {
  31. echo '<TR>';
  32. echo '<TD>' .$row['kierunek']. '</TD>';
  33. echo '<TD>' .$row['telefon']. '</TD>';
  34. echo '<TD>' .$row['klient']. '</TD>';
  35. echo '<TD>' .$row['rodzaj']. '</TD>';
  36. echo '<TD>' .$row['odbiorca']. '</TD>';
  37. echo '<TD>
  38. <SELECT NAME="' .$row['klient']. '">
  39. <OPTION value="1">Pozytywne</option>
  40. <OPTION value="2">Negatywne</option>
  41. <OPTION value="3">Nieskuteczne</option>
  42. </SELECT>
  43. </TD>';
  44. echo '</TR>';
  45. }
  46. echo '<input type="hidden" name="rodzaj" value="' .$rodzaj. '" /><input type="hidden" name="typ" value="' .$typ. '" />';
  47. echo '</TABLE>';
  48. echo '<input type="submit" value="Zapisz">';
  49. ?>
  50. </form>
  51. </CENTER>
  52. </BODY>
  53. </HTML>


oraz plik

rez.php
  1. <html>
  2. <head>
  3. <title>
  4. rozliczenie
  5. </title>
  6. </head>
  7. <body>
  8. <center>
  9. <H1>Rozliczenie BAZY</H1>
  10. <?php
  11. $conn = mysql_connect("localhost", "root", "vertrigo") or die(mysql_error());
  12. $db = mysql_select_db("baza1",$conn) or die ("nie mogę połączyć z bazą");
  13. $rodzaj=$_POST['rodzaj'];
  14. $row=$_POST['klient'];
  15. $query = "SELECT * FROM neo WHERE rezultat not like 'p' and rodzaj = '$rodzaj' ";
  16.  
  17. $result = mysql_query($query) or die("Wykonanie zapytania nie powiodło się: ".mysql_error());
  18. while ($row = mysql_fetch_array($result))
  19. {
  20. $id = $row['klient'];
  21. $wartosc = $_POST[$id];
  22. $query = "UPDATE neo SET rezultat = $wartosc WHERE klient = $id";
  23. $result = mysql_query ($query) or die("Wykonanie zapytania nie powiodło się: ".mysql_error());
  24. }
  25. ?>
  26. </CENTER>
  27. </BODY>
  28. </HTML>



i po wciśnieciu "zapisz" mam taki błąd:

//Wykonanie zapytania nie powiodło się: Unknown column 'grzelak' in 'where clause'//


'grzelak' to pierwsze nazwisko z tabelki choć wyświtla mi sie kilka
www0_0
spróbuj tak:
baza.php
  1. <html>
  2. <head>
  3. <title>
  4. Zawartosc bazy
  5. </title>
  6. </head>
  7. <body>
  8. <form action = "rez.php" method = "POST">
  9. <center>
  10. <H1>ZAWARTOŚĆ BAZY SQL</H1>
  11. <?php
  12. $conn = mysql_connect("localhost", "root", "vertrigo") or die(mysql_error());
  13. $db = mysql_select_db("baza1",$conn) or die ("nie mogę połączyć z bazą");
  14. $rodzaj=$_POST['rodzaj'];
  15. $query = "SELECT * FROM neo WHERE rezultat not like 'p' and rodzaj = '$rodzaj' ";
  16. $result = mysql_query($query) or die("Wykonanie zapytania nie powiodło się: ".mysql_error());
  17. echo '
  18. <TABLE BORDER="2">
  19. <TR>
  20. <TH>kierunek</TH>
  21. <TH>telefon</TH>
  22. <TH>klient</TH>
  23. <TH>rodzaj</TH>
  24. <TH>odbiorca</TH>
  25. <TH>rezultat</TH>
  26. </TR>
  27. ';
  28. while ($row = mysql_fetch_array($result))
  29. {
  30. echo '<TR>';
  31. echo '<TD>' .$row['kierunek']. '</TD>';
  32. echo '<TD>' .$row['telefon']. '</TD>';
  33. echo '<TD>' .$row['klient']. '</TD>';
  34. echo '<TD>' .$row['rodzaj']. '</TD>';
  35. echo '<TD>' .$row['odbiorca']. '</TD>';
  36. echo '<TD>
  37. <SELECT NAME="' .$row['klient']. '">
  38. <OPTION value="1">Pozytywne</option>
  39. <OPTION value="2">Negatywne</option>
  40. <OPTION value="3">Nieskuteczne</option>
  41. </SELECT>
  42. </TD>';
  43. echo '</TR>';
  44. }
  45. echo '<input type="hidden" name="rodzaj" value="' .$rodzaj. '" />';
  46. echo '</TABLE>';
  47. echo '<input type="submit" value="Zapisz">';
  48. ?>
  49. </form>
  50. </CENTER>
  51. </BODY>
  52. </HTML>



rez.php
  1. <html>
  2. <head>
  3. <title>
  4. rozliczenie
  5. </title>
  6. </head>
  7. <body>
  8. <center>
  9. <H1>Rozliczenie BAZY</H1>
  10. <?php
  11. $conn = mysql_connect("localhost", "root", "vertrigo") or die(mysql_error());
  12. $db = mysql_select_db("baza1",$conn) or die ("nie mogę połączyć z bazą");
  13. $rodzaj=$_POST['rodzaj'];
  14. $query = "SELECT * FROM neo WHERE rezultat not like 'p' and rodzaj = '$rodzaj' ";
  15. $result = mysql_query($query) or die("Wykonanie zapytania nie powiodło się: ".mysql_error());
  16. while ($row = mysql_fetch_array($result))
  17. {
  18. $id = $row['klient'];
  19. $wartosc = $_POST[$id];
  20. $query = "UPDATE neo SET 'rezultat' = $wartosc WHERE 'klient' = $id";
  21. $result = mysql_query ($query) or die("Wykonanie zapytania nie powiodło się: ".mysql_error());
  22. }
  23. ?>
  24. </CENTER>
  25. </BODY>
  26. </HTML>
kozioł
a teraz jest taki komunikat

//Wykonanie zapytania nie powiodło się: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''rezultat' = 1 WHERE 'klient' = grzelak' at line 1//
Kicok
1. Nazwę kolumny umieszcza się w odwróconych apostrofach: `kolumna` (albo w ogóle bez apostrofów), bo w normalnych apostrofach jest traktowana jako zwykły tekst.
2. Zwykły tekst umieszcza się w normalnych apostrofach, bo bez apostrofów (albo w apostrofach odwróconych) jest traktowany jako nazwa kolumny.
kozioł
to już nie wiem co jest nie tak

zmieniłem te apostrofy

  1. <html>
  2. <head>
  3. <title>
  4. rozliczenie
  5. </title>
  6. </head>
  7. <body>
  8. <center>
  9. <H1>Rozliczenie BAZY</H1>
  10. <?php
  11. $conn = mysql_connect("localhost", "root", "vertrigo") or die(mysql_error());
  12. $db = mysql_select_db("baza1",$conn) or die ("nie mogę połączyć z bazą");
  13. $rodzaj=$_POST['rodzaj'];
  14. $query = "SELECT * FROM neo WHERE rezultat not like 'p' and rodzaj = '$rodzaj' ";
  15. $result = mysql_query($query) or die("Wykonanie zapytania nie powiodło się: ".mysql_error());
  16. while ($row = mysql_fetch_array($result))
  17.  
  18. {
  19. $id = $row['klient'];
  20. $wartosc = $_POST['$id'];
  21. $query = "UPDATE neo SET rezultat = '$wartosc' WHERE klient = '$id'";
  22. $result = mysql_query ($query) or die("Wykonanie zapytania nie powiodło się: ".mysql_error());
  23. }
  24. ?>
  25. </CENTER>
  26. </BODY>
  27. </HTML>


i mam błąd
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\dane\VertrigoServ\www\rez.php on line 16
Kicok
Trochę to dziwne. Jeśli zapytanie byłoby błędne, to w 15 linii powinno zadziałać die( ), ale jakimś cudem dochodzi do linii 16. Literówki w nazwie zmiennej też nie popełniłeś.
Spróbuj może tego kodu i pokaż co dokładnie on zwróci:

  1. <?php
  2.  
  3. // test
  4. $rodzaj=$_POST['rodzaj'];
  5. $query = "SELECT * FROM neo WHERE rezultat not like 'p' and rodzaj = '$rodzaj'";
  6. echo( 'Zapytanie: ' . $query . '<br>' );
  7. $result = mysql_query($query);
  8. if( !$result ) {
  9. echo( 'Błąd: ' . mysql_error() . '<br>' );
  10. }
  11.  
  12. $row = mysql_fetch_array($result);
  13. echo( '<pre>' );
  14. print_r( $row );
  15. echo( '</pre>' );
  16.  
  17. ?>
kozioł
mam taki komunikat:

Zapytanie: SELECT * FROM neo WHERE rezultat not like 'p' and rodzaj = 'pstn'

Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in D:\dane\VertrigoServ\www\rez.php on line 8

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in D:\dane\VertrigoServ\www\rez.php on line 8
Błąd: Access denied for user 'ODBC'@'localhost' (using password: NO)

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\dane\VertrigoServ\www\rez.php on line 13


Już nie jest źle , no przynajmniej nie tak jak na początku

zrobiłem tak:

  1. <html>
  2. <head>
  3. <title>
  4. rozliczenie
  5. </title>
  6. </head>
  7. <body>
  8. <center>
  9. <H1>Rozliczenie BAZY</H1>
  10. <?php
  11. $conn = mysql_connect("localhost", "root", "vertrigo") or die(mysql_error());
  12. $db = mysql_select_db("baza1",$conn) or die ("nie mogę połączyć z bazą");
  13. $rodzaj=$_POST['rodzaj'];
  14. $query = "SELECT * FROM neo WHERE rodzaj = '$rodzaj' ";
  15. $result = mysql_query($query) or die("Wykonanie zapytania nie powiodło się: ".mysql_error());
  16. while ($row = mysql_fetch_array($result))
  17.  
  18. $id = $row['klient'];
  19. $wartosc = $_POST[$id];
  20. $query = "UPDATE neo SET rezultat = '$wartosc' WHERE klient = '$id'";
  21. $result = mysql_query ($query) or die("Wykonanie zapytania nie powiodło się: ".mysql_error());
  22.  
  23. ?>
  24. </CENTER>
  25. </BODY>
  26. </HTML>


tylko zapisuje mi wybrany rezultat i to w odpowiednim polu w bazie ,

ale niestety jest to zawsze ostatni wierszw tabelce ,

nie wiem czemu nie wpisuje wszystkich


a tak wygląda teraz plik baza.php

  1. <html>
  2. <head>
  3. <title>
  4. Zawartosc bazy
  5. </title>
  6. </head>
  7. <body>
  8. <form action = "rez.php" method = "POST">
  9. <center>
  10. <H1>ZAWARTOŚĆ BAZY SQL</H1>
  11. <?php
  12. $conn = mysql_connect("localhost", "root", "vertrigo") or die(mysql_error());
  13. $db = mysql_select_db("baza1",$conn) or die ("nie mogę połączyć z bazą");
  14. $rodzaj=$_POST['rodzaj'];
  15. $query = "SELECT * FROM neo WHERE rodzaj = '$rodzaj' ";
  16. $result = mysql_query($query) or die("Wykonanie zapytania nie powiodło się: ".mysql_error());
  17. echo '
  18. <TABLE BORDER="2">
  19. <TR>
  20. <TH>kierunek</TH>
  21. <TH>telefon</TH>
  22. <TH>klient</TH>
  23. <TH>rodzaj</TH>
  24. <TH>odbiorca</TH>
  25. <TH>rezultat</TH>
  26. </TR>
  27. ';
  28. while ($row = mysql_fetch_array($result))
  29. {
  30. echo '<TR>';
  31. echo '<TD>' .$row['kierunek']. '</TD>';
  32. echo '<TD>' .$row['telefon']. '</TD>';
  33. echo '<TD>' .$row['klient']. '</TD>';
  34. echo '<TD>' .$row['rodzaj']. '</TD>';
  35. echo '<TD>' .$row['odbiorca']. '</TD>';
  36. echo '<TD>
  37. <SELECT NAME="' .$row[klient]. '">
  38. <OPTION value="Pozytywny">Pozytywne</option>
  39. <OPTION value="Negatywny">Negatywne</option>
  40. <OPTION value="Nieskuteczny">Nieskuteczne</option>
  41. </SELECT>
  42. </TD>';
  43. echo '</TR>';
  44. }
  45. echo '<input type="hidden" name="rodzaj" value="' .$rodzaj. '" />';
  46. echo '</TABLE>';
  47. echo '<input type="submit" value="Zapisz">';
  48. ?>
  49. </form>
  50. </CENTER>
  51. </BODY>
  52. </HTML>



PS. mam nadzieję że nie dostanę bury od admina za tyle pisania na forum.

ale jestem zdeterminowany aby zrobić ten skrypt , po godzinie zwątpienia znów wracam do komputera .
www0_0
nie wiem czy to pomoże:
ty masz tak:
$row[klient]
a powinno być tak:
$row['klient']
Tak powinno zapisywać się takie zmienne te apostrofy są ważne.
Czy to pomoże, szczerze wątpię, bo powinno działać i bez nich:)
Sprawdź wygenerowany kod html chy ma różne nazwy pół czy może jest jedno tylko itp
Bo ten kod wydaje się już być dobry.
kozioł
nie nie mogę , angrysmiley.gif

próbuję różnych kombinacji a skrypt zapisuje w bazie tylko ostatnią pozycję z tabelki ,

czemu nie chce wszystkich?

proszę o pomoc sadsmiley02.gif

kurcze , załamałem się ,

rozmawiałem z kolegą który pisze trochę w PHP , i powiedzaił że za jednym razem można wpisać do bazy tylko jeden wiersz sad.gif ,


albo zrobić jakąs pętlę


masakra

wszystko od nowa musze robić
www0_0
nie musisz robić od nowa:)
fakt faktem za jednym zapytaniem wpisujesz tylko jedną wartość, i dlatego musisz zrobić pętle, i ty ja nawet masz:) tylko ciut źle, a ja tego wcześniej nie zauważyłem:)
zmień ten fragment kodu:
  1. <?php
  2. while ($row = mysql_fetch_array($result))
  3.  
  4. $id = $row['klient'];
  5. $wartosc = $_POST[$id];
  6. $query = "UPDATE neo SET rezultat = '$wartosc' WHERE klient = '$id'";
  7. $result = mysql_query ($query) or die("Wykonanie zapytania nie powiodło się: ".mysql_error());
  8. ?>


na :
  1. <?php
  2. while ($row = mysql_fetch_array($result))
  3. {
  4. $id = $row['klient'];
  5. $wartosc = $_POST[$id];
  6. $query = "UPDATE neo SET rezultat = '$wartosc' WHERE klient = '$id'";
  7. $result = mysql_query ($query) or die("Wykonanie zapytania nie powiodło się: ".mysql_error());
  8. }
  9. ?>
kozioł
teraz mam tak

  1. <html>
  2. <head>
  3. <title>
  4. rozliczenie
  5. </title>
  6. </head>
  7. <body>
  8. <center>
  9. <H1>Rozliczenie BAZY</H1>
  10. <?php
  11. $conn = mysql_connect("localhost", "root", "vertrigo") or die(mysql_error());
  12. $db = mysql_select_db("baza1",$conn) or die ("nie mogę połączyć z bazą");
  13. $rodzaj=$_POST['rodzaj'];
  14. $query = "SELECT * FROM neo WHERE rodzaj = '$rodzaj' ";
  15. $result = mysql_query($query) or die("Wykonanie zapytania nie powiodło się: ".mysql_error());
  16.  
  17.  
  18. while ($row = mysql_fetch_array($result));
  19. {
  20. $id = $row['klient'];
  21. $wartosc = $_POST[$id];
  22. $query = "UPDATE neo SET rezultat = '$wartosc' WHERE klient = '$id'";
  23. $result = mysql_query ($query) or die("Wykonanie zapytania nie powiodło się: ".mysql_error());
  24. }
  25. ?>
  26. </CENTER>
  27. </BODY>
  28. </HTML>


teraz mam tak i nie wpisuje mi się do bazy nic , sad.gif

chociaż skrypt niby się wykonuje i nie wyświtla błędu

nie wiem po co jest ta linia w tym skrypcie

  1. <?php
  2. $rodzaj=$_POST['rodzaj'];
  3. $query = "SELECT * FROM neo WHERE rodzaj = '$rodzaj' ";
  4. ?>


czy aby czasem to jest nie potrzebne?
bo ten warunek mam w pliku bza.php

który przyjmuje wartość z pierwszego formularza i wyświetla tabelkę na stronie

ale pewnie sie mylę
www0_0
ta linia co podałeś jest potrzebna do nazwania zmiennych. Ponieważ nazywamy zmienne tak jak masz nazwę w polu klient. Lecz dziwi mnie to że nic a nic ci nie dodaje, ja już trace pomysły na rozwiązanie twojego problemu:)
kozioł
no juz mi ręce opadają

jak nie zapodam pętli , to zapisuje tylko ostatni wiersz , a z pętlą pusto

to może jak tak nie da rady

zrobił bym tak:

wyświtlam tabelę z wynikami ,a obok przycisk edytuj ,

po naciśnięciu przycisku otworzył by sie formularz z tym wierszem i tam była by włąśnie ta możliwość wybrania trzech wartości z listy rozwijalnej i przycisk zapisz. Wtedy zapisywał by sie tylko jeden rekord.

z dwojga złego chyba tak można by to zrobić

bo chyba inaczej nie przejdę tego problemu



Mam jeszcze pytanie czy w bazie sql musze mieć pole ID , bo takiego nie mam ?



pozdrawiam


PS. nikt nie wie czemu to nie chce działać? sad.gif

coś jednak ja porobiłem źle

bo wpisałem za tą funkcją w pliku rez.php średnik

a chyba go nie powinno być

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


i nie zapisywał mi nic ,

jednak jak średnik usunę to mam w tym wierszu błąd

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\dane\VertrigoServ\www\rez.php on line 17

i nie wiem co jest grane

i pomimo tego błędu zapisuje mi dla odmiany pierwszy wiersz z tabelki

Witam ,

nic nie wiadomo coś w tym temacie , sad.gif

wczoraj cały wieczór walczyłem i nic
dalej mam błąd w pętli //Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource //

a do bazy zapisuje tylko pierwszy wiersz

poradźcie coś

dzięki ogromne
Kicok
Cytat
  1. <?php
  2.  
  3. while ($row = mysql_fetch_array($result));
  4.  
  5. ?>


Masz średnik po pętli, więc PHP uważa to za pętlę z jedną pustą instrukcją. Tak samo jakbyś napisał:
  1. <?php
  2.  
  3. while( $row = mysql_fetch_array( $result ) )
  4. {
  5. }
  6.  
  7. // Dopiero tutaj dalsza część kodu
  8.  
  9. ?>
kozioł
właśnie średnik usunąłem ,

ale jak to zrobie to amm ten błąd : Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\dane\VertrigoServ\www\rez.php on line 17

i do bazy zapisuje tylko tylko pierwszą pozycję z tabelki

to może zrobić tak aby obok każdego wiersza był jeszcze przycisk zapisz ,

np. tak:
baza.php
  1. <?php
  2. $conn = mysql_connect("localhost", "root", "vertrigo") or die(mysql_error());
  3. $db = mysql_select_db("baza1",$conn) or die ("nie mogę połączyć z bazą");
  4. $rodzaj=$_POST['rodzaj'];
  5. $typ=$_POST['typ'];
  6. if($typ='ws')
  7. {
  8. $query = "SELECT * FROM neo WHERE rezultat not like 'p' and rodzaj = '$rodzaj' ";
  9. }
  10. else
  11. {
  12. $query = "SELECT * FROM neo WHERE rezultat = '$rodzaj' and typ = '$typ' ";
  13. }
  14. $result = mysql_query($query) or die("Wykonanie zapytania nie powiodło się: ".mysql_error());
  15. echo '
  16. <TABLE BORDER="2">
  17. <TR>
  18. <TH>kierunek</TH>
  19. <TH>telefon</TH>
  20. <TH>klient</TH>
  21. <TH>rodzaj</TH>
  22. <TH>odbiorca</TH>
  23. <TH>rezultat</TH>
  24. </TR>
  25. ';
  26. while ($row = mysql_fetch_array($result))
  27. {
  28. echo '<TR>';
  29. echo '<TD>' .$row['kierunek']. '</TD>';
  30. echo '<TD>' .$row['telefon']. '</TD>';
  31. echo '<TD>' .$row['klient']. '</TD>';
  32. echo '<TD>' .$row['rodzaj']. '</TD>';
  33. echo '<TD>' .$row['odbiorca']. '</TD>';
  34. echo '<TD>
  35. <SELECT NAME="' .$row['klient']. '">
  36. <OPTION value="1">Pozytywne</option>
  37. <OPTION value="2">Negatywne</option>
  38. <OPTION value="3">Nieskuteczne</option>
  39. </SELECT>
  40. <input type="submit" value="zapisz">;
  41.  
  42. </TD>';
  43. echo '</TR>';
  44. }
  45. echo '<input type="hidden" name="rodzaj" value="' .$rodzaj. '" /><input type="hidden" name="typ" value="' .$typ. '" />';
  46. echo '</TABLE>';
  47.  
  48. ?>


tylko nie wiem jak wykorzystać do tego drugi skrypt rez.php aby zapisywał wiersz przy którym kliknę zapisz

Ranyyy , udało się :-))))))))))))


szukałem błędu i zacząłem sam nazywać zmienne wpisałem tak:

  1. <?php
  2. $conn = mysql_connect("localhost", "root", "vertrigo") or die(mysql_error());
  3. $db = mysql_select_db("baza1",$conn) or die ("nie mogę połączyć z bazą");
  4. $rodzaj=$_POST['rodzaj'];
  5. $typ=$_POST['typ'];
  6. if($typ='ws')
  7.  
  8. $zapytanie = "SELECT * FROM neo WHERE rezultat not like 'p' and rodzaj = '$rodzaj' ";
  9. $wynik = mysql_query($zapytanie) or die("Wykonanie zapytania nie powiodło się: ".mysql_error());
  10.  
  11. while($row = mysql_fetch_array($wynik))
  12. {
  13. $id = $row['klient'];
  14. $wartosc = $_POST[$id];
  15. $query = "UPDATE neo SET rezultat = '$wartosc' WHERE klient = '$id' ";
  16. $result = mysql_query ($query) or die("Wykonanie zapytania nie powiodło się: ".mysql_error());
  17. }
  18. ?>



i normalnie wpisuje mi odpowiednie dane do bazy za jednym kliknięciem

dziękuę Wam wszystkim za pomoc , bez was nie dał bym rady

pozdrawiam

choć to nie koniec mojego programu , to był to najważnieszy problem


PS. idę na chwilę się napić ze szczęścia ,uff
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.